From 5c07297182291531837ce7b737bba4910ebb7260 Mon Sep 17 00:00:00 2001 From: codecalm Date: Fri, 5 Aug 2022 11:56:49 +0200 Subject: [PATCH] Release 1.0.0-beta11 --- demo/accordion.html | 43 +- demo/activity.html | 43 +- demo/auth-lock.html | 2 +- demo/blank.html | 43 +- demo/buttons.html | 437 +- demo/card-actions.html | 43 +- demo/cards-masonry.html | 43 +- demo/cards.html | 43 +- demo/carousel.html | 43 +- demo/changelog.html | 84 +- demo/charts.html | 45 +- demo/colors.html | 43 +- demo/datagrid.html | 677 + demo/datatables.html | 81 +- demo/dist/css/demo.css | 4 +- demo/dist/css/demo.min.css | 4 +- demo/dist/css/demo.rtl.css | 4 +- demo/dist/css/demo.rtl.min.css | 4 +- demo/dist/css/tabler-flags.css | 4 +- demo/dist/css/tabler-flags.min.css | 4 +- demo/dist/css/tabler-flags.rtl.css | 4 +- demo/dist/css/tabler-flags.rtl.min.css | 4 +- demo/dist/css/tabler-payments.css | 4 +- demo/dist/css/tabler-payments.min.css | 4 +- demo/dist/css/tabler-payments.rtl.css | 4 +- demo/dist/css/tabler-payments.rtl.min.css | 4 +- demo/dist/css/tabler-vendors.css | 172 +- demo/dist/css/tabler-vendors.min.css | 6 +- demo/dist/css/tabler-vendors.rtl.css | 172 +- demo/dist/css/tabler-vendors.rtl.min.css | 6 +- demo/dist/css/tabler.css | 8458 ++-- demo/dist/css/tabler.min.css | 8 +- demo/dist/css/tabler.rtl.css | 8470 ++-- demo/dist/css/tabler.rtl.min.css | 8 +- demo/dist/js/demo.js | 4 +- demo/dist/js/demo.min.js | 4 +- demo/dist/js/tabler.esm.js | 3270 +- demo/dist/js/tabler.esm.min.js | 6 +- demo/dist/js/tabler.js | 3270 +- demo/dist/js/tabler.min.js | 6 +- .../libs/apexcharts/dist/apexcharts.amd.js | 2 + .../libs/apexcharts/dist/apexcharts.common.js | 14 + demo/dist/libs/apexcharts/dist/apexcharts.css | 691 + .../libs/apexcharts/dist/apexcharts.esm.js | 14 + demo/dist/libs/apexcharts/dist/apexcharts.js | 31960 ++++++++++++++++ .../libs/apexcharts/dist/apexcharts.min.js | 8 +- .../dist/libs/apexcharts/dist/locales/ar.json | 63 + .../dist/libs/apexcharts/dist/locales/ca.json | 55 + .../dist/libs/apexcharts/dist/locales/cs.json | 55 + .../dist/libs/apexcharts/dist/locales/de.json | 55 + .../dist/libs/apexcharts/dist/locales/el.json | 55 + .../dist/libs/apexcharts/dist/locales/en.json | 55 + .../dist/libs/apexcharts/dist/locales/es.json | 55 + .../dist/libs/apexcharts/dist/locales/et.json | 63 + .../dist/libs/apexcharts/dist/locales/fa.json | 55 + .../dist/libs/apexcharts/dist/locales/fi.json | 55 + .../dist/libs/apexcharts/dist/locales/fr.json | 55 + .../dist/libs/apexcharts/dist/locales/he.json | 55 + .../dist/libs/apexcharts/dist/locales/hi.json | 55 + .../dist/libs/apexcharts/dist/locales/hr.json | 55 + .../dist/libs/apexcharts/dist/locales/hu.json | 64 + .../dist/libs/apexcharts/dist/locales/hy.json | 55 + .../dist/libs/apexcharts/dist/locales/id.json | 47 + .../dist/libs/apexcharts/dist/locales/it.json | 55 + .../dist/libs/apexcharts/dist/locales/ja.json | 55 + .../dist/libs/apexcharts/dist/locales/ka.json | 55 + .../dist/libs/apexcharts/dist/locales/ko.json | 55 + .../dist/libs/apexcharts/dist/locales/lt.json | 55 + .../dist/libs/apexcharts/dist/locales/lv.json | 64 + .../dist/libs/apexcharts/dist/locales/nb.json | 55 + .../dist/libs/apexcharts/dist/locales/nl.json | 55 + .../dist/libs/apexcharts/dist/locales/pl.json | 55 + .../libs/apexcharts/dist/locales/pt-br.json | 55 + .../dist/libs/apexcharts/dist/locales/pt.json | 55 + .../dist/libs/apexcharts/dist/locales/rs.json | 55 + .../dist/libs/apexcharts/dist/locales/ru.json | 55 + .../dist/libs/apexcharts/dist/locales/se.json | 55 + .../dist/libs/apexcharts/dist/locales/sk.json | 55 + .../dist/libs/apexcharts/dist/locales/sl.json | 55 + .../dist/libs/apexcharts/dist/locales/sq.json | 55 + .../dist/libs/apexcharts/dist/locales/th.json | 55 + .../dist/libs/apexcharts/dist/locales/tr.json | 55 + .../dist/libs/apexcharts/dist/locales/ua.json | 55 + .../libs/apexcharts/dist/locales/zh-cn.json | 55 + .../libs/apexcharts/dist/locales/zh-tw.json | 55 + .../bootstrap/dist/js/bootstrap.bundle.js | 7066 ++++ .../bootstrap/dist/js/bootstrap.bundle.js.map | Bin 0 -> 448881 bytes .../bootstrap/dist/js/bootstrap.bundle.min.js | 6 +- .../dist/js/bootstrap.bundle.min.js.map | Bin 0 -> 330849 bytes .../libs/bootstrap/dist/js/bootstrap.esm.js | 5204 +++ .../bootstrap/dist/js/bootstrap.esm.js.map | Bin 0 -> 306814 bytes .../bootstrap/dist/js/bootstrap.esm.min.js | 7 + .../dist/js/bootstrap.esm.min.js.map | Bin 0 -> 220143 bytes demo/dist/libs/bootstrap/dist/js/bootstrap.js | 5251 +++ .../libs/bootstrap/dist/js/bootstrap.js.map | Bin 0 -> 307954 bytes .../libs/bootstrap/dist/js/bootstrap.min.js | 7 + .../bootstrap/dist/js/bootstrap.min.js.map | Bin 0 -> 215897 bytes demo/dist/libs/countup.js/dist/countUp.d.ts | 61 + demo/dist/libs/countup.js/dist/countUp.js | 47 +- demo/dist/libs/countup.js/dist/countUp.min.js | 1 + demo/dist/libs/countup.js/dist/countUp.umd.js | 293 + .../dist/countUp.withPolyfill.min.js | 1 + demo/dist/libs/dropzone/dist/basic.css | 1 + demo/dist/libs/dropzone/dist/basic.css.map | Bin 0 -> 289 bytes demo/dist/libs/dropzone/dist/dropzone-min.js | 2 + .../libs/dropzone/dist/dropzone-min.js.map | Bin 0 -> 156927 bytes demo/dist/libs/dropzone/dist/dropzone.css | 1 + demo/dist/libs/dropzone/dist/dropzone.css.map | Bin 0 -> 1354 bytes demo/dist/libs/dropzone/dist/dropzone.js | 3068 ++ demo/dist/libs/dropzone/dist/dropzone.js.map | Bin 0 -> 183078 bytes demo/dist/libs/dropzone/dist/dropzone.mjs | 2111 + demo/dist/libs/dropzone/dist/dropzone.mjs.map | Bin 0 -> 171877 bytes demo/dist/libs/fslightbox/LICENSE | 21 + demo/dist/libs/fslightbox/README.md | 62 + demo/dist/libs/fslightbox/index.js | 1 + demo/dist/libs/fslightbox/jest-setup.js | 1 + demo/dist/libs/fslightbox/package.json | 72 + .../libs/jsvectormap/dist/js/jsvectormap.js | 2663 ++ .../jsvectormap/dist/js/jsvectormap.min.js | 2 +- .../libs/jsvectormap/dist/maps/world-merc.js | 2 +- demo/dist/libs/jsvectormap/dist/maps/world.js | 2 +- demo/dist/libs/list.js/dist/list.js | 2020 + demo/dist/libs/list.js/dist/list.js.map | Bin 0 -> 58578 bytes demo/dist/libs/list.js/dist/list.min.js.map | Bin 0 -> 109 bytes demo/dist/libs/litepicker/dist/bundle.js | 52 + .../libs/litepicker/dist/css/litepicker.css | 13 + .../dist/css/plugins/keyboardnav.js.css | 12 + .../dist/css/plugins/mobilefriendly.js.css | 133 + .../dist/css/plugins/multiselect.js.css | 54 + .../litepicker/dist/css/plugins/ranges.js.css | 81 + demo/dist/libs/litepicker/dist/js/main.js | 13 + .../libs/litepicker/dist/litepicker.amd.js | 12 + .../litepicker/dist/litepicker.commonjs2.js | 12 + .../libs/litepicker/dist/litepicker.umd.js | 12 + .../litepicker/dist/nocss/litepicker.amd.js | 12 + .../dist/nocss/litepicker.commonjs2.js | 12 + .../libs/litepicker/dist/nocss/litepicker.js | 12 + .../litepicker/dist/nocss/litepicker.umd.js | 12 + .../dist/nocss/plugins/keyboardnav.js | 11 + .../dist/nocss/plugins/mobilefriendly.js | 11 + .../dist/nocss/plugins/multiselect.js | 11 + .../litepicker/dist/nocss/plugins/ranges.js | 11 + .../litepicker/dist/plugins/keyboardnav.js | 11 + .../litepicker/dist/plugins/mobilefriendly.js | 11 + .../litepicker/dist/plugins/multiselect.js | 11 + .../libs/litepicker/dist/plugins/ranges.js | 11 + .../libs/litepicker/dist/types/calendar.d.ts | 14 + .../dist/libs/litepicker/dist/types/core.d.ts | 23 + .../libs/litepicker/dist/types/datetime.d.ts | 41 + .../libs/litepicker/dist/types/index.d.ts | 4 + .../litepicker/dist/types/interfaces.d.ts | 80 + .../litepicker/dist/types/litepicker.d.ts | 25 + .../libs/litepicker/dist/types/methods.d.ts | 20 + .../libs/litepicker/dist/types/utils.d.ts | 4 + .../libs/litepicker/dist/types/window.d.ts | 6 + demo/dist/libs/nouislider/dist/nouislider.css | 304 + .../dist/libs/nouislider/dist/nouislider.d.ts | 198 + demo/dist/libs/nouislider/dist/nouislider.js | 2254 ++ .../libs/nouislider/dist/nouislider.min.css | 1 + .../libs/nouislider/dist/nouislider.min.js | 2 +- .../libs/nouislider/dist/nouislider.min.mjs | 1 + demo/dist/libs/nouislider/dist/nouislider.mjs | 2243 ++ demo/dist/libs/plyr/dist/plyr.css | 1 + demo/dist/libs/plyr/dist/plyr.js | 8764 +++++ demo/dist/libs/plyr/dist/plyr.min.js | 2 + demo/dist/libs/plyr/dist/plyr.min.js.map | Bin 0 -> 735340 bytes demo/dist/libs/plyr/dist/plyr.min.mjs | 1 + demo/dist/libs/plyr/dist/plyr.min.mjs.map | Bin 0 -> 724179 bytes demo/dist/libs/plyr/dist/plyr.mjs | 8756 +++++ demo/dist/libs/plyr/dist/plyr.polyfilled.js | 9301 +++++ .../libs/plyr/dist/plyr.polyfilled.min.js | 2 + .../libs/plyr/dist/plyr.polyfilled.min.js.map | Bin 0 -> 777247 bytes .../libs/plyr/dist/plyr.polyfilled.min.mjs | 1 + .../plyr/dist/plyr.polyfilled.min.mjs.map | Bin 0 -> 765233 bytes demo/dist/libs/plyr/dist/plyr.polyfilled.mjs | 9293 +++++ demo/dist/libs/plyr/dist/plyr.svg | 1 + demo/dist/libs/tinymce/CHANGELOG.md | 2957 ++ demo/dist/libs/tinymce/README.md | 71 + demo/dist/libs/tinymce/bower.json | 27 + demo/dist/libs/tinymce/composer.json | 52 + demo/dist/libs/tinymce/icons/default/icons.js | 182 + .../libs/tinymce/icons/default/icons.min.js | 1 + demo/dist/libs/tinymce/icons/default/index.js | 7 + demo/dist/libs/tinymce/license.txt | 21 + demo/dist/libs/tinymce/models/dom/index.js | 7 + demo/dist/libs/tinymce/models/dom/model.js | 7975 ++++ .../dist/libs/tinymce/models/dom/model.min.js | 4 + demo/dist/libs/tinymce/package.json | 32 + .../libs/tinymce/plugins/advlist/index.js | 7 + .../libs/tinymce/plugins/advlist/plugin.js | 246 + .../tinymce/plugins/advlist/plugin.min.js | 4 + .../dist/libs/tinymce/plugins/anchor/index.js | 7 + .../libs/tinymce/plugins/anchor/plugin.js | 195 + .../libs/tinymce/plugins/anchor/plugin.min.js | 4 + .../libs/tinymce/plugins/autolink/index.js | 7 + .../libs/tinymce/plugins/autolink/plugin.js | 232 + .../tinymce/plugins/autolink/plugin.min.js | 4 + .../libs/tinymce/plugins/autoresize/index.js | 7 + .../libs/tinymce/plugins/autoresize/plugin.js | 156 + .../tinymce/plugins/autoresize/plugin.min.js | 4 + .../libs/tinymce/plugins/autosave/index.js | 7 + .../libs/tinymce/plugins/autosave/plugin.js | 232 + .../tinymce/plugins/autosave/plugin.min.js | 4 + .../libs/tinymce/plugins/charmap/index.js | 7 + .../libs/tinymce/plugins/charmap/plugin.js | 1636 + .../tinymce/plugins/charmap/plugin.min.js | 4 + demo/dist/libs/tinymce/plugins/code/index.js | 7 + demo/dist/libs/tinymce/plugins/code/plugin.js | 85 + .../libs/tinymce/plugins/code/plugin.min.js | 4 + .../libs/tinymce/plugins/codesample/index.js | 7 + .../libs/tinymce/plugins/codesample/plugin.js | 2451 ++ .../tinymce/plugins/codesample/plugin.min.js | 4 + .../tinymce/plugins/directionality/index.js | 7 + .../tinymce/plugins/directionality/plugin.js | 384 + .../plugins/directionality/plugin.min.js | 4 + .../libs/tinymce/plugins/emoticons/index.js | 7 + .../plugins/emoticons/js/emojiimages.js | 1 + .../plugins/emoticons/js/emojiimages.min.js | 3 + .../tinymce/plugins/emoticons/js/emojis.js | 1 + .../plugins/emoticons/js/emojis.min.js | 2 + .../libs/tinymce/plugins/emoticons/plugin.js | 577 + .../tinymce/plugins/emoticons/plugin.min.js | 4 + .../libs/tinymce/plugins/fullscreen/index.js | 7 + .../libs/tinymce/plugins/fullscreen/plugin.js | 1190 + .../tinymce/plugins/fullscreen/plugin.min.js | 4 + demo/dist/libs/tinymce/plugins/help/index.js | 7 + demo/dist/libs/tinymce/plugins/help/plugin.js | 848 + .../libs/tinymce/plugins/help/plugin.min.js | 4 + demo/dist/libs/tinymce/plugins/image/index.js | 7 + .../dist/libs/tinymce/plugins/image/plugin.js | 1475 + .../libs/tinymce/plugins/image/plugin.min.js | 4 + .../libs/tinymce/plugins/importcss/index.js | 7 + .../libs/tinymce/plugins/importcss/plugin.js | 342 + .../tinymce/plugins/importcss/plugin.min.js | 4 + .../tinymce/plugins/insertdatetime/index.js | 7 + .../tinymce/plugins/insertdatetime/plugin.js | 176 + .../plugins/insertdatetime/plugin.min.js | 4 + demo/dist/libs/tinymce/plugins/link/index.js | 7 + demo/dist/libs/tinymce/plugins/link/plugin.js | 1190 + .../libs/tinymce/plugins/link/plugin.min.js | 4 + demo/dist/libs/tinymce/plugins/lists/index.js | 7 + .../dist/libs/tinymce/plugins/lists/plugin.js | 1820 + .../libs/tinymce/plugins/lists/plugin.min.js | 4 + demo/dist/libs/tinymce/plugins/media/index.js | 7 + .../dist/libs/tinymce/plugins/media/plugin.js | 1157 + .../libs/tinymce/plugins/media/plugin.min.js | 4 + .../libs/tinymce/plugins/nonbreaking/index.js | 7 + .../tinymce/plugins/nonbreaking/plugin.js | 111 + .../tinymce/plugins/nonbreaking/plugin.min.js | 4 + .../libs/tinymce/plugins/pagebreak/index.js | 7 + .../libs/tinymce/plugins/pagebreak/plugin.js | 105 + .../tinymce/plugins/pagebreak/plugin.min.js | 4 + .../libs/tinymce/plugins/preview/index.js | 7 + .../libs/tinymce/plugins/preview/plugin.js | 97 + .../tinymce/plugins/preview/plugin.min.js | 4 + .../libs/tinymce/plugins/quickbars/index.js | 7 + .../libs/tinymce/plugins/quickbars/plugin.js | 421 + .../tinymce/plugins/quickbars/plugin.min.js | 4 + demo/dist/libs/tinymce/plugins/save/index.js | 7 + demo/dist/libs/tinymce/plugins/save/plugin.js | 118 + .../libs/tinymce/plugins/save/plugin.min.js | 4 + .../tinymce/plugins/searchreplace/index.js | 7 + .../tinymce/plugins/searchreplace/plugin.js | 1079 + .../plugins/searchreplace/plugin.min.js | 4 + demo/dist/libs/tinymce/plugins/table/index.js | 7 + .../dist/libs/tinymce/plugins/table/plugin.js | 3393 ++ .../libs/tinymce/plugins/table/plugin.min.js | 4 + .../libs/tinymce/plugins/template/index.js | 7 + .../libs/tinymce/plugins/template/plugin.js | 548 + .../tinymce/plugins/template/plugin.min.js | 4 + .../tinymce/plugins/visualblocks/index.js | 7 + .../tinymce/plugins/visualblocks/plugin.js | 98 + .../plugins/visualblocks/plugin.min.js | 4 + .../libs/tinymce/plugins/visualchars/index.js | 7 + .../tinymce/plugins/visualchars/plugin.js | 506 + .../tinymce/plugins/visualchars/plugin.min.js | 4 + .../libs/tinymce/plugins/wordcount/index.js | 7 + .../libs/tinymce/plugins/wordcount/plugin.js | 404 + .../tinymce/plugins/wordcount/plugin.min.js | 4 + .../tinymce/skins/content/dark/content.css | 66 + .../skins/content/dark/content.min.css | 1 + .../tinymce/skins/content/default/content.css | 61 + .../skins/content/default/content.min.css | 1 + .../skins/content/document/content.css | 66 + .../skins/content/document/content.min.css | 1 + .../skins/content/tinymce-5-dark/content.css | 66 + .../content/tinymce-5-dark/content.min.css | 1 + .../skins/content/tinymce-5/content.css | 61 + .../skins/content/tinymce-5/content.min.css | 1 + .../tinymce/skins/content/writer/content.css | 62 + .../skins/content/writer/content.min.css | 1 + .../tinymce/skins/ui/oxide-dark/content.css | 728 + .../skins/ui/oxide-dark/content.inline.css | 741 + .../ui/oxide-dark/content.inline.min.css | 1 + .../skins/ui/oxide-dark/content.min.css | 1 + .../libs/tinymce/skins/ui/oxide-dark/skin.css | 3077 ++ .../tinymce/skins/ui/oxide-dark/skin.min.css | 1 + .../skins/ui/oxide-dark/skin.shadowdom.css | 30 + .../ui/oxide-dark/skin.shadowdom.min.css | 1 + .../libs/tinymce/skins/ui/oxide/content.css | 747 + .../tinymce/skins/ui/oxide/content.inline.css | 741 + .../skins/ui/oxide/content.inline.min.css | 1 + .../tinymce/skins/ui/oxide/content.min.css | 1 + .../dist/libs/tinymce/skins/ui/oxide/skin.css | 3074 ++ .../libs/tinymce/skins/ui/oxide/skin.min.css | 1 + .../tinymce/skins/ui/oxide/skin.shadowdom.css | 30 + .../skins/ui/oxide/skin.shadowdom.min.css | 1 + .../skins/ui/tinymce-5-dark/content.css | 728 + .../ui/tinymce-5-dark/content.inline.css | 741 + .../ui/tinymce-5-dark/content.inline.min.css | 1 + .../skins/ui/tinymce-5-dark/content.min.css | 1 + .../tinymce/skins/ui/tinymce-5-dark/skin.css | 3158 ++ .../skins/ui/tinymce-5-dark/skin.min.css | 1 + .../ui/tinymce-5-dark/skin.shadowdom.css | 30 + .../ui/tinymce-5-dark/skin.shadowdom.min.css | 1 + .../tinymce/skins/ui/tinymce-5/content.css | 747 + .../skins/ui/tinymce-5/content.inline.css | 741 + .../skins/ui/tinymce-5/content.inline.min.css | 1 + .../skins/ui/tinymce-5/content.min.css | 1 + .../libs/tinymce/skins/ui/tinymce-5/skin.css | 3158 ++ .../tinymce/skins/ui/tinymce-5/skin.min.css | 1 + .../skins/ui/tinymce-5/skin.shadowdom.css | 30 + .../skins/ui/tinymce-5/skin.shadowdom.min.css | 1 + demo/dist/libs/tinymce/themes/silver/index.js | 7 + demo/dist/libs/tinymce/themes/silver/theme.js | 26184 +++++++++++++ .../libs/tinymce/themes/silver/theme.min.js | 4 + demo/dist/libs/tinymce/tinymce.d.ts | 2895 ++ demo/dist/libs/tinymce/tinymce.js | 29400 ++++++++++++++ demo/dist/libs/tinymce/tinymce.min.js | 4 + .../dist/js/plugins/caret_position.js | 170 + .../dist/js/plugins/caret_position.js.map | Bin 0 -> 19430 bytes .../dist/js/plugins/change_listener.js | 58 + .../dist/js/plugins/change_listener.js.map | Bin 0 -> 5980 bytes .../dist/js/plugins/checkbox_options.js | 182 + .../dist/js/plugins/checkbox_options.js.map | Bin 0 -> 22207 bytes .../dist/js/plugins/clear_button.js | 99 + .../dist/js/plugins/clear_button.js.map | Bin 0 -> 13890 bytes .../tom-select/dist/js/plugins/drag_drop.js | 70 + .../dist/js/plugins/drag_drop.js.map | Bin 0 -> 4084 bytes .../dist/js/plugins/dropdown_header.js | 126 + .../dist/js/plugins/dropdown_header.js.map | Bin 0 -> 19224 bytes .../dist/js/plugins/dropdown_input.js | 240 + .../dist/js/plugins/dropdown_input.js.map | Bin 0 -> 26993 bytes .../dist/js/plugins/input_autogrow.js | 84 + .../dist/js/plugins/input_autogrow.js.map | Bin 0 -> 8067 bytes .../dist/js/plugins/no_active_items.js | 33 + .../dist/js/plugins/no_active_items.js.map | Bin 0 -> 1174 bytes .../dist/js/plugins/no_backspace_delete.js | 40 + .../js/plugins/no_backspace_delete.js.map | Bin 0 -> 1590 bytes .../dist/js/plugins/optgroup_columns.js | 117 + .../dist/js/plugins/optgroup_columns.js.map | Bin 0 -> 15260 bytes .../dist/js/plugins/remove_button.js | 154 + .../dist/js/plugins/remove_button.js.map | Bin 0 -> 20549 bytes .../dist/js/plugins/restore_on_backspace.js | 51 + .../js/plugins/restore_on_backspace.js.map | Bin 0 -> 2368 bytes .../dist/js/plugins/virtual_scroll.js | 279 + .../dist/js/plugins/virtual_scroll.js.map | Bin 0 -> 26434 bytes .../tom-select/dist/js/tom-select.base.js | 4165 ++ .../tom-select/dist/js/tom-select.base.js.map | Bin 0 -> 228437 bytes .../tom-select/dist/js/tom-select.base.min.js | 288 +- .../dist/js/tom-select.base.min.js.map | Bin 0 -> 167589 bytes .../tom-select/dist/js/tom-select.complete.js | 4978 +++ .../dist/js/tom-select.complete.js.map | Bin 0 -> 282643 bytes .../dist/js/tom-select.complete.min.js | 363 + .../dist/js/tom-select.complete.min.js.map | Bin 0 -> 209366 bytes .../tom-select/dist/js/tom-select.popular.js | 4419 +++ .../dist/js/tom-select.popular.js.map | Bin 0 -> 246186 bytes .../dist/js/tom-select.popular.min.js | 323 + .../dist/js/tom-select.popular.min.js.map | Bin 0 -> 181440 bytes demo/docs/alerts.html | 70 +- demo/docs/autosize.html | 70 +- demo/docs/avatars.html | 70 +- demo/docs/badges.html | 70 +- demo/docs/borders.html | 76 +- demo/docs/breadcrumb.html | 70 +- demo/docs/browser-support.html | 70 +- demo/docs/buttons.html | 114 +- demo/docs/cards.html | 74 +- demo/docs/carousel.html | 70 +- demo/docs/charts.html | 70 +- demo/docs/colors.html | 70 +- demo/docs/countup.html | 70 +- demo/docs/cursors.html | 70 +- demo/docs/customize.html | 70 +- demo/docs/datagrid.html | 1113 + demo/docs/divider.html | 70 +- demo/docs/download.html | 82 +- demo/docs/dropdowns.html | 72 +- demo/docs/dropzone.html | 1041 + demo/docs/empty.html | 70 +- demo/docs/flags.html | 72 +- demo/docs/form-color-check.html | 70 +- demo/docs/form-elements.html | 92 +- demo/docs/form-fieldset.html | 70 +- demo/docs/form-helpers.html | 70 +- demo/docs/form-image-check.html | 70 +- demo/docs/form-selectboxes.html | 72 +- demo/docs/form-validation.html | 70 +- demo/docs/getting-started.html | 70 +- demo/docs/icons.html | 78 +- demo/docs/index.html | 85 +- demo/docs/inline-player.html | 989 + demo/docs/input-mask.html | 70 +- demo/docs/interactions.html | 70 +- demo/docs/modals.html | 626 +- demo/docs/page-headers.html | 70 +- demo/docs/payments.html | 72 +- demo/docs/placeholder.html | 70 +- demo/docs/popover.html | 1006 + demo/docs/progress.html | 70 +- demo/docs/range-slider.html | 92 +- demo/docs/ribbons.html | 70 +- demo/docs/spinners.html | 70 +- demo/docs/statuses.html | 70 +- demo/docs/steps.html | 70 +- demo/docs/switch-icon.html | 76 +- demo/docs/tables.html | 70 +- demo/docs/tabs.html | 70 +- demo/docs/timelines.html | 70 +- demo/docs/tinymce.html | 1001 + demo/docs/toasts.html | 70 +- demo/docs/tooltips.html | 70 +- demo/docs/typography.html | 70 +- demo/dropdowns.html | 43 +- demo/dropzone.html | 651 + demo/empty.html | 43 +- demo/error-404.html | 2 +- demo/error-500.html | 2 +- demo/error-maintenance.html | 2 +- demo/faq.html | 43 +- demo/features.html | 2 +- demo/forgot-password.html | 2 +- demo/form-elements.html | 172 +- demo/gallery.html | 67 +- demo/icons.html | 863 +- demo/index.html | 47 +- demo/inline-player.html | 623 + demo/invoice.html | 43 +- demo/layout-boxed.html | 47 +- demo/layout-combo.html | 47 +- demo/layout-condensed.html | 45 +- demo/layout-fluid-vertical.html | 47 +- demo/layout-fluid.html | 47 +- demo/layout-horizontal.html | 47 +- demo/layout-navbar-dark.html | 47 +- demo/layout-navbar-overlap.html | 45 +- demo/layout-navbar-sticky.html | 47 +- demo/layout-rtl.html | 47 +- demo/layout-vertical-right.html | 47 +- demo/layout-vertical-transparent.html | 47 +- demo/layout-vertical.html | 47 +- demo/license.html | 43 +- demo/lightbox.html | 767 + demo/lists.html | 43 +- demo/map-fullsize.html | 43 +- demo/maps-vector.html | 43 +- demo/maps.html | 43 +- demo/markdown.html | 43 +- demo/modals.html | 43 +- demo/music.html | 91 +- demo/navigation.html | 47 +- demo/offcanvas.html | 43 +- demo/pagination.html | 43 +- demo/placeholder.html | 43 +- demo/playground.html | 146 +- demo/pricing-table.html | 729 + demo/pricing.html | 43 +- demo/search-results.html | 43 +- demo/settings.html | 712 + demo/sign-in.html | 2 +- demo/sign-up.html | 2 +- demo/sitemap.xml | 139 +- demo/tables.html | 43 +- demo/tabs.html | 43 +- demo/tasks.html | 95 +- demo/terms-of-service.html | 2 +- demo/tinymce.html | 626 + demo/typography.html | 43 +- demo/uptime.html | 43 +- demo/users.html | 43 +- demo/widgets.html | 45 +- demo/wizard.html | 2 +- dist/css/demo.css | 4 +- dist/css/demo.min.css | 4 +- dist/css/demo.rtl.css | 4 +- dist/css/demo.rtl.min.css | 4 +- dist/css/tabler-flags.css | 4 +- dist/css/tabler-flags.min.css | 4 +- dist/css/tabler-flags.rtl.css | 4 +- dist/css/tabler-flags.rtl.min.css | 4 +- dist/css/tabler-payments.css | 4 +- dist/css/tabler-payments.min.css | 4 +- dist/css/tabler-payments.rtl.css | 4 +- dist/css/tabler-payments.rtl.min.css | 4 +- dist/css/tabler-vendors.css | 172 +- dist/css/tabler-vendors.min.css | 6 +- dist/css/tabler-vendors.rtl.css | 172 +- dist/css/tabler-vendors.rtl.min.css | 6 +- dist/css/tabler.css | 8458 ++-- dist/css/tabler.min.css | 8 +- dist/css/tabler.rtl.css | 8470 ++-- dist/css/tabler.rtl.min.css | 8 +- dist/js/demo.js | 4 +- dist/js/demo.min.js | 4 +- dist/js/tabler.esm.js | 3270 +- dist/js/tabler.esm.min.js | 6 +- dist/js/tabler.js | 3270 +- dist/js/tabler.min.js | 6 +- dist/libs/apexcharts/dist/apexcharts.amd.js | 2 + .../libs/apexcharts/dist/apexcharts.common.js | 14 + dist/libs/apexcharts/dist/apexcharts.css | 691 + dist/libs/apexcharts/dist/apexcharts.esm.js | 14 + dist/libs/apexcharts/dist/apexcharts.js | 31960 ++++++++++++++++ dist/libs/apexcharts/dist/apexcharts.min.js | 8 +- dist/libs/apexcharts/dist/locales/ar.json | 63 + dist/libs/apexcharts/dist/locales/ca.json | 55 + dist/libs/apexcharts/dist/locales/cs.json | 55 + dist/libs/apexcharts/dist/locales/de.json | 55 + dist/libs/apexcharts/dist/locales/el.json | 55 + dist/libs/apexcharts/dist/locales/en.json | 55 + dist/libs/apexcharts/dist/locales/es.json | 55 + dist/libs/apexcharts/dist/locales/et.json | 63 + dist/libs/apexcharts/dist/locales/fa.json | 55 + dist/libs/apexcharts/dist/locales/fi.json | 55 + dist/libs/apexcharts/dist/locales/fr.json | 55 + dist/libs/apexcharts/dist/locales/he.json | 55 + dist/libs/apexcharts/dist/locales/hi.json | 55 + dist/libs/apexcharts/dist/locales/hr.json | 55 + dist/libs/apexcharts/dist/locales/hu.json | 64 + dist/libs/apexcharts/dist/locales/hy.json | 55 + dist/libs/apexcharts/dist/locales/id.json | 47 + dist/libs/apexcharts/dist/locales/it.json | 55 + dist/libs/apexcharts/dist/locales/ja.json | 55 + dist/libs/apexcharts/dist/locales/ka.json | 55 + dist/libs/apexcharts/dist/locales/ko.json | 55 + dist/libs/apexcharts/dist/locales/lt.json | 55 + dist/libs/apexcharts/dist/locales/lv.json | 64 + dist/libs/apexcharts/dist/locales/nb.json | 55 + dist/libs/apexcharts/dist/locales/nl.json | 55 + dist/libs/apexcharts/dist/locales/pl.json | 55 + dist/libs/apexcharts/dist/locales/pt-br.json | 55 + dist/libs/apexcharts/dist/locales/pt.json | 55 + dist/libs/apexcharts/dist/locales/rs.json | 55 + dist/libs/apexcharts/dist/locales/ru.json | 55 + dist/libs/apexcharts/dist/locales/se.json | 55 + dist/libs/apexcharts/dist/locales/sk.json | 55 + dist/libs/apexcharts/dist/locales/sl.json | 55 + dist/libs/apexcharts/dist/locales/sq.json | 55 + dist/libs/apexcharts/dist/locales/th.json | 55 + dist/libs/apexcharts/dist/locales/tr.json | 55 + dist/libs/apexcharts/dist/locales/ua.json | 55 + dist/libs/apexcharts/dist/locales/zh-cn.json | 55 + dist/libs/apexcharts/dist/locales/zh-tw.json | 55 + .../bootstrap/dist/js/bootstrap.bundle.js | 7066 ++++ .../bootstrap/dist/js/bootstrap.bundle.js.map | Bin 0 -> 448881 bytes .../bootstrap/dist/js/bootstrap.bundle.min.js | 6 +- .../dist/js/bootstrap.bundle.min.js.map | Bin 0 -> 330849 bytes dist/libs/bootstrap/dist/js/bootstrap.esm.js | 5204 +++ .../bootstrap/dist/js/bootstrap.esm.js.map | Bin 0 -> 306814 bytes .../bootstrap/dist/js/bootstrap.esm.min.js | 7 + .../dist/js/bootstrap.esm.min.js.map | Bin 0 -> 220143 bytes dist/libs/bootstrap/dist/js/bootstrap.js | 5251 +++ dist/libs/bootstrap/dist/js/bootstrap.js.map | Bin 0 -> 307954 bytes dist/libs/bootstrap/dist/js/bootstrap.min.js | 7 + .../bootstrap/dist/js/bootstrap.min.js.map | Bin 0 -> 215897 bytes dist/libs/countup.js/dist/countUp.d.ts | 61 + dist/libs/countup.js/dist/countUp.js | 47 +- dist/libs/countup.js/dist/countUp.min.js | 1 + dist/libs/countup.js/dist/countUp.umd.js | 293 + .../dist/countUp.withPolyfill.min.js | 1 + dist/libs/dropzone/dist/basic.css | 1 + dist/libs/dropzone/dist/basic.css.map | Bin 0 -> 289 bytes dist/libs/dropzone/dist/dropzone-min.js | 2 + dist/libs/dropzone/dist/dropzone-min.js.map | Bin 0 -> 156927 bytes dist/libs/dropzone/dist/dropzone.css | 1 + dist/libs/dropzone/dist/dropzone.css.map | Bin 0 -> 1354 bytes dist/libs/dropzone/dist/dropzone.js | 3068 ++ dist/libs/dropzone/dist/dropzone.js.map | Bin 0 -> 183078 bytes dist/libs/dropzone/dist/dropzone.mjs | 2111 + dist/libs/dropzone/dist/dropzone.mjs.map | Bin 0 -> 171877 bytes dist/libs/fslightbox/LICENSE | 21 + dist/libs/fslightbox/README.md | 62 + dist/libs/fslightbox/index.js | 1 + dist/libs/fslightbox/jest-setup.js | 1 + dist/libs/fslightbox/package.json | 72 + dist/libs/jsvectormap/dist/js/jsvectormap.js | 2663 ++ .../jsvectormap/dist/js/jsvectormap.min.js | 2 +- dist/libs/jsvectormap/dist/maps/world-merc.js | 2 +- dist/libs/jsvectormap/dist/maps/world.js | 2 +- dist/libs/list.js/dist/list.js | 2020 + dist/libs/list.js/dist/list.js.map | Bin 0 -> 58578 bytes dist/libs/list.js/dist/list.min.js.map | Bin 0 -> 109 bytes dist/libs/litepicker/dist/bundle.js | 52 + dist/libs/litepicker/dist/css/litepicker.css | 13 + .../dist/css/plugins/keyboardnav.js.css | 12 + .../dist/css/plugins/mobilefriendly.js.css | 133 + .../dist/css/plugins/multiselect.js.css | 54 + .../litepicker/dist/css/plugins/ranges.js.css | 81 + dist/libs/litepicker/dist/js/main.js | 13 + dist/libs/litepicker/dist/litepicker.amd.js | 12 + .../litepicker/dist/litepicker.commonjs2.js | 12 + dist/libs/litepicker/dist/litepicker.umd.js | 12 + .../litepicker/dist/nocss/litepicker.amd.js | 12 + .../dist/nocss/litepicker.commonjs2.js | 12 + dist/libs/litepicker/dist/nocss/litepicker.js | 12 + .../litepicker/dist/nocss/litepicker.umd.js | 12 + .../dist/nocss/plugins/keyboardnav.js | 11 + .../dist/nocss/plugins/mobilefriendly.js | 11 + .../dist/nocss/plugins/multiselect.js | 11 + .../litepicker/dist/nocss/plugins/ranges.js | 11 + .../litepicker/dist/plugins/keyboardnav.js | 11 + .../litepicker/dist/plugins/mobilefriendly.js | 11 + .../litepicker/dist/plugins/multiselect.js | 11 + dist/libs/litepicker/dist/plugins/ranges.js | 11 + dist/libs/litepicker/dist/types/calendar.d.ts | 14 + dist/libs/litepicker/dist/types/core.d.ts | 23 + dist/libs/litepicker/dist/types/datetime.d.ts | 41 + dist/libs/litepicker/dist/types/index.d.ts | 4 + .../litepicker/dist/types/interfaces.d.ts | 80 + .../litepicker/dist/types/litepicker.d.ts | 25 + dist/libs/litepicker/dist/types/methods.d.ts | 20 + dist/libs/litepicker/dist/types/utils.d.ts | 4 + dist/libs/litepicker/dist/types/window.d.ts | 6 + dist/libs/nouislider/dist/nouislider.css | 304 + dist/libs/nouislider/dist/nouislider.d.ts | 198 + dist/libs/nouislider/dist/nouislider.js | 2254 ++ dist/libs/nouislider/dist/nouislider.min.css | 1 + dist/libs/nouislider/dist/nouislider.min.js | 2 +- dist/libs/nouislider/dist/nouislider.min.mjs | 1 + dist/libs/nouislider/dist/nouislider.mjs | 2243 ++ dist/libs/plyr/dist/plyr.css | 1 + dist/libs/plyr/dist/plyr.js | 8764 +++++ dist/libs/plyr/dist/plyr.min.js | 2 + dist/libs/plyr/dist/plyr.min.js.map | Bin 0 -> 735340 bytes dist/libs/plyr/dist/plyr.min.mjs | 1 + dist/libs/plyr/dist/plyr.min.mjs.map | Bin 0 -> 724179 bytes dist/libs/plyr/dist/plyr.mjs | 8756 +++++ dist/libs/plyr/dist/plyr.polyfilled.js | 9301 +++++ dist/libs/plyr/dist/plyr.polyfilled.min.js | 2 + .../libs/plyr/dist/plyr.polyfilled.min.js.map | Bin 0 -> 777247 bytes dist/libs/plyr/dist/plyr.polyfilled.min.mjs | 1 + .../plyr/dist/plyr.polyfilled.min.mjs.map | Bin 0 -> 765233 bytes dist/libs/plyr/dist/plyr.polyfilled.mjs | 9293 +++++ dist/libs/plyr/dist/plyr.svg | 1 + dist/libs/tinymce/CHANGELOG.md | 2957 ++ dist/libs/tinymce/README.md | 71 + dist/libs/tinymce/bower.json | 27 + dist/libs/tinymce/composer.json | 52 + dist/libs/tinymce/icons/default/icons.js | 182 + dist/libs/tinymce/icons/default/icons.min.js | 1 + dist/libs/tinymce/icons/default/index.js | 7 + dist/libs/tinymce/license.txt | 21 + dist/libs/tinymce/models/dom/index.js | 7 + dist/libs/tinymce/models/dom/model.js | 7975 ++++ dist/libs/tinymce/models/dom/model.min.js | 4 + dist/libs/tinymce/package.json | 32 + dist/libs/tinymce/plugins/advlist/index.js | 7 + dist/libs/tinymce/plugins/advlist/plugin.js | 246 + .../tinymce/plugins/advlist/plugin.min.js | 4 + dist/libs/tinymce/plugins/anchor/index.js | 7 + dist/libs/tinymce/plugins/anchor/plugin.js | 195 + .../libs/tinymce/plugins/anchor/plugin.min.js | 4 + dist/libs/tinymce/plugins/autolink/index.js | 7 + dist/libs/tinymce/plugins/autolink/plugin.js | 232 + .../tinymce/plugins/autolink/plugin.min.js | 4 + dist/libs/tinymce/plugins/autoresize/index.js | 7 + .../libs/tinymce/plugins/autoresize/plugin.js | 156 + .../tinymce/plugins/autoresize/plugin.min.js | 4 + dist/libs/tinymce/plugins/autosave/index.js | 7 + dist/libs/tinymce/plugins/autosave/plugin.js | 232 + .../tinymce/plugins/autosave/plugin.min.js | 4 + dist/libs/tinymce/plugins/charmap/index.js | 7 + dist/libs/tinymce/plugins/charmap/plugin.js | 1636 + .../tinymce/plugins/charmap/plugin.min.js | 4 + dist/libs/tinymce/plugins/code/index.js | 7 + dist/libs/tinymce/plugins/code/plugin.js | 85 + dist/libs/tinymce/plugins/code/plugin.min.js | 4 + dist/libs/tinymce/plugins/codesample/index.js | 7 + .../libs/tinymce/plugins/codesample/plugin.js | 2451 ++ .../tinymce/plugins/codesample/plugin.min.js | 4 + .../tinymce/plugins/directionality/index.js | 7 + .../tinymce/plugins/directionality/plugin.js | 384 + .../plugins/directionality/plugin.min.js | 4 + dist/libs/tinymce/plugins/emoticons/index.js | 7 + .../plugins/emoticons/js/emojiimages.js | 1 + .../plugins/emoticons/js/emojiimages.min.js | 3 + .../tinymce/plugins/emoticons/js/emojis.js | 1 + .../plugins/emoticons/js/emojis.min.js | 2 + dist/libs/tinymce/plugins/emoticons/plugin.js | 577 + .../tinymce/plugins/emoticons/plugin.min.js | 4 + dist/libs/tinymce/plugins/fullscreen/index.js | 7 + .../libs/tinymce/plugins/fullscreen/plugin.js | 1190 + .../tinymce/plugins/fullscreen/plugin.min.js | 4 + dist/libs/tinymce/plugins/help/index.js | 7 + dist/libs/tinymce/plugins/help/plugin.js | 848 + dist/libs/tinymce/plugins/help/plugin.min.js | 4 + dist/libs/tinymce/plugins/image/index.js | 7 + dist/libs/tinymce/plugins/image/plugin.js | 1475 + dist/libs/tinymce/plugins/image/plugin.min.js | 4 + dist/libs/tinymce/plugins/importcss/index.js | 7 + dist/libs/tinymce/plugins/importcss/plugin.js | 342 + .../tinymce/plugins/importcss/plugin.min.js | 4 + .../tinymce/plugins/insertdatetime/index.js | 7 + .../tinymce/plugins/insertdatetime/plugin.js | 176 + .../plugins/insertdatetime/plugin.min.js | 4 + dist/libs/tinymce/plugins/link/index.js | 7 + dist/libs/tinymce/plugins/link/plugin.js | 1190 + dist/libs/tinymce/plugins/link/plugin.min.js | 4 + dist/libs/tinymce/plugins/lists/index.js | 7 + dist/libs/tinymce/plugins/lists/plugin.js | 1820 + dist/libs/tinymce/plugins/lists/plugin.min.js | 4 + dist/libs/tinymce/plugins/media/index.js | 7 + dist/libs/tinymce/plugins/media/plugin.js | 1157 + dist/libs/tinymce/plugins/media/plugin.min.js | 4 + .../libs/tinymce/plugins/nonbreaking/index.js | 7 + .../tinymce/plugins/nonbreaking/plugin.js | 111 + .../tinymce/plugins/nonbreaking/plugin.min.js | 4 + dist/libs/tinymce/plugins/pagebreak/index.js | 7 + dist/libs/tinymce/plugins/pagebreak/plugin.js | 105 + .../tinymce/plugins/pagebreak/plugin.min.js | 4 + dist/libs/tinymce/plugins/preview/index.js | 7 + dist/libs/tinymce/plugins/preview/plugin.js | 97 + .../tinymce/plugins/preview/plugin.min.js | 4 + dist/libs/tinymce/plugins/quickbars/index.js | 7 + dist/libs/tinymce/plugins/quickbars/plugin.js | 421 + .../tinymce/plugins/quickbars/plugin.min.js | 4 + dist/libs/tinymce/plugins/save/index.js | 7 + dist/libs/tinymce/plugins/save/plugin.js | 118 + dist/libs/tinymce/plugins/save/plugin.min.js | 4 + .../tinymce/plugins/searchreplace/index.js | 7 + .../tinymce/plugins/searchreplace/plugin.js | 1079 + .../plugins/searchreplace/plugin.min.js | 4 + dist/libs/tinymce/plugins/table/index.js | 7 + dist/libs/tinymce/plugins/table/plugin.js | 3393 ++ dist/libs/tinymce/plugins/table/plugin.min.js | 4 + dist/libs/tinymce/plugins/template/index.js | 7 + dist/libs/tinymce/plugins/template/plugin.js | 548 + .../tinymce/plugins/template/plugin.min.js | 4 + .../tinymce/plugins/visualblocks/index.js | 7 + .../tinymce/plugins/visualblocks/plugin.js | 98 + .../plugins/visualblocks/plugin.min.js | 4 + .../libs/tinymce/plugins/visualchars/index.js | 7 + .../tinymce/plugins/visualchars/plugin.js | 506 + .../tinymce/plugins/visualchars/plugin.min.js | 4 + dist/libs/tinymce/plugins/wordcount/index.js | 7 + dist/libs/tinymce/plugins/wordcount/plugin.js | 404 + .../tinymce/plugins/wordcount/plugin.min.js | 4 + .../tinymce/skins/content/dark/content.css | 66 + .../skins/content/dark/content.min.css | 1 + .../tinymce/skins/content/default/content.css | 61 + .../skins/content/default/content.min.css | 1 + .../skins/content/document/content.css | 66 + .../skins/content/document/content.min.css | 1 + .../skins/content/tinymce-5-dark/content.css | 66 + .../content/tinymce-5-dark/content.min.css | 1 + .../skins/content/tinymce-5/content.css | 61 + .../skins/content/tinymce-5/content.min.css | 1 + .../tinymce/skins/content/writer/content.css | 62 + .../skins/content/writer/content.min.css | 1 + .../tinymce/skins/ui/oxide-dark/content.css | 728 + .../skins/ui/oxide-dark/content.inline.css | 741 + .../ui/oxide-dark/content.inline.min.css | 1 + .../skins/ui/oxide-dark/content.min.css | 1 + .../libs/tinymce/skins/ui/oxide-dark/skin.css | 3077 ++ .../tinymce/skins/ui/oxide-dark/skin.min.css | 1 + .../skins/ui/oxide-dark/skin.shadowdom.css | 30 + .../ui/oxide-dark/skin.shadowdom.min.css | 1 + dist/libs/tinymce/skins/ui/oxide/content.css | 747 + .../tinymce/skins/ui/oxide/content.inline.css | 741 + .../skins/ui/oxide/content.inline.min.css | 1 + .../tinymce/skins/ui/oxide/content.min.css | 1 + dist/libs/tinymce/skins/ui/oxide/skin.css | 3074 ++ dist/libs/tinymce/skins/ui/oxide/skin.min.css | 1 + .../tinymce/skins/ui/oxide/skin.shadowdom.css | 30 + .../skins/ui/oxide/skin.shadowdom.min.css | 1 + .../skins/ui/tinymce-5-dark/content.css | 728 + .../ui/tinymce-5-dark/content.inline.css | 741 + .../ui/tinymce-5-dark/content.inline.min.css | 1 + .../skins/ui/tinymce-5-dark/content.min.css | 1 + .../tinymce/skins/ui/tinymce-5-dark/skin.css | 3158 ++ .../skins/ui/tinymce-5-dark/skin.min.css | 1 + .../ui/tinymce-5-dark/skin.shadowdom.css | 30 + .../ui/tinymce-5-dark/skin.shadowdom.min.css | 1 + .../tinymce/skins/ui/tinymce-5/content.css | 747 + .../skins/ui/tinymce-5/content.inline.css | 741 + .../skins/ui/tinymce-5/content.inline.min.css | 1 + .../skins/ui/tinymce-5/content.min.css | 1 + dist/libs/tinymce/skins/ui/tinymce-5/skin.css | 3158 ++ .../tinymce/skins/ui/tinymce-5/skin.min.css | 1 + .../skins/ui/tinymce-5/skin.shadowdom.css | 30 + .../skins/ui/tinymce-5/skin.shadowdom.min.css | 1 + dist/libs/tinymce/themes/silver/index.js | 7 + dist/libs/tinymce/themes/silver/theme.js | 26184 +++++++++++++ dist/libs/tinymce/themes/silver/theme.min.js | 4 + dist/libs/tinymce/tinymce.d.ts | 2895 ++ dist/libs/tinymce/tinymce.js | 29400 ++++++++++++++ dist/libs/tinymce/tinymce.min.js | 4 + .../dist/js/plugins/caret_position.js | 170 + .../dist/js/plugins/caret_position.js.map | Bin 0 -> 19430 bytes .../dist/js/plugins/change_listener.js | 58 + .../dist/js/plugins/change_listener.js.map | Bin 0 -> 5980 bytes .../dist/js/plugins/checkbox_options.js | 182 + .../dist/js/plugins/checkbox_options.js.map | Bin 0 -> 22207 bytes .../dist/js/plugins/clear_button.js | 99 + .../dist/js/plugins/clear_button.js.map | Bin 0 -> 13890 bytes .../tom-select/dist/js/plugins/drag_drop.js | 70 + .../dist/js/plugins/drag_drop.js.map | Bin 0 -> 4084 bytes .../dist/js/plugins/dropdown_header.js | 126 + .../dist/js/plugins/dropdown_header.js.map | Bin 0 -> 19224 bytes .../dist/js/plugins/dropdown_input.js | 240 + .../dist/js/plugins/dropdown_input.js.map | Bin 0 -> 26993 bytes .../dist/js/plugins/input_autogrow.js | 84 + .../dist/js/plugins/input_autogrow.js.map | Bin 0 -> 8067 bytes .../dist/js/plugins/no_active_items.js | 33 + .../dist/js/plugins/no_active_items.js.map | Bin 0 -> 1174 bytes .../dist/js/plugins/no_backspace_delete.js | 40 + .../js/plugins/no_backspace_delete.js.map | Bin 0 -> 1590 bytes .../dist/js/plugins/optgroup_columns.js | 117 + .../dist/js/plugins/optgroup_columns.js.map | Bin 0 -> 15260 bytes .../dist/js/plugins/remove_button.js | 154 + .../dist/js/plugins/remove_button.js.map | Bin 0 -> 20549 bytes .../dist/js/plugins/restore_on_backspace.js | 51 + .../js/plugins/restore_on_backspace.js.map | Bin 0 -> 2368 bytes .../dist/js/plugins/virtual_scroll.js | 279 + .../dist/js/plugins/virtual_scroll.js.map | Bin 0 -> 26434 bytes .../tom-select/dist/js/tom-select.base.js | 4165 ++ .../tom-select/dist/js/tom-select.base.js.map | Bin 0 -> 228437 bytes .../tom-select/dist/js/tom-select.base.min.js | 288 +- .../dist/js/tom-select.base.min.js.map | Bin 0 -> 167589 bytes .../tom-select/dist/js/tom-select.complete.js | 4978 +++ .../dist/js/tom-select.complete.js.map | Bin 0 -> 282643 bytes .../dist/js/tom-select.complete.min.js | 363 + .../dist/js/tom-select.complete.min.js.map | Bin 0 -> 209366 bytes .../tom-select/dist/js/tom-select.popular.js | 4419 +++ .../dist/js/tom-select.popular.js.map | Bin 0 -> 246186 bytes .../dist/js/tom-select.popular.min.js | 323 + .../dist/js/tom-select.popular.min.js.map | Bin 0 -> 181440 bytes package-lock.json | 4 +- package.json | 2 +- 839 files changed, 509257 insertions(+), 19420 deletions(-) create mode 100644 demo/datagrid.html create mode 100644 demo/dist/libs/apexcharts/dist/apexcharts.amd.js create mode 100644 demo/dist/libs/apexcharts/dist/apexcharts.common.js create mode 100644 demo/dist/libs/apexcharts/dist/apexcharts.css create mode 100644 demo/dist/libs/apexcharts/dist/apexcharts.esm.js create mode 100644 demo/dist/libs/apexcharts/dist/apexcharts.js create mode 100644 demo/dist/libs/apexcharts/dist/locales/ar.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/ca.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/cs.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/de.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/el.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/en.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/es.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/et.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/fa.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/fi.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/fr.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/he.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/hi.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/hr.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/hu.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/hy.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/id.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/it.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/ja.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/ka.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/ko.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/lt.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/lv.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/nb.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/nl.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/pl.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/pt-br.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/pt.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/rs.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/ru.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/se.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/sk.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/sl.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/sq.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/th.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/tr.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/ua.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/zh-cn.json create mode 100644 demo/dist/libs/apexcharts/dist/locales/zh-tw.json create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.bundle.js create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.bundle.js.map create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.bundle.min.js.map create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.esm.js create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.esm.js.map create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.esm.min.js create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.esm.min.js.map create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.js create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.js.map create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.min.js create mode 100644 demo/dist/libs/bootstrap/dist/js/bootstrap.min.js.map create mode 100644 demo/dist/libs/countup.js/dist/countUp.d.ts create mode 100644 demo/dist/libs/countup.js/dist/countUp.min.js create mode 100644 demo/dist/libs/countup.js/dist/countUp.umd.js create mode 100644 demo/dist/libs/countup.js/dist/countUp.withPolyfill.min.js create mode 100644 demo/dist/libs/dropzone/dist/basic.css create mode 100644 demo/dist/libs/dropzone/dist/basic.css.map create mode 100644 demo/dist/libs/dropzone/dist/dropzone-min.js create mode 100644 demo/dist/libs/dropzone/dist/dropzone-min.js.map create mode 100644 demo/dist/libs/dropzone/dist/dropzone.css create mode 100644 demo/dist/libs/dropzone/dist/dropzone.css.map create mode 100644 demo/dist/libs/dropzone/dist/dropzone.js create mode 100644 demo/dist/libs/dropzone/dist/dropzone.js.map create mode 100644 demo/dist/libs/dropzone/dist/dropzone.mjs create mode 100644 demo/dist/libs/dropzone/dist/dropzone.mjs.map create mode 100644 demo/dist/libs/fslightbox/LICENSE create mode 100644 demo/dist/libs/fslightbox/README.md create mode 100644 demo/dist/libs/fslightbox/index.js create mode 100644 demo/dist/libs/fslightbox/jest-setup.js create mode 100644 demo/dist/libs/fslightbox/package.json create mode 100644 demo/dist/libs/jsvectormap/dist/js/jsvectormap.js create mode 100644 demo/dist/libs/list.js/dist/list.js create mode 100644 demo/dist/libs/list.js/dist/list.js.map create mode 100644 demo/dist/libs/list.js/dist/list.min.js.map create mode 100644 demo/dist/libs/litepicker/dist/bundle.js create mode 100644 demo/dist/libs/litepicker/dist/css/litepicker.css create mode 100644 demo/dist/libs/litepicker/dist/css/plugins/keyboardnav.js.css create mode 100644 demo/dist/libs/litepicker/dist/css/plugins/mobilefriendly.js.css create mode 100644 demo/dist/libs/litepicker/dist/css/plugins/multiselect.js.css create mode 100644 demo/dist/libs/litepicker/dist/css/plugins/ranges.js.css create mode 100644 demo/dist/libs/litepicker/dist/js/main.js create mode 100644 demo/dist/libs/litepicker/dist/litepicker.amd.js create mode 100644 demo/dist/libs/litepicker/dist/litepicker.commonjs2.js create mode 100644 demo/dist/libs/litepicker/dist/litepicker.umd.js create mode 100644 demo/dist/libs/litepicker/dist/nocss/litepicker.amd.js create mode 100644 demo/dist/libs/litepicker/dist/nocss/litepicker.commonjs2.js create mode 100644 demo/dist/libs/litepicker/dist/nocss/litepicker.js create mode 100644 demo/dist/libs/litepicker/dist/nocss/litepicker.umd.js create mode 100644 demo/dist/libs/litepicker/dist/nocss/plugins/keyboardnav.js create mode 100644 demo/dist/libs/litepicker/dist/nocss/plugins/mobilefriendly.js create mode 100644 demo/dist/libs/litepicker/dist/nocss/plugins/multiselect.js create mode 100644 demo/dist/libs/litepicker/dist/nocss/plugins/ranges.js create mode 100644 demo/dist/libs/litepicker/dist/plugins/keyboardnav.js create mode 100644 demo/dist/libs/litepicker/dist/plugins/mobilefriendly.js create mode 100644 demo/dist/libs/litepicker/dist/plugins/multiselect.js create mode 100644 demo/dist/libs/litepicker/dist/plugins/ranges.js create mode 100644 demo/dist/libs/litepicker/dist/types/calendar.d.ts create mode 100644 demo/dist/libs/litepicker/dist/types/core.d.ts create mode 100644 demo/dist/libs/litepicker/dist/types/datetime.d.ts create mode 100644 demo/dist/libs/litepicker/dist/types/index.d.ts create mode 100644 demo/dist/libs/litepicker/dist/types/interfaces.d.ts create mode 100644 demo/dist/libs/litepicker/dist/types/litepicker.d.ts create mode 100644 demo/dist/libs/litepicker/dist/types/methods.d.ts create mode 100644 demo/dist/libs/litepicker/dist/types/utils.d.ts create mode 100644 demo/dist/libs/litepicker/dist/types/window.d.ts create mode 100644 demo/dist/libs/nouislider/dist/nouislider.css create mode 100644 demo/dist/libs/nouislider/dist/nouislider.d.ts create mode 100644 demo/dist/libs/nouislider/dist/nouislider.js create mode 100644 demo/dist/libs/nouislider/dist/nouislider.min.css create mode 100644 demo/dist/libs/nouislider/dist/nouislider.min.mjs create mode 100644 demo/dist/libs/nouislider/dist/nouislider.mjs create mode 100644 demo/dist/libs/plyr/dist/plyr.css create mode 100644 demo/dist/libs/plyr/dist/plyr.js create mode 100644 demo/dist/libs/plyr/dist/plyr.min.js create mode 100644 demo/dist/libs/plyr/dist/plyr.min.js.map create mode 100644 demo/dist/libs/plyr/dist/plyr.min.mjs create mode 100644 demo/dist/libs/plyr/dist/plyr.min.mjs.map create mode 100644 demo/dist/libs/plyr/dist/plyr.mjs create mode 100644 demo/dist/libs/plyr/dist/plyr.polyfilled.js create mode 100644 demo/dist/libs/plyr/dist/plyr.polyfilled.min.js create mode 100644 demo/dist/libs/plyr/dist/plyr.polyfilled.min.js.map create mode 100644 demo/dist/libs/plyr/dist/plyr.polyfilled.min.mjs create mode 100644 demo/dist/libs/plyr/dist/plyr.polyfilled.min.mjs.map create mode 100644 demo/dist/libs/plyr/dist/plyr.polyfilled.mjs create mode 100644 demo/dist/libs/plyr/dist/plyr.svg create mode 100644 demo/dist/libs/tinymce/CHANGELOG.md create mode 100644 demo/dist/libs/tinymce/README.md create mode 100644 demo/dist/libs/tinymce/bower.json create mode 100644 demo/dist/libs/tinymce/composer.json create mode 100644 demo/dist/libs/tinymce/icons/default/icons.js create mode 100644 demo/dist/libs/tinymce/icons/default/icons.min.js create mode 100644 demo/dist/libs/tinymce/icons/default/index.js create mode 100644 demo/dist/libs/tinymce/license.txt create mode 100644 demo/dist/libs/tinymce/models/dom/index.js create mode 100644 demo/dist/libs/tinymce/models/dom/model.js create mode 100644 demo/dist/libs/tinymce/models/dom/model.min.js create mode 100644 demo/dist/libs/tinymce/package.json create mode 100644 demo/dist/libs/tinymce/plugins/advlist/index.js create mode 100644 demo/dist/libs/tinymce/plugins/advlist/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/advlist/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/anchor/index.js create mode 100644 demo/dist/libs/tinymce/plugins/anchor/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/anchor/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/autolink/index.js create mode 100644 demo/dist/libs/tinymce/plugins/autolink/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/autolink/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/autoresize/index.js create mode 100644 demo/dist/libs/tinymce/plugins/autoresize/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/autoresize/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/autosave/index.js create mode 100644 demo/dist/libs/tinymce/plugins/autosave/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/autosave/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/charmap/index.js create mode 100644 demo/dist/libs/tinymce/plugins/charmap/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/charmap/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/code/index.js create mode 100644 demo/dist/libs/tinymce/plugins/code/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/code/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/codesample/index.js create mode 100644 demo/dist/libs/tinymce/plugins/codesample/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/codesample/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/directionality/index.js create mode 100644 demo/dist/libs/tinymce/plugins/directionality/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/directionality/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/emoticons/index.js create mode 100644 demo/dist/libs/tinymce/plugins/emoticons/js/emojiimages.js create mode 100644 demo/dist/libs/tinymce/plugins/emoticons/js/emojiimages.min.js create mode 100644 demo/dist/libs/tinymce/plugins/emoticons/js/emojis.js create mode 100644 demo/dist/libs/tinymce/plugins/emoticons/js/emojis.min.js create mode 100644 demo/dist/libs/tinymce/plugins/emoticons/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/emoticons/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/fullscreen/index.js create mode 100644 demo/dist/libs/tinymce/plugins/fullscreen/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/fullscreen/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/help/index.js create mode 100644 demo/dist/libs/tinymce/plugins/help/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/help/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/image/index.js create mode 100644 demo/dist/libs/tinymce/plugins/image/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/image/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/importcss/index.js create mode 100644 demo/dist/libs/tinymce/plugins/importcss/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/importcss/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/insertdatetime/index.js create mode 100644 demo/dist/libs/tinymce/plugins/insertdatetime/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/insertdatetime/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/link/index.js create mode 100644 demo/dist/libs/tinymce/plugins/link/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/link/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/lists/index.js create mode 100644 demo/dist/libs/tinymce/plugins/lists/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/lists/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/media/index.js create mode 100644 demo/dist/libs/tinymce/plugins/media/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/media/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/nonbreaking/index.js create mode 100644 demo/dist/libs/tinymce/plugins/nonbreaking/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/nonbreaking/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/pagebreak/index.js create mode 100644 demo/dist/libs/tinymce/plugins/pagebreak/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/pagebreak/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/preview/index.js create mode 100644 demo/dist/libs/tinymce/plugins/preview/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/preview/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/quickbars/index.js create mode 100644 demo/dist/libs/tinymce/plugins/quickbars/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/quickbars/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/save/index.js create mode 100644 demo/dist/libs/tinymce/plugins/save/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/save/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/searchreplace/index.js create mode 100644 demo/dist/libs/tinymce/plugins/searchreplace/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/searchreplace/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/table/index.js create mode 100644 demo/dist/libs/tinymce/plugins/table/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/table/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/template/index.js create mode 100644 demo/dist/libs/tinymce/plugins/template/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/template/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/visualblocks/index.js create mode 100644 demo/dist/libs/tinymce/plugins/visualblocks/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/visualblocks/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/visualchars/index.js create mode 100644 demo/dist/libs/tinymce/plugins/visualchars/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/visualchars/plugin.min.js create mode 100644 demo/dist/libs/tinymce/plugins/wordcount/index.js create mode 100644 demo/dist/libs/tinymce/plugins/wordcount/plugin.js create mode 100644 demo/dist/libs/tinymce/plugins/wordcount/plugin.min.js create mode 100644 demo/dist/libs/tinymce/skins/content/dark/content.css create mode 100644 demo/dist/libs/tinymce/skins/content/dark/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/content/default/content.css create mode 100644 demo/dist/libs/tinymce/skins/content/default/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/content/document/content.css create mode 100644 demo/dist/libs/tinymce/skins/content/document/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/content/tinymce-5-dark/content.css create mode 100644 demo/dist/libs/tinymce/skins/content/tinymce-5-dark/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/content/tinymce-5/content.css create mode 100644 demo/dist/libs/tinymce/skins/content/tinymce-5/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/content/writer/content.css create mode 100644 demo/dist/libs/tinymce/skins/content/writer/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide-dark/content.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide-dark/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide-dark/skin.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide-dark/skin.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide/content.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide/content.inline.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide/content.inline.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide/skin.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide/skin.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide/skin.shadowdom.css create mode 100644 demo/dist/libs/tinymce/skins/ui/oxide/skin.shadowdom.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5/content.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5/content.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5/skin.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5/skin.min.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.css create mode 100644 demo/dist/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css create mode 100644 demo/dist/libs/tinymce/themes/silver/index.js create mode 100644 demo/dist/libs/tinymce/themes/silver/theme.js create mode 100644 demo/dist/libs/tinymce/themes/silver/theme.min.js create mode 100644 demo/dist/libs/tinymce/tinymce.d.ts create mode 100644 demo/dist/libs/tinymce/tinymce.js create mode 100644 demo/dist/libs/tinymce/tinymce.min.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/caret_position.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/caret_position.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/change_listener.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/change_listener.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/checkbox_options.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/checkbox_options.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/clear_button.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/clear_button.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/drag_drop.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/drag_drop.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/dropdown_header.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/dropdown_header.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/dropdown_input.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/dropdown_input.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/input_autogrow.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/input_autogrow.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/no_active_items.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/no_active_items.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/no_backspace_delete.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/no_backspace_delete.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/optgroup_columns.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/optgroup_columns.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/remove_button.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/remove_button.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/restore_on_backspace.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/restore_on_backspace.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/virtual_scroll.js create mode 100644 demo/dist/libs/tom-select/dist/js/plugins/virtual_scroll.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.base.js create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.base.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.base.min.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.complete.js create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.complete.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.complete.min.js create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.complete.min.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.popular.js create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.popular.js.map create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.popular.min.js create mode 100644 demo/dist/libs/tom-select/dist/js/tom-select.popular.min.js.map create mode 100644 demo/docs/datagrid.html create mode 100644 demo/docs/dropzone.html create mode 100644 demo/docs/inline-player.html create mode 100644 demo/docs/popover.html create mode 100644 demo/docs/tinymce.html create mode 100644 demo/dropzone.html create mode 100644 demo/inline-player.html create mode 100644 demo/lightbox.html create mode 100644 demo/pricing-table.html create mode 100644 demo/settings.html create mode 100644 demo/tinymce.html create mode 100644 dist/libs/apexcharts/dist/apexcharts.amd.js create mode 100644 dist/libs/apexcharts/dist/apexcharts.common.js create mode 100644 dist/libs/apexcharts/dist/apexcharts.css create mode 100644 dist/libs/apexcharts/dist/apexcharts.esm.js create mode 100644 dist/libs/apexcharts/dist/apexcharts.js create mode 100644 dist/libs/apexcharts/dist/locales/ar.json create mode 100644 dist/libs/apexcharts/dist/locales/ca.json create mode 100644 dist/libs/apexcharts/dist/locales/cs.json create mode 100644 dist/libs/apexcharts/dist/locales/de.json create mode 100644 dist/libs/apexcharts/dist/locales/el.json create mode 100644 dist/libs/apexcharts/dist/locales/en.json create mode 100644 dist/libs/apexcharts/dist/locales/es.json create mode 100644 dist/libs/apexcharts/dist/locales/et.json create mode 100644 dist/libs/apexcharts/dist/locales/fa.json create mode 100644 dist/libs/apexcharts/dist/locales/fi.json create mode 100644 dist/libs/apexcharts/dist/locales/fr.json create mode 100644 dist/libs/apexcharts/dist/locales/he.json create mode 100644 dist/libs/apexcharts/dist/locales/hi.json create mode 100644 dist/libs/apexcharts/dist/locales/hr.json create mode 100644 dist/libs/apexcharts/dist/locales/hu.json create mode 100644 dist/libs/apexcharts/dist/locales/hy.json create mode 100644 dist/libs/apexcharts/dist/locales/id.json create mode 100644 dist/libs/apexcharts/dist/locales/it.json create mode 100644 dist/libs/apexcharts/dist/locales/ja.json create mode 100644 dist/libs/apexcharts/dist/locales/ka.json create mode 100644 dist/libs/apexcharts/dist/locales/ko.json create mode 100644 dist/libs/apexcharts/dist/locales/lt.json create mode 100644 dist/libs/apexcharts/dist/locales/lv.json create mode 100644 dist/libs/apexcharts/dist/locales/nb.json create mode 100644 dist/libs/apexcharts/dist/locales/nl.json create mode 100644 dist/libs/apexcharts/dist/locales/pl.json create mode 100644 dist/libs/apexcharts/dist/locales/pt-br.json create mode 100644 dist/libs/apexcharts/dist/locales/pt.json create mode 100644 dist/libs/apexcharts/dist/locales/rs.json create mode 100644 dist/libs/apexcharts/dist/locales/ru.json create mode 100644 dist/libs/apexcharts/dist/locales/se.json create mode 100644 dist/libs/apexcharts/dist/locales/sk.json create mode 100644 dist/libs/apexcharts/dist/locales/sl.json create mode 100644 dist/libs/apexcharts/dist/locales/sq.json create mode 100644 dist/libs/apexcharts/dist/locales/th.json create mode 100644 dist/libs/apexcharts/dist/locales/tr.json create mode 100644 dist/libs/apexcharts/dist/locales/ua.json create mode 100644 dist/libs/apexcharts/dist/locales/zh-cn.json create mode 100644 dist/libs/apexcharts/dist/locales/zh-tw.json create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.bundle.js create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.bundle.js.map create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.bundle.min.js.map create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.esm.js create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.esm.js.map create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.esm.min.js create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.esm.min.js.map create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.js create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.js.map create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.min.js create mode 100644 dist/libs/bootstrap/dist/js/bootstrap.min.js.map create mode 100644 dist/libs/countup.js/dist/countUp.d.ts create mode 100644 dist/libs/countup.js/dist/countUp.min.js create mode 100644 dist/libs/countup.js/dist/countUp.umd.js create mode 100644 dist/libs/countup.js/dist/countUp.withPolyfill.min.js create mode 100644 dist/libs/dropzone/dist/basic.css create mode 100644 dist/libs/dropzone/dist/basic.css.map create mode 100644 dist/libs/dropzone/dist/dropzone-min.js create mode 100644 dist/libs/dropzone/dist/dropzone-min.js.map create mode 100644 dist/libs/dropzone/dist/dropzone.css create mode 100644 dist/libs/dropzone/dist/dropzone.css.map create mode 100644 dist/libs/dropzone/dist/dropzone.js create mode 100644 dist/libs/dropzone/dist/dropzone.js.map create mode 100644 dist/libs/dropzone/dist/dropzone.mjs create mode 100644 dist/libs/dropzone/dist/dropzone.mjs.map create mode 100644 dist/libs/fslightbox/LICENSE create mode 100644 dist/libs/fslightbox/README.md create mode 100644 dist/libs/fslightbox/index.js create mode 100644 dist/libs/fslightbox/jest-setup.js create mode 100644 dist/libs/fslightbox/package.json create mode 100644 dist/libs/jsvectormap/dist/js/jsvectormap.js create mode 100644 dist/libs/list.js/dist/list.js create mode 100644 dist/libs/list.js/dist/list.js.map create mode 100644 dist/libs/list.js/dist/list.min.js.map create mode 100644 dist/libs/litepicker/dist/bundle.js create mode 100644 dist/libs/litepicker/dist/css/litepicker.css create mode 100644 dist/libs/litepicker/dist/css/plugins/keyboardnav.js.css create mode 100644 dist/libs/litepicker/dist/css/plugins/mobilefriendly.js.css create mode 100644 dist/libs/litepicker/dist/css/plugins/multiselect.js.css create mode 100644 dist/libs/litepicker/dist/css/plugins/ranges.js.css create mode 100644 dist/libs/litepicker/dist/js/main.js create mode 100644 dist/libs/litepicker/dist/litepicker.amd.js create mode 100644 dist/libs/litepicker/dist/litepicker.commonjs2.js create mode 100644 dist/libs/litepicker/dist/litepicker.umd.js create mode 100644 dist/libs/litepicker/dist/nocss/litepicker.amd.js create mode 100644 dist/libs/litepicker/dist/nocss/litepicker.commonjs2.js create mode 100644 dist/libs/litepicker/dist/nocss/litepicker.js create mode 100644 dist/libs/litepicker/dist/nocss/litepicker.umd.js create mode 100644 dist/libs/litepicker/dist/nocss/plugins/keyboardnav.js create mode 100644 dist/libs/litepicker/dist/nocss/plugins/mobilefriendly.js create mode 100644 dist/libs/litepicker/dist/nocss/plugins/multiselect.js create mode 100644 dist/libs/litepicker/dist/nocss/plugins/ranges.js create mode 100644 dist/libs/litepicker/dist/plugins/keyboardnav.js create mode 100644 dist/libs/litepicker/dist/plugins/mobilefriendly.js create mode 100644 dist/libs/litepicker/dist/plugins/multiselect.js create mode 100644 dist/libs/litepicker/dist/plugins/ranges.js create mode 100644 dist/libs/litepicker/dist/types/calendar.d.ts create mode 100644 dist/libs/litepicker/dist/types/core.d.ts create mode 100644 dist/libs/litepicker/dist/types/datetime.d.ts create mode 100644 dist/libs/litepicker/dist/types/index.d.ts create mode 100644 dist/libs/litepicker/dist/types/interfaces.d.ts create mode 100644 dist/libs/litepicker/dist/types/litepicker.d.ts create mode 100644 dist/libs/litepicker/dist/types/methods.d.ts create mode 100644 dist/libs/litepicker/dist/types/utils.d.ts create mode 100644 dist/libs/litepicker/dist/types/window.d.ts create mode 100644 dist/libs/nouislider/dist/nouislider.css create mode 100644 dist/libs/nouislider/dist/nouislider.d.ts create mode 100644 dist/libs/nouislider/dist/nouislider.js create mode 100644 dist/libs/nouislider/dist/nouislider.min.css create mode 100644 dist/libs/nouislider/dist/nouislider.min.mjs create mode 100644 dist/libs/nouislider/dist/nouislider.mjs create mode 100644 dist/libs/plyr/dist/plyr.css create mode 100644 dist/libs/plyr/dist/plyr.js create mode 100644 dist/libs/plyr/dist/plyr.min.js create mode 100644 dist/libs/plyr/dist/plyr.min.js.map create mode 100644 dist/libs/plyr/dist/plyr.min.mjs create mode 100644 dist/libs/plyr/dist/plyr.min.mjs.map create mode 100644 dist/libs/plyr/dist/plyr.mjs create mode 100644 dist/libs/plyr/dist/plyr.polyfilled.js create mode 100644 dist/libs/plyr/dist/plyr.polyfilled.min.js create mode 100644 dist/libs/plyr/dist/plyr.polyfilled.min.js.map create mode 100644 dist/libs/plyr/dist/plyr.polyfilled.min.mjs create mode 100644 dist/libs/plyr/dist/plyr.polyfilled.min.mjs.map create mode 100644 dist/libs/plyr/dist/plyr.polyfilled.mjs create mode 100644 dist/libs/plyr/dist/plyr.svg create mode 100644 dist/libs/tinymce/CHANGELOG.md create mode 100644 dist/libs/tinymce/README.md create mode 100644 dist/libs/tinymce/bower.json create mode 100644 dist/libs/tinymce/composer.json create mode 100644 dist/libs/tinymce/icons/default/icons.js create mode 100644 dist/libs/tinymce/icons/default/icons.min.js create mode 100644 dist/libs/tinymce/icons/default/index.js create mode 100644 dist/libs/tinymce/license.txt create mode 100644 dist/libs/tinymce/models/dom/index.js create mode 100644 dist/libs/tinymce/models/dom/model.js create mode 100644 dist/libs/tinymce/models/dom/model.min.js create mode 100644 dist/libs/tinymce/package.json create mode 100644 dist/libs/tinymce/plugins/advlist/index.js create mode 100644 dist/libs/tinymce/plugins/advlist/plugin.js create mode 100644 dist/libs/tinymce/plugins/advlist/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/anchor/index.js create mode 100644 dist/libs/tinymce/plugins/anchor/plugin.js create mode 100644 dist/libs/tinymce/plugins/anchor/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/autolink/index.js create mode 100644 dist/libs/tinymce/plugins/autolink/plugin.js create mode 100644 dist/libs/tinymce/plugins/autolink/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/autoresize/index.js create mode 100644 dist/libs/tinymce/plugins/autoresize/plugin.js create mode 100644 dist/libs/tinymce/plugins/autoresize/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/autosave/index.js create mode 100644 dist/libs/tinymce/plugins/autosave/plugin.js create mode 100644 dist/libs/tinymce/plugins/autosave/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/charmap/index.js create mode 100644 dist/libs/tinymce/plugins/charmap/plugin.js create mode 100644 dist/libs/tinymce/plugins/charmap/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/code/index.js create mode 100644 dist/libs/tinymce/plugins/code/plugin.js create mode 100644 dist/libs/tinymce/plugins/code/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/codesample/index.js create mode 100644 dist/libs/tinymce/plugins/codesample/plugin.js create mode 100644 dist/libs/tinymce/plugins/codesample/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/directionality/index.js create mode 100644 dist/libs/tinymce/plugins/directionality/plugin.js create mode 100644 dist/libs/tinymce/plugins/directionality/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/emoticons/index.js create mode 100644 dist/libs/tinymce/plugins/emoticons/js/emojiimages.js create mode 100644 dist/libs/tinymce/plugins/emoticons/js/emojiimages.min.js create mode 100644 dist/libs/tinymce/plugins/emoticons/js/emojis.js create mode 100644 dist/libs/tinymce/plugins/emoticons/js/emojis.min.js create mode 100644 dist/libs/tinymce/plugins/emoticons/plugin.js create mode 100644 dist/libs/tinymce/plugins/emoticons/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/fullscreen/index.js create mode 100644 dist/libs/tinymce/plugins/fullscreen/plugin.js create mode 100644 dist/libs/tinymce/plugins/fullscreen/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/help/index.js create mode 100644 dist/libs/tinymce/plugins/help/plugin.js create mode 100644 dist/libs/tinymce/plugins/help/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/image/index.js create mode 100644 dist/libs/tinymce/plugins/image/plugin.js create mode 100644 dist/libs/tinymce/plugins/image/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/importcss/index.js create mode 100644 dist/libs/tinymce/plugins/importcss/plugin.js create mode 100644 dist/libs/tinymce/plugins/importcss/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/insertdatetime/index.js create mode 100644 dist/libs/tinymce/plugins/insertdatetime/plugin.js create mode 100644 dist/libs/tinymce/plugins/insertdatetime/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/link/index.js create mode 100644 dist/libs/tinymce/plugins/link/plugin.js create mode 100644 dist/libs/tinymce/plugins/link/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/lists/index.js create mode 100644 dist/libs/tinymce/plugins/lists/plugin.js create mode 100644 dist/libs/tinymce/plugins/lists/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/media/index.js create mode 100644 dist/libs/tinymce/plugins/media/plugin.js create mode 100644 dist/libs/tinymce/plugins/media/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/nonbreaking/index.js create mode 100644 dist/libs/tinymce/plugins/nonbreaking/plugin.js create mode 100644 dist/libs/tinymce/plugins/nonbreaking/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/pagebreak/index.js create mode 100644 dist/libs/tinymce/plugins/pagebreak/plugin.js create mode 100644 dist/libs/tinymce/plugins/pagebreak/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/preview/index.js create mode 100644 dist/libs/tinymce/plugins/preview/plugin.js create mode 100644 dist/libs/tinymce/plugins/preview/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/quickbars/index.js create mode 100644 dist/libs/tinymce/plugins/quickbars/plugin.js create mode 100644 dist/libs/tinymce/plugins/quickbars/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/save/index.js create mode 100644 dist/libs/tinymce/plugins/save/plugin.js create mode 100644 dist/libs/tinymce/plugins/save/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/searchreplace/index.js create mode 100644 dist/libs/tinymce/plugins/searchreplace/plugin.js create mode 100644 dist/libs/tinymce/plugins/searchreplace/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/table/index.js create mode 100644 dist/libs/tinymce/plugins/table/plugin.js create mode 100644 dist/libs/tinymce/plugins/table/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/template/index.js create mode 100644 dist/libs/tinymce/plugins/template/plugin.js create mode 100644 dist/libs/tinymce/plugins/template/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/visualblocks/index.js create mode 100644 dist/libs/tinymce/plugins/visualblocks/plugin.js create mode 100644 dist/libs/tinymce/plugins/visualblocks/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/visualchars/index.js create mode 100644 dist/libs/tinymce/plugins/visualchars/plugin.js create mode 100644 dist/libs/tinymce/plugins/visualchars/plugin.min.js create mode 100644 dist/libs/tinymce/plugins/wordcount/index.js create mode 100644 dist/libs/tinymce/plugins/wordcount/plugin.js create mode 100644 dist/libs/tinymce/plugins/wordcount/plugin.min.js create mode 100644 dist/libs/tinymce/skins/content/dark/content.css create mode 100644 dist/libs/tinymce/skins/content/dark/content.min.css create mode 100644 dist/libs/tinymce/skins/content/default/content.css create mode 100644 dist/libs/tinymce/skins/content/default/content.min.css create mode 100644 dist/libs/tinymce/skins/content/document/content.css create mode 100644 dist/libs/tinymce/skins/content/document/content.min.css create mode 100644 dist/libs/tinymce/skins/content/tinymce-5-dark/content.css create mode 100644 dist/libs/tinymce/skins/content/tinymce-5-dark/content.min.css create mode 100644 dist/libs/tinymce/skins/content/tinymce-5/content.css create mode 100644 dist/libs/tinymce/skins/content/tinymce-5/content.min.css create mode 100644 dist/libs/tinymce/skins/content/writer/content.css create mode 100644 dist/libs/tinymce/skins/content/writer/content.min.css create mode 100644 dist/libs/tinymce/skins/ui/oxide-dark/content.css create mode 100644 dist/libs/tinymce/skins/ui/oxide-dark/content.inline.css create mode 100644 dist/libs/tinymce/skins/ui/oxide-dark/content.inline.min.css create mode 100644 dist/libs/tinymce/skins/ui/oxide-dark/content.min.css create mode 100644 dist/libs/tinymce/skins/ui/oxide-dark/skin.css create mode 100644 dist/libs/tinymce/skins/ui/oxide-dark/skin.min.css create mode 100644 dist/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.css create mode 100644 dist/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css create mode 100644 dist/libs/tinymce/skins/ui/oxide/content.css create mode 100644 dist/libs/tinymce/skins/ui/oxide/content.inline.css create mode 100644 dist/libs/tinymce/skins/ui/oxide/content.inline.min.css create mode 100644 dist/libs/tinymce/skins/ui/oxide/content.min.css create mode 100644 dist/libs/tinymce/skins/ui/oxide/skin.css create mode 100644 dist/libs/tinymce/skins/ui/oxide/skin.min.css create mode 100644 dist/libs/tinymce/skins/ui/oxide/skin.shadowdom.css create mode 100644 dist/libs/tinymce/skins/ui/oxide/skin.shadowdom.min.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5-dark/content.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5-dark/content.min.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5/content.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5/content.inline.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5/content.inline.min.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5/content.min.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5/skin.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5/skin.min.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.css create mode 100644 dist/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css create mode 100644 dist/libs/tinymce/themes/silver/index.js create mode 100644 dist/libs/tinymce/themes/silver/theme.js create mode 100644 dist/libs/tinymce/themes/silver/theme.min.js create mode 100644 dist/libs/tinymce/tinymce.d.ts create mode 100644 dist/libs/tinymce/tinymce.js create mode 100644 dist/libs/tinymce/tinymce.min.js create mode 100644 dist/libs/tom-select/dist/js/plugins/caret_position.js create mode 100644 dist/libs/tom-select/dist/js/plugins/caret_position.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/change_listener.js create mode 100644 dist/libs/tom-select/dist/js/plugins/change_listener.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/checkbox_options.js create mode 100644 dist/libs/tom-select/dist/js/plugins/checkbox_options.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/clear_button.js create mode 100644 dist/libs/tom-select/dist/js/plugins/clear_button.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/drag_drop.js create mode 100644 dist/libs/tom-select/dist/js/plugins/drag_drop.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/dropdown_header.js create mode 100644 dist/libs/tom-select/dist/js/plugins/dropdown_header.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/dropdown_input.js create mode 100644 dist/libs/tom-select/dist/js/plugins/dropdown_input.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/input_autogrow.js create mode 100644 dist/libs/tom-select/dist/js/plugins/input_autogrow.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/no_active_items.js create mode 100644 dist/libs/tom-select/dist/js/plugins/no_active_items.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/no_backspace_delete.js create mode 100644 dist/libs/tom-select/dist/js/plugins/no_backspace_delete.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/optgroup_columns.js create mode 100644 dist/libs/tom-select/dist/js/plugins/optgroup_columns.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/remove_button.js create mode 100644 dist/libs/tom-select/dist/js/plugins/remove_button.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/restore_on_backspace.js create mode 100644 dist/libs/tom-select/dist/js/plugins/restore_on_backspace.js.map create mode 100644 dist/libs/tom-select/dist/js/plugins/virtual_scroll.js create mode 100644 dist/libs/tom-select/dist/js/plugins/virtual_scroll.js.map create mode 100644 dist/libs/tom-select/dist/js/tom-select.base.js create mode 100644 dist/libs/tom-select/dist/js/tom-select.base.js.map create mode 100644 dist/libs/tom-select/dist/js/tom-select.base.min.js.map create mode 100644 dist/libs/tom-select/dist/js/tom-select.complete.js create mode 100644 dist/libs/tom-select/dist/js/tom-select.complete.js.map create mode 100644 dist/libs/tom-select/dist/js/tom-select.complete.min.js create mode 100644 dist/libs/tom-select/dist/js/tom-select.complete.min.js.map create mode 100644 dist/libs/tom-select/dist/js/tom-select.popular.js create mode 100644 dist/libs/tom-select/dist/js/tom-select.popular.js.map create mode 100644 dist/libs/tom-select/dist/js/tom-select.popular.min.js create mode 100644 dist/libs/tom-select/dist/js/tom-select.popular.min.js.map diff --git a/demo/accordion.html b/demo/accordion.html index f936eb792..fe74d10a7 100644 --- a/demo/accordion.html +++ b/demo/accordion.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -583,7 +610,7 @@
  • - + Sponsor
  • @@ -598,7 +625,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/activity.html b/demo/activity.html index 1da4bdbb1..e619bdc42 100644 --- a/demo/activity.html +++ b/demo/activity.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -785,7 +812,7 @@
  • - + Sponsor
  • @@ -800,7 +827,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/auth-lock.html b/demo/auth-lock.html index c73f92790..1e9c064c0 100644 --- a/demo/auth-lock.html +++ b/demo/auth-lock.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -534,7 +561,7 @@
  • - + Sponsor
  • @@ -549,7 +576,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/buttons.html b/demo/buttons.html index e1a5ecf02..e74934db0 100644 --- a/demo/buttons.html +++ b/demo/buttons.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -523,134 +550,134 @@

    Standard Buttons

    -
    -
    Normal
    -
    +
    +
    Normal
    + -
    + -
    + -
    + -
    + -
    + - - -
    -
    Active state
    -
    +
    +
    Active state
    + -
    + -
    + -
    + -
    + -
    + - - -
    -
    Disabled
    -
    +
    +
    Disabled
    + -
    + -
    + -
    + - @@ -663,134 +690,134 @@

    Use .btn-outline-* class for outline buttons.

    -
    -
    Normal
    -
    +
    +
    Normal
    + -
    + -
    + -
    + -
    + -
    + - - -
    -
    Active state
    -
    +
    +
    Active state
    + -
    + -
    + -
    + -
    + -
    + - - -
    -
    Disabled
    -
    +
    +
    Disabled
    + -
    + -
    + -
    + - @@ -803,134 +830,134 @@

    Use .btn-ghost-* class for ghost buttons.

    -
    -
    Normal
    -
    +
    +
    Normal
    + -
    + -
    + -
    + -
    + -
    + - - -
    -
    Active state
    -
    +
    +
    Active state
    + -
    + -
    + -
    + -
    + -
    + - - -
    -
    Disabled
    -
    +
    +
    Disabled
    + -
    + -
    + -
    + - @@ -943,48 +970,48 @@

    Use .btn-square class for square buttons.

    -
    -
    Normal
    -
    +
    +
    Normal
    + -
    + -
    + -
    + - @@ -997,48 +1024,48 @@

    Use .btn-pill class for pill buttons.

    -
    -
    Normal
    -
    +
    +
    Normal
    + -
    + -
    + -
    + - @@ -1049,63 +1076,63 @@

    Extra colors

    -
    -
    +
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    +
    Cyan @@ -1120,86 +1147,86 @@

    Icon buttons

    -
    -
    +
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    +
    -
    -
    +
    + -
    + -
    + -
    + -
    + -
    + -
    + -
    + - @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -685,7 +712,7 @@
  • - + Sponsor
  • @@ -700,7 +727,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/cards.html b/demo/cards.html index a4430d12f..6658f4721 100644 --- a/demo/cards.html +++ b/demo/cards.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -1249,7 +1276,7 @@
  • - + Sponsor
  • @@ -1264,7 +1291,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/carousel.html b/demo/carousel.html index df1f1427e..f519425f2 100644 --- a/demo/carousel.html +++ b/demo/carousel.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -831,7 +858,7 @@
  • - + Sponsor
  • @@ -846,7 +873,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/changelog.html b/demo/changelog.html index 033274c72..1c6d6d5dd 100644 --- a/demo/changelog.html +++ b/demo/changelog.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -837,6 +889,20 @@

    Changelog

    +
    +

    + 1.0.0-beta10 – + April 29, 2022 +

    +
      +
    • new ‘datatable’ component
    • +
    • update Tabler Icons to v1.67
    • +
    • fix: #1024 - fix Tom-select in dark mode
    • +
    • new carousel indicators: dots, vertical, thumbs (#1101)
    • +
    • replace !important modifier with more specific selectors (#1100)
    • +
    • new ‘FAQ’ page
    • +
    +

    1.0.0-beta9 – @@ -998,7 +1064,7 @@
  • - + Sponsor
  • @@ -1013,7 +1079,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/charts.html b/demo/charts.html index f1917d492..ddb77c3f4 100644 --- a/demo/charts.html +++ b/demo/charts.html @@ -1,7 +1,7 @@ - + Sponsor

    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -517,7 +544,7 @@
    -
    +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -829,7 +856,7 @@
  • - + Sponsor
  • @@ -844,7 +871,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/datagrid.html b/demo/datagrid.html new file mode 100644 index 000000000..846f169a2 --- /dev/null +++ b/demo/datagrid.html @@ -0,0 +1,677 @@ + + + + + + + + Data grid - Tabler - Premium and Open Source dashboard template with responsive and high quality UI. + + + + + + + + +
    + + +
    +
    + + +
    +
    +
    +
    +
    +

    Base info

    +
    +
    +
    +
    +
    Registrar
    +
    Third Party
    +
    +
    +
    Nameservers
    +
    Third Party
    +
    +
    +
    Port number
    +
    3306
    +
    +
    +
    Expiration date
    +
    +
    +
    +
    Creator
    +
    +
    + + Paweł Kuna +
    +
    +
    +
    +
    Age
    +
    15 days
    +
    +
    +
    Edge network
    +
    + + Active + +
    +
    +
    +
    Avatars list
    +
    +
    + + JL + + + + +3 +
    +
    +
    +
    +
    Checkbox
    +
    + +
    +
    +
    +
    Icon
    +
    + + + Checked +
    +
    +
    +
    Form control
    +
    + +
    +
    +
    +
    Longer description
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + + + + + \ No newline at end of file diff --git a/demo/datatables.html b/demo/datatables.html index 9c9e9352f..1ee3157fd 100644 --- a/demo/datatables.html +++ b/demo/datatables.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -518,9 +545,8 @@
    -
    -
    - +
    +
    @@ -542,7 +568,7 @@
    74
    -
    30%
    +
    30%
    @@ -562,7 +588,7 @@
    49
    -
    48%
    +
    48%
    @@ -582,7 +608,7 @@
    8
    -
    9%
    +
    9%
    @@ -602,7 +628,7 @@
    104
    -
    98%
    +
    98%
    @@ -622,7 +648,7 @@
    86
    -
    46%
    +
    46%
    @@ -642,7 +668,7 @@
    130
    -
    29%
    +
    29%
    @@ -662,7 +688,7 @@
    30
    -
    57%
    +
    57%
    @@ -682,7 +708,7 @@
    162
    -
    91%
    +
    91%
    @@ -702,7 +728,7 @@
    174
    -
    3%
    +
    3%
    @@ -722,7 +748,7 @@
    111
    -
    24%
    +
    24%
    @@ -742,7 +768,7 @@
    130
    -
    48%
    +
    48%
    @@ -762,7 +788,7 @@
    157
    -
    57%
    +
    57%
    @@ -782,7 +808,7 @@
    43
    -
    42%
    +
    42%
    @@ -802,7 +828,7 @@
    151
    -
    54%
    +
    54%
    @@ -822,7 +848,7 @@
    131
    -
    64%
    +
    64%
    @@ -835,7 +861,6 @@
    -
    @@ -852,7 +877,7 @@
  • - + Sponsor
  • @@ -867,7 +892,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • @@ -896,4 +921,4 @@ }) - + \ No newline at end of file diff --git a/demo/dist/css/demo.css b/demo/dist/css/demo.css index 2affc577a..c990bce49 100644 --- a/demo/dist/css/demo.css +++ b/demo/dist/css/demo.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/demo.min.css b/demo/dist/css/demo.min.css index 14566a3a8..dde328f07 100644 --- a/demo/dist/css/demo.min.css +++ b/demo/dist/css/demo.min.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/demo.rtl.css b/demo/dist/css/demo.rtl.css index 0f7f1a578..7478afde1 100644 --- a/demo/dist/css/demo.rtl.css +++ b/demo/dist/css/demo.rtl.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/demo.rtl.min.css b/demo/dist/css/demo.rtl.min.css index e5c3ef341..701be4f7c 100644 --- a/demo/dist/css/demo.rtl.min.css +++ b/demo/dist/css/demo.rtl.min.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/tabler-flags.css b/demo/dist/css/tabler-flags.css index d934b06a1..930eed75c 100644 --- a/demo/dist/css/tabler-flags.css +++ b/demo/dist/css/tabler-flags.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/tabler-flags.min.css b/demo/dist/css/tabler-flags.min.css index 8f823f00c..583bdb221 100644 --- a/demo/dist/css/tabler-flags.min.css +++ b/demo/dist/css/tabler-flags.min.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/tabler-flags.rtl.css b/demo/dist/css/tabler-flags.rtl.css index d934b06a1..930eed75c 100644 --- a/demo/dist/css/tabler-flags.rtl.css +++ b/demo/dist/css/tabler-flags.rtl.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/tabler-flags.rtl.min.css b/demo/dist/css/tabler-flags.rtl.min.css index 8f823f00c..583bdb221 100644 --- a/demo/dist/css/tabler-flags.rtl.min.css +++ b/demo/dist/css/tabler-flags.rtl.min.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/tabler-payments.css b/demo/dist/css/tabler-payments.css index c2949be3f..561d83d31 100644 --- a/demo/dist/css/tabler-payments.css +++ b/demo/dist/css/tabler-payments.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/tabler-payments.min.css b/demo/dist/css/tabler-payments.min.css index d88285f0c..83628355d 100644 --- a/demo/dist/css/tabler-payments.min.css +++ b/demo/dist/css/tabler-payments.min.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/tabler-payments.rtl.css b/demo/dist/css/tabler-payments.rtl.css index c2949be3f..561d83d31 100644 --- a/demo/dist/css/tabler-payments.rtl.css +++ b/demo/dist/css/tabler-payments.rtl.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/tabler-payments.rtl.min.css b/demo/dist/css/tabler-payments.rtl.min.css index d88285f0c..83628355d 100644 --- a/demo/dist/css/tabler-payments.rtl.min.css +++ b/demo/dist/css/tabler-payments.rtl.min.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/css/tabler-vendors.css b/demo/dist/css/tabler-vendors.css index 6e0fa125f..7b65f8567 100644 --- a/demo/dist/css/tabler-vendors.css +++ b/demo/dist/css/tabler-vendors.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna @@ -544,11 +544,19 @@ width: 100%; background: transparent; } -.plugin-dropdown_input.focus ~ .ts-dropdown .dropdown-input { +.plugin-dropdown_input.focus .ts-dropdown .dropdown-input { border-color: #90b5e2; outline: 0; box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); } +.plugin-dropdown_input .items-placeholder { + border: 0 none !important; + box-shadow: none !important; + width: 100%; +} +.plugin-dropdown_input.has-items .items-placeholder, .plugin-dropdown_input.dropdown-active .items-placeholder { + display: none !important; +} .ts-wrapper.plugin-input_autogrow.has-items .ts-control > input { min-width: 0; @@ -721,7 +729,7 @@ outline: none !important; } .has-items .ts-control > input { - margin: 0 4px !important; + margin: 0px 4px !important; } .ts-control.rtl { text-align: right; @@ -731,7 +739,7 @@ right: auto; } .ts-control.rtl .ts-control > input { - margin: 0 4px 0 -2px !important; + margin: 0px 4px 0px -2px !important; } .disabled .ts-control { opacity: 0.5; @@ -787,14 +795,10 @@ background: #ffffff; cursor: default; } -.ts-dropdown .create:hover, -.ts-dropdown .option:hover, .ts-dropdown .active { background-color: rgba(98, 105, 118, 0.04); color: inherit; } -.ts-dropdown .create:hover.create, -.ts-dropdown .option:hover.create, .ts-dropdown .active.create { color: inherit; } @@ -859,6 +863,9 @@ .ts-wrapper.form-control, .ts-wrapper.form-select { padding: 0 !important; + height: auto; + box-shadow: none; + display: flex; } .ts-dropdown, @@ -899,7 +906,6 @@ } .ts-control { - min-height: calc(1.4285714286em + 0.875rem + 2px); transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; display: flex; align-items: center; @@ -922,32 +928,75 @@ align-items: center; } -.is-invalid .ts-control, -.was-validated .invalid .ts-control { +.ts-wrapper.is-invalid, +.was-validated .invalid, +.was-validated :invalid + .ts-wrapper { border-color: #d63939; } -.focus .is-invalid .ts-control, -.focus .was-validated .invalid .ts-control { - border-color: #b62626; +.ts-wrapper.is-invalid:not(.single), +.was-validated .invalid:not(.single), +.was-validated :invalid + .ts-wrapper:not(.single) { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e"); + background-position: right calc(0.3571428572em + 0.21875rem) center; + background-size: calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); + background-repeat: no-repeat; +} +.ts-wrapper.is-invalid.single, +.was-validated .invalid.single, +.was-validated :invalid + .ts-wrapper.single { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); + background-repeat: no-repeat; +} +.ts-wrapper.is-invalid.focus .ts-control, +.was-validated .invalid.focus .ts-control, +.was-validated :invalid + .ts-wrapper.focus .ts-control { + border-color: #d63939; box-shadow: 0 0 0 0.25rem rgba(214, 57, 57, 0.25); } -.is-valid .ts-control { +.ts-wrapper.is-valid, +.was-validated .valid, +.was-validated :valid + .ts-wrapper { border-color: #2fb344; } -.focus .is-valid .ts-control { +.ts-wrapper.is-valid:not(.single), +.was-validated .valid:not(.single), +.was-validated :valid + .ts-wrapper:not(.single) { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e"); + background-position: right calc(0.3571428572em + 0.21875rem) center; + background-size: calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); + background-repeat: no-repeat; +} +.ts-wrapper.is-valid.single, +.was-validated .valid.single, +.was-validated :valid + .ts-wrapper.single { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); + background-repeat: no-repeat; +} +.ts-wrapper.is-valid.focus .ts-control, +.was-validated .valid.focus .ts-control, +.was-validated :valid + .ts-wrapper.focus .ts-control { border-color: #2fb344; box-shadow: 0 0 0 0.25rem rgba(47, 179, 68, 0.25); } -.input-group-sm > .ts-wrapper .ts-control, .ts-wrapper.form-select-sm .ts-control, .ts-wrapper.form-control-sm .ts-control { +.ts-wrapper { + min-height: calc(1.4285714286em + 0.875rem + 2px); + display: flex; +} +.input-group-sm > .ts-wrapper, .ts-wrapper.form-select-sm, .ts-wrapper.form-control-sm { min-height: calc(1.4285714286em + 0.25rem + 2px); +} +.input-group-sm > .ts-wrapper .ts-control, .ts-wrapper.form-select-sm .ts-control, .ts-wrapper.form-control-sm .ts-control { padding: 0 0.75rem; border-radius: 2px; font-size: 0.75rem; } .input-group-sm > .ts-wrapper.has-items .ts-control, .ts-wrapper.form-select-sm.has-items .ts-control, .ts-wrapper.form-control-sm.has-items .ts-control { - min-height: calc(1.4285714286em + 0.25rem + 2px) !important; font-size: 0.75rem; padding-bottom: 0; } @@ -961,33 +1010,32 @@ .ts-wrapper.multi .ts-control > div { border-radius: calc(4px - 1px); } -.input-group-lg > .ts-wrapper > .ts-control, .ts-wrapper.form-control-lg .ts-control, .ts-wrapper.form-select-lg .ts-control { +.input-group-lg > .ts-wrapper, .ts-wrapper.form-control-lg, .ts-wrapper.form-select-lg { min-height: calc(1.4285714286em + 1rem + 2px); +} +.input-group-lg > .ts-wrapper .ts-control, .ts-wrapper.form-control-lg .ts-control, .ts-wrapper.form-select-lg .ts-control { border-radius: 8px; font-size: 1.25rem; } -.ts-wrapper:not(.form-select) { +.ts-wrapper:not(.form-control):not(.form-select) { padding: 0; border: none; height: auto; box-shadow: none; background: none; } -.ts-wrapper:not(.form-select).single .ts-control { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); +.ts-wrapper:not(.form-control):not(.form-select).single .ts-control { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right 0.75rem center; background-size: 16px 12px; padding-right: 2rem; } -.ts-wrapper.form-select { - padding: 0; - height: auto; - box-shadow: none; -} -.ts-wrapper.form-select .ts-control, .ts-wrapper.form-select.single.input-active .ts-control { +.ts-wrapper.form-control .ts-control, .ts-wrapper.form-control.single.input-active .ts-control, +.ts-wrapper.form-select .ts-control, +.ts-wrapper.form-select.single.input-active .ts-control { border: none !important; background: transparent !important; } @@ -1190,4 +1238,70 @@ image, text, .jvm-zoomin, .jvm-zoomout { } .jvm-zoom-btn.jvm-zoomout { top: 2.5rem; +} + +.dropzone { + border: 1px dashed var(--tblr-border-color); + color: var(--tblr-muted); + padding: 1rem; +} +.dropzone.dz-drag-hover { + border: 1px dashed var(--tblr-primary); + background: rgba(var(--tblr-primary-rgb), 0.01); + color: var(--tblr-primary); +} +.dropzone.dz-drag-hover .dz-message { + opacity: 1; +} +.dropzone .dz-preview { + margin: 0.5rem; +} +.dropzone .dz-preview .dz-image { + border-radius: 4px; +} +.dropzone .dz-preview .dz-success-mark { + height: 54px; +} + +.fslightbox-container { + font-family: inherit !important; + background: rgba(30, 41, 59, 0.24) !important; + -webkit-backdrop-filter: blur(4px) !important; + backdrop-filter: blur(4px) !important; +} + +.fslightbox-slide-number-container { + color: inherit !important; +} + +.fslightbox-slash { + background: currentColor !important; +} + +body { + --plyr-color-main: #206bc4; +} + +.tox-tinymce { + border: 1px solid var(--tblr-border-color) !important; + border-radius: 4px !important; + font-family: var(--tblr-font-sans-serif) !important; +} + +.tox-toolbar__group { + padding: 0 0.5rem 0; +} + +.tox:not(.tox-tinymce-inline) .tox-editor-header { + border-bottom: 1px solid var(--tblr-border-color) !important; + box-shadow: none !important; + padding: 0 !important; +} + +.tox-tbtn { + margin: 0 !important; +} + +.tox-statusbar { + border-top: 1px solid var(--tblr-border-color) !important; } \ No newline at end of file diff --git a/demo/dist/css/tabler-vendors.min.css b/demo/dist/css/tabler-vendors.min.css index 2a132ac58..14b7c401c 100644 --- a/demo/dist/css/tabler-vendors.min.css +++ b/demo/dist/css/tabler-vendors.min.css @@ -1,9 +1,9 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) */ -.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box}.noUi-target{position:relative}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;right:0;height:100%;width:100%;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;transform-style:flat}.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{left:0;right:auto}.noUi-vertical .noUi-origin{top:-100%;width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;right:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;right:-6px;bottom:-17px}.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle{left:-17px;right:auto}.noUi-target{background:#fafafa;border-radius:4px;border:1px solid #d3d3d3;box-shadow:inset 0 1px 1px #f0f0f0,0 3px 6px -5px #bbb}.noUi-connects{border-radius:3px}.noUi-connect{background:#3fb8af}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #d9d9d9;border-radius:3px;background:#fff;cursor:default;box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ebebeb,0 3px 6px -3px #bbb}.noUi-active{box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ddd,0 3px 6px -3px #bbb}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#e8e7e6;left:14px;top:6px}.noUi-handle:after{left:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;left:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#b8b8b8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#ccc}.noUi-marker-sub{background:#aaa}.noUi-marker-large{background:#aaa}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.noUi-value-horizontal{transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.noUi-value-vertical{transform:translate(0,-50%);padding-left:25px}.noUi-rtl .noUi-value-vertical{transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #d9d9d9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{transform:translate(-50%,0);left:50%;bottom:120%}.noUi-vertical .noUi-tooltip{transform:translate(0,-50%);top:50%;right:120%}.noUi-horizontal .noUi-origin>.noUi-tooltip{transform:translate(50%,0);left:auto;bottom:10px}.noUi-vertical .noUi-origin>.noUi-tooltip{transform:translate(0,-18px);top:auto;right:28px}.noUi-target{border:0;box-shadow:none;background:0 0;border-radius:0;color:#206bc4}.noUi-horizontal{height:1.25rem;padding:.5rem 0}.noUi-base{background:var(--tblr-border-color-light);border-radius:1rem}.noUi-handle{width:1rem;height:1rem;border:2px solid var(--tblr-border-color-light);box-shadow:0 .1rem .25rem rgba(0,0,0,.1);border-radius:1rem;background:currentColor;outline:0}.noUi-handle:after,.noUi-handle:before{content:none}.noUi-horizontal .noUi-handle{width:1rem;height:1rem;top:-.5rem;right:-.5rem;margin:1px 1px 0 0}.noUi-handle.noUi-active,.noUi-handle:focus{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.noUi-connect{background:currentColor}.litepicker{--litepicker-month-weekday-color:#626976;--litepicker-button-prev-month-color:#626976;--litepicker-button-next-month-color:#626976;--litepicker-button-prev-month-color-hover:#206bc4;--litepicker-button-next-month-color-hover:#206bc4;--litepicker-day-color:var(--tblr-body-color);--litepicker-day-color-hover:#206bc4;--litepicker-is-end-color-bg:#206bc4;--litepicker-is-today-color:#206bc4;--litepicker-month-header-color:var(--tblr-body-color);--litepicker-container-months-color-bg:var(--tblr-card-bg);font:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.litepicker svg{fill:none!important}.litepicker .container__main{border:1px solid var(--tblr-border-color);border-radius:4px;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.litepicker .container__months .month-item-name,.litepicker .container__months .month-item-year{font-weight:500!important}.litepicker .container__months .button-next-month,.litepicker .container__months .button-prev-month{cursor:pointer!important}.litepicker .container__months .month-item-weekdays-row>div{padding:.5rem 0!important;font-size:.75rem}.litepicker .container__days .day-item{cursor:pointer!important;padding:.5rem 0!important;transition:color .3s,background-color .3s,border-color .3s}@media (prefers-reduced-motion:reduce){.litepicker .container__days .day-item{transition:none}}.datepicker-inline .litepicker .container__months{box-shadow:none}.ts-wrapper.single .ts-control,.ts-wrapper.single .ts-control input{cursor:pointer}.ts-wrapper.plugin-drag_drop.multi>.ts-control>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0 none!important;box-shadow:inset 0 0 12px 4px #fff}.ts-wrapper.plugin-drag_drop .ui-sortable-placeholder::after{content:"!";visibility:hidden}.ts-wrapper.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,.2)}.plugin-checkbox_options .option input{margin-right:.5rem}.plugin-clear_button .ts-control{padding-right:calc(1em + (3 * 5px))!important}.plugin-clear_button .clear-button{opacity:0;position:absolute;top:.4375rem;right:calc(.75rem - 5px);margin-right:0!important;background:0 0!important;transition:opacity .5s;cursor:pointer}.plugin-clear_button.single .clear-button{right:calc(.75rem - 5px + 2rem)}.plugin-clear_button.focus.has-items .clear-button,.plugin-clear_button:not(.disabled):hover.has-items .clear-button{opacity:1}.ts-wrapper .dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:4px 4px 0 0}.ts-wrapper .dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#1e293b;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.ts-wrapper .dropdown-header-close:hover{color:#000}.plugin-dropdown_input.focus.dropdown-active .ts-control{box-shadow:none;border:1px solid #d9dbde;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.plugin-dropdown_input .dropdown-input{border:1px solid #d0d0d0;border-width:0 0 1px 0;display:block;padding:.4375rem .75rem;box-shadow:none;width:100%;background:0 0}.plugin-dropdown_input.focus~.ts-dropdown .dropdown-input{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.ts-wrapper.plugin-input_autogrow.has-items .ts-control>input{min-width:0}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input{flex:none;min-width:4px}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-webkit-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-moz-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input:-ms-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-ms-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::placeholder{color:transparent}.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content{display:flex}.ts-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.ts-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.ts-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.ts-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.ts-wrapper.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0!important}.ts-wrapper.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:0 5px;border-left:1px solid #e6e7e9;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.ts-wrapper.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,.05)}.ts-wrapper.plugin-remove_button .item.active .remove{border-left-color:transparent}.ts-wrapper.plugin-remove_button.disabled .item .remove:hover{background:0 0}.ts-wrapper.plugin-remove_button.disabled .item .remove{border-left-color:#fff}.ts-wrapper.plugin-remove_button .remove-single{position:absolute;right:0;top:0;font-size:23px}.ts-wrapper{position:relative}.ts-control,.ts-control input,.ts-dropdown{color:#1e293b;font-family:inherit;font-size:inherit;line-height:1.4285714286;font-smoothing:inherit}.ts-control,.ts-wrapper.single.input-active .ts-control{background:#fff;cursor:text}.ts-control{border:1px solid #d9dbde;padding:.4375rem .75rem;width:100%;overflow:hidden;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:4px;display:flex;flex-wrap:wrap}.ts-wrapper.multi.has-items .ts-control{padding:calc(.4375rem - 1px - 0px) .75rem calc(.4375rem - 1px - 3px - 0px)}.full .ts-control{background-color:#fff}.disabled .ts-control,.disabled .ts-control *{cursor:default!important}.focus .ts-control{box-shadow:none}.ts-control>*{vertical-align:baseline;display:inline-block}.ts-wrapper.multi .ts-control>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#1e293b;border:0 solid #e6e7e9}.ts-wrapper.multi .ts-control>div.active{background:#206bc4;color:#fff;border:0 solid transparent}.ts-wrapper.multi.disabled .ts-control>div,.ts-wrapper.multi.disabled .ts-control>div.active{color:#797979;background:#fff;border:0 solid #fff}.ts-control>input{flex:1 1 auto;min-width:7rem;display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0 none!important;background:0 0!important;line-height:inherit!important;-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;box-shadow:none!important}.ts-control>input::-ms-clear{display:none}.ts-control>input:focus{outline:0!important}.has-items .ts-control>input{margin:0 4px!important}.ts-control.rtl{text-align:right}.ts-control.rtl.single .ts-control:after{left:calc(.75rem + 5px);right:auto}.ts-control.rtl .ts-control>input{margin:0 4px 0 -2px!important}.disabled .ts-control{opacity:.5;background-color:#fafbfc}.input-hidden .ts-control>input{opacity:0;position:absolute;left:-10000px}.ts-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:.25rem 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:0 0 4px 4px}.ts-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.ts-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);border-radius:1px}.ts-dropdown .create,.ts-dropdown .no-results,.ts-dropdown .optgroup-header,.ts-dropdown .option{padding:3px .75rem}.ts-dropdown .option,.ts-dropdown [data-disabled],.ts-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.ts-dropdown [data-selectable].option{opacity:1;cursor:pointer}.ts-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.ts-dropdown .optgroup-header{color:#475569;background:#fff;cursor:default}.ts-dropdown .active,.ts-dropdown .create:hover,.ts-dropdown .option:hover{background-color:rgba(98,105,118,.04);color:inherit}.ts-dropdown .active.create,.ts-dropdown .create:hover.create,.ts-dropdown .option:hover.create{color:inherit}.ts-dropdown .create{color:rgba(30,41,59,.5)}.ts-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.ts-dropdown .spinner:after{content:" ";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;-webkit-animation:lds-dual-ring 1.2s linear infinite;animation:lds-dual-ring 1.2s linear infinite}@-webkit-keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.ts-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch;scroll-behavior:smooth}.ts-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.ts-wrapper.form-control,.ts-wrapper.form-select{padding:0!important}.ts-dropdown,.ts-dropdown.form-control,.ts-dropdown.form-select{height:auto;padding:0;z-index:1000;background:#fff;border:1px solid rgba(98,105,118,.16);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175)}.ts-dropdown .optgroup-header{font-size:.765625rem;line-height:1.4285714286}.ts-dropdown .optgroup:first-child:before{display:none}.ts-dropdown .optgroup:before{content:" ";display:block;height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(98,105,118,.16);margin-left:-.75rem;margin-right:-.75rem}.ts-dropdown .create{padding-left:.75rem}.ts-dropdown-content{padding:5px 0}.ts-control{min-height:calc(1.4285714286em + .875rem + 2px);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:flex;align-items:center}@media (prefers-reduced-motion:reduce){.ts-control{transition:none}}.ts-control.dropdown -active{border-radius:4px}.focus .ts-control{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.ts-control .item{display:flex;align-items:center}.is-invalid .ts-control,.was-validated .invalid .ts-control{border-color:#d63939}.focus .is-invalid .ts-control,.focus .was-validated .invalid .ts-control{border-color:#b62626;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.is-valid .ts-control{border-color:#2fb344}.focus .is-valid .ts-control{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.input-group-sm>.ts-wrapper .ts-control,.ts-wrapper.form-control-sm .ts-control,.ts-wrapper.form-select-sm .ts-control{min-height:calc(1.4285714286em + .25rem + 2px);padding:0 .75rem;border-radius:2px;font-size:.75rem}.input-group-sm>.ts-wrapper.has-items .ts-control,.ts-wrapper.form-control-sm.has-items .ts-control,.ts-wrapper.form-select-sm.has-items .ts-control{min-height:calc(1.4285714286em + .25rem + 2px)!important;font-size:.75rem;padding-bottom:0}.input-group-sm>.ts-wrapper.multi.has-items .ts-control,.ts-wrapper.form-control-sm.multi.has-items .ts-control,.ts-wrapper.form-select-sm.multi.has-items .ts-control{padding-top:calc((calc(1.4285714286em + .25rem + 2px) - (1.4285714286 * .75rem) - 4px)/ 2)!important}.ts-wrapper.multi.has-items .ts-control{padding-left:calc(.75rem - 5px);padding-right:calc(.75rem - 5px)}.ts-wrapper.multi .ts-control>div{border-radius:calc(4px - 1px)}.input-group-lg>.ts-wrapper>.ts-control,.ts-wrapper.form-control-lg .ts-control,.ts-wrapper.form-select-lg .ts-control{min-height:calc(1.4285714286em + 1rem + 2px);border-radius:8px;font-size:1.25rem}.ts-wrapper:not(.form-select){padding:0;border:none;height:auto;box-shadow:none;background:0 0}.ts-wrapper:not(.form-select).single .ts-control{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;padding-right:2rem}.ts-wrapper.form-select{padding:0;height:auto;box-shadow:none}.ts-wrapper.form-select .ts-control,.ts-wrapper.form-select.single.input-active .ts-control{border:none!important;background:0 0!important}.input-group>.ts-wrapper{flex-grow:1}.input-group>.ts-wrapper:not(:nth-child(2))>.ts-control{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.ts-wrapper:not(:last-child)>.ts-control{border-top-right-radius:0;border-bottom-right-radius:0}.ts-input{color:inherit}.ts-control{color:inherit}.ts-control .dropdown-menu{width:100%;height:auto}svg{touch-action:none}.jvm-zoomin,.jvm-zoomout,image,text{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jvm-container{touch-action:none;position:relative;overflow:hidden;height:100%;width:100%}.jvm-tooltip{border-radius:3px;background-color:#5c5cff;font-family:sans-serif,Verdana;font-size:smaller;box-shadow:1px 2px 12px rgba(0,0,0,.2);padding:3px 5px;white-space:nowrap;position:absolute;display:none;color:#fff}.jvm-tooltip.active{display:block}.jvm-zoom-btn{border-radius:3px;background-color:#292929;padding:3px;box-sizing:border-box;position:absolute;line-height:10px;cursor:pointer;color:#fff;height:15px;width:15px;left:10px}.jvm-zoom-btn.jvm-zoomout{top:30px}.jvm-zoom-btn.jvm-zoomin{top:10px}.jvm-series-container{right:15px;position:absolute}.jvm-series-container.jvm-series-h{bottom:15px}.jvm-series-container.jvm-series-v{top:15px}.jvm-series-container .jvm-legend{background-color:#fff;border:1px solid #e5e7eb;margin-left:.75rem;border-radius:.25rem;border-color:#e5e7eb;padding:.6rem;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);float:left}.jvm-series-container .jvm-legend .jvm-legend-title{line-height:1;border-bottom:1px solid #e5e7eb;padding-bottom:.5rem;margin-bottom:.575rem;text-align:left}.jvm-series-container .jvm-legend .jvm-legend-inner{overflow:hidden}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick{overflow:hidden;min-width:40px}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick:not(:first-child){margin-top:.575rem}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-sample{border-radius:4px;margin-right:.65rem;height:16px;width:16px;float:left}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-text{font-size:12px;text-align:center;float:left}.jvm-line[animation=true]{-webkit-animation:jvm-line-animation 10s linear forwards infinite;animation:jvm-line-animation 10s linear forwards infinite}@-webkit-keyframes jvm-line-animation{from{stroke-dashoffset:250}}@keyframes jvm-line-animation{from{stroke-dashoffset:250}}.jvm-tooltip{background:#1e293b;font-family:inherit;font-size:.75rem;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.jvm-series-container .jvm-legend .jvm-legend-title{border-bottom:0;font-weight:500}.jvm-series-container .jvm-legend{background-color:var(--tblr-card-bg);border:1px solid var(--tblr-border-color);min-width:8rem}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick{display:flex;align-items:center}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-sample{width:.75rem;height:.75rem}.jvm-zoom-btn{border:1px solid var(--tblr-border-color);background:var(--tblr-card-bg);color:var(--tblr-body-color);padding:0;display:flex;align-items:center;justify-content:center;line-height:1;width:1.5rem;height:1.5rem;font-size:1rem;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.jvm-zoom-btn.jvm-zoomout{top:2.5rem} \ No newline at end of file +.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box}.noUi-target{position:relative}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;right:0;height:100%;width:100%;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;transform-style:flat}.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{left:0;right:auto}.noUi-vertical .noUi-origin{top:-100%;width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;right:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;right:-6px;bottom:-17px}.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle{left:-17px;right:auto}.noUi-target{background:#fafafa;border-radius:4px;border:1px solid #d3d3d3;box-shadow:inset 0 1px 1px #f0f0f0,0 3px 6px -5px #bbb}.noUi-connects{border-radius:3px}.noUi-connect{background:#3fb8af}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #d9d9d9;border-radius:3px;background:#fff;cursor:default;box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ebebeb,0 3px 6px -3px #bbb}.noUi-active{box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ddd,0 3px 6px -3px #bbb}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#e8e7e6;left:14px;top:6px}.noUi-handle:after{left:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;left:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#b8b8b8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#ccc}.noUi-marker-sub{background:#aaa}.noUi-marker-large{background:#aaa}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.noUi-value-horizontal{transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.noUi-value-vertical{transform:translate(0,-50%);padding-left:25px}.noUi-rtl .noUi-value-vertical{transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #d9d9d9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{transform:translate(-50%,0);left:50%;bottom:120%}.noUi-vertical .noUi-tooltip{transform:translate(0,-50%);top:50%;right:120%}.noUi-horizontal .noUi-origin>.noUi-tooltip{transform:translate(50%,0);left:auto;bottom:10px}.noUi-vertical .noUi-origin>.noUi-tooltip{transform:translate(0,-18px);top:auto;right:28px}.noUi-target{border:0;box-shadow:none;background:0 0;border-radius:0;color:#206bc4}.noUi-horizontal{height:1.25rem;padding:.5rem 0}.noUi-base{background:var(--tblr-border-color-light);border-radius:1rem}.noUi-handle{width:1rem;height:1rem;border:2px solid var(--tblr-border-color-light);box-shadow:0 .1rem .25rem rgba(0,0,0,.1);border-radius:1rem;background:currentColor;outline:0}.noUi-handle:after,.noUi-handle:before{content:none}.noUi-horizontal .noUi-handle{width:1rem;height:1rem;top:-.5rem;right:-.5rem;margin:1px 1px 0 0}.noUi-handle.noUi-active,.noUi-handle:focus{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.noUi-connect{background:currentColor}.litepicker{--litepicker-month-weekday-color:#626976;--litepicker-button-prev-month-color:#626976;--litepicker-button-next-month-color:#626976;--litepicker-button-prev-month-color-hover:#206bc4;--litepicker-button-next-month-color-hover:#206bc4;--litepicker-day-color:var(--tblr-body-color);--litepicker-day-color-hover:#206bc4;--litepicker-is-end-color-bg:#206bc4;--litepicker-is-today-color:#206bc4;--litepicker-month-header-color:var(--tblr-body-color);--litepicker-container-months-color-bg:var(--tblr-card-bg);font:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.litepicker svg{fill:none!important}.litepicker .container__main{border:1px solid var(--tblr-border-color);border-radius:4px;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.litepicker .container__months .month-item-name,.litepicker .container__months .month-item-year{font-weight:500!important}.litepicker .container__months .button-next-month,.litepicker .container__months .button-prev-month{cursor:pointer!important}.litepicker .container__months .month-item-weekdays-row>div{padding:.5rem 0!important;font-size:.75rem}.litepicker .container__days .day-item{cursor:pointer!important;padding:.5rem 0!important;transition:color .3s,background-color .3s,border-color .3s}@media (prefers-reduced-motion:reduce){.litepicker .container__days .day-item{transition:none}}.datepicker-inline .litepicker .container__months{box-shadow:none}.ts-wrapper.single .ts-control,.ts-wrapper.single .ts-control input{cursor:pointer}.ts-wrapper.plugin-drag_drop.multi>.ts-control>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0 none!important;box-shadow:inset 0 0 12px 4px #fff}.ts-wrapper.plugin-drag_drop .ui-sortable-placeholder::after{content:"!";visibility:hidden}.ts-wrapper.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,.2)}.plugin-checkbox_options .option input{margin-right:.5rem}.plugin-clear_button .ts-control{padding-right:calc(1em + (3 * 5px))!important}.plugin-clear_button .clear-button{opacity:0;position:absolute;top:.4375rem;right:calc(.75rem - 5px);margin-right:0!important;background:0 0!important;transition:opacity .5s;cursor:pointer}.plugin-clear_button.single .clear-button{right:calc(.75rem - 5px + 2rem)}.plugin-clear_button.focus.has-items .clear-button,.plugin-clear_button:not(.disabled):hover.has-items .clear-button{opacity:1}.ts-wrapper .dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:4px 4px 0 0}.ts-wrapper .dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#1e293b;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.ts-wrapper .dropdown-header-close:hover{color:#000}.plugin-dropdown_input.focus.dropdown-active .ts-control{box-shadow:none;border:1px solid #d9dbde;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.plugin-dropdown_input .dropdown-input{border:1px solid #d0d0d0;border-width:0 0 1px 0;display:block;padding:.4375rem .75rem;box-shadow:none;width:100%;background:0 0}.plugin-dropdown_input.focus .ts-dropdown .dropdown-input{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.plugin-dropdown_input .items-placeholder{border:0 none!important;box-shadow:none!important;width:100%}.plugin-dropdown_input.dropdown-active .items-placeholder,.plugin-dropdown_input.has-items .items-placeholder{display:none!important}.ts-wrapper.plugin-input_autogrow.has-items .ts-control>input{min-width:0}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input{flex:none;min-width:4px}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-webkit-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-moz-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input:-ms-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-ms-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::placeholder{color:transparent}.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content{display:flex}.ts-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.ts-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.ts-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.ts-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.ts-wrapper.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0!important}.ts-wrapper.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:0 5px;border-left:1px solid #e6e7e9;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.ts-wrapper.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,.05)}.ts-wrapper.plugin-remove_button .item.active .remove{border-left-color:transparent}.ts-wrapper.plugin-remove_button.disabled .item .remove:hover{background:0 0}.ts-wrapper.plugin-remove_button.disabled .item .remove{border-left-color:#fff}.ts-wrapper.plugin-remove_button .remove-single{position:absolute;right:0;top:0;font-size:23px}.ts-wrapper{position:relative}.ts-control,.ts-control input,.ts-dropdown{color:#1e293b;font-family:inherit;font-size:inherit;line-height:1.4285714286;font-smoothing:inherit}.ts-control,.ts-wrapper.single.input-active .ts-control{background:#fff;cursor:text}.ts-control{border:1px solid #d9dbde;padding:.4375rem .75rem;width:100%;overflow:hidden;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:4px;display:flex;flex-wrap:wrap}.ts-wrapper.multi.has-items .ts-control{padding:calc(.4375rem - 1px - 0px) .75rem calc(.4375rem - 1px - 3px - 0px)}.full .ts-control{background-color:#fff}.disabled .ts-control,.disabled .ts-control *{cursor:default!important}.focus .ts-control{box-shadow:none}.ts-control>*{vertical-align:baseline;display:inline-block}.ts-wrapper.multi .ts-control>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#1e293b;border:0 solid #e6e7e9}.ts-wrapper.multi .ts-control>div.active{background:#206bc4;color:#fff;border:0 solid transparent}.ts-wrapper.multi.disabled .ts-control>div,.ts-wrapper.multi.disabled .ts-control>div.active{color:#797979;background:#fff;border:0 solid #fff}.ts-control>input{flex:1 1 auto;min-width:7rem;display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0 none!important;background:0 0!important;line-height:inherit!important;-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;box-shadow:none!important}.ts-control>input::-ms-clear{display:none}.ts-control>input:focus{outline:0!important}.has-items .ts-control>input{margin:0 4px!important}.ts-control.rtl{text-align:right}.ts-control.rtl.single .ts-control:after{left:calc(.75rem + 5px);right:auto}.ts-control.rtl .ts-control>input{margin:0 4px 0 -2px!important}.disabled .ts-control{opacity:.5;background-color:#fafbfc}.input-hidden .ts-control>input{opacity:0;position:absolute;left:-10000px}.ts-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:.25rem 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:0 0 4px 4px}.ts-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.ts-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);border-radius:1px}.ts-dropdown .create,.ts-dropdown .no-results,.ts-dropdown .optgroup-header,.ts-dropdown .option{padding:3px .75rem}.ts-dropdown .option,.ts-dropdown [data-disabled],.ts-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.ts-dropdown [data-selectable].option{opacity:1;cursor:pointer}.ts-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.ts-dropdown .optgroup-header{color:#475569;background:#fff;cursor:default}.ts-dropdown .active{background-color:rgba(98,105,118,.04);color:inherit}.ts-dropdown .active.create{color:inherit}.ts-dropdown .create{color:rgba(30,41,59,.5)}.ts-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.ts-dropdown .spinner:after{content:" ";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;-webkit-animation:lds-dual-ring 1.2s linear infinite;animation:lds-dual-ring 1.2s linear infinite}@-webkit-keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.ts-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch;scroll-behavior:smooth}.ts-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.ts-wrapper.form-control,.ts-wrapper.form-select{padding:0!important;height:auto;box-shadow:none;display:flex}.ts-dropdown,.ts-dropdown.form-control,.ts-dropdown.form-select{height:auto;padding:0;z-index:1000;background:#fff;border:1px solid rgba(98,105,118,.16);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175)}.ts-dropdown .optgroup-header{font-size:.765625rem;line-height:1.4285714286}.ts-dropdown .optgroup:first-child:before{display:none}.ts-dropdown .optgroup:before{content:" ";display:block;height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(98,105,118,.16);margin-left:-.75rem;margin-right:-.75rem}.ts-dropdown .create{padding-left:.75rem}.ts-dropdown-content{padding:5px 0}.ts-control{transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:flex;align-items:center}@media (prefers-reduced-motion:reduce){.ts-control{transition:none}}.ts-control.dropdown -active{border-radius:4px}.focus .ts-control{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.ts-control .item{display:flex;align-items:center}.ts-wrapper.is-invalid,.was-validated .invalid,.was-validated :invalid+.ts-wrapper{border-color:#d63939}.ts-wrapper.is-invalid:not(.single),.was-validated .invalid:not(.single),.was-validated :invalid+.ts-wrapper:not(.single){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:right calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem);background-repeat:no-repeat}.ts-wrapper.is-invalid.single,.was-validated .invalid.single,.was-validated :invalid+.ts-wrapper.single{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem);background-repeat:no-repeat}.ts-wrapper.is-invalid.focus .ts-control,.was-validated .invalid.focus .ts-control,.was-validated :invalid+.ts-wrapper.focus .ts-control{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.ts-wrapper.is-valid,.was-validated .valid,.was-validated :valid+.ts-wrapper{border-color:#2fb344}.ts-wrapper.is-valid:not(.single),.was-validated .valid:not(.single),.was-validated :valid+.ts-wrapper:not(.single){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:right calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem);background-repeat:no-repeat}.ts-wrapper.is-valid.single,.was-validated .valid.single,.was-validated :valid+.ts-wrapper.single{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem);background-repeat:no-repeat}.ts-wrapper.is-valid.focus .ts-control,.was-validated .valid.focus .ts-control,.was-validated :valid+.ts-wrapper.focus .ts-control{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.ts-wrapper{min-height:calc(1.4285714286em + .875rem + 2px);display:flex}.input-group-sm>.ts-wrapper,.ts-wrapper.form-control-sm,.ts-wrapper.form-select-sm{min-height:calc(1.4285714286em + .25rem + 2px)}.input-group-sm>.ts-wrapper .ts-control,.ts-wrapper.form-control-sm .ts-control,.ts-wrapper.form-select-sm .ts-control{padding:0 .75rem;border-radius:2px;font-size:.75rem}.input-group-sm>.ts-wrapper.has-items .ts-control,.ts-wrapper.form-control-sm.has-items .ts-control,.ts-wrapper.form-select-sm.has-items .ts-control{font-size:.75rem;padding-bottom:0}.input-group-sm>.ts-wrapper.multi.has-items .ts-control,.ts-wrapper.form-control-sm.multi.has-items .ts-control,.ts-wrapper.form-select-sm.multi.has-items .ts-control{padding-top:calc((calc(1.4285714286em + .25rem + 2px) - (1.4285714286 * .75rem) - 4px)/ 2)!important}.ts-wrapper.multi.has-items .ts-control{padding-left:calc(.75rem - 5px);padding-right:calc(.75rem - 5px)}.ts-wrapper.multi .ts-control>div{border-radius:calc(4px - 1px)}.input-group-lg>.ts-wrapper,.ts-wrapper.form-control-lg,.ts-wrapper.form-select-lg{min-height:calc(1.4285714286em + 1rem + 2px)}.input-group-lg>.ts-wrapper .ts-control,.ts-wrapper.form-control-lg .ts-control,.ts-wrapper.form-select-lg .ts-control{border-radius:8px;font-size:1.25rem}.ts-wrapper:not(.form-control):not(.form-select){padding:0;border:none;height:auto;box-shadow:none;background:0 0}.ts-wrapper:not(.form-control):not(.form-select).single .ts-control{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;padding-right:2rem}.ts-wrapper.form-control .ts-control,.ts-wrapper.form-control.single.input-active .ts-control,.ts-wrapper.form-select .ts-control,.ts-wrapper.form-select.single.input-active .ts-control{border:none!important;background:0 0!important}.input-group>.ts-wrapper{flex-grow:1}.input-group>.ts-wrapper:not(:nth-child(2))>.ts-control{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.ts-wrapper:not(:last-child)>.ts-control{border-top-right-radius:0;border-bottom-right-radius:0}.ts-input{color:inherit}.ts-control{color:inherit}.ts-control .dropdown-menu{width:100%;height:auto}svg{touch-action:none}.jvm-zoomin,.jvm-zoomout,image,text{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jvm-container{touch-action:none;position:relative;overflow:hidden;height:100%;width:100%}.jvm-tooltip{border-radius:3px;background-color:#5c5cff;font-family:sans-serif,Verdana;font-size:smaller;box-shadow:1px 2px 12px rgba(0,0,0,.2);padding:3px 5px;white-space:nowrap;position:absolute;display:none;color:#fff}.jvm-tooltip.active{display:block}.jvm-zoom-btn{border-radius:3px;background-color:#292929;padding:3px;box-sizing:border-box;position:absolute;line-height:10px;cursor:pointer;color:#fff;height:15px;width:15px;left:10px}.jvm-zoom-btn.jvm-zoomout{top:30px}.jvm-zoom-btn.jvm-zoomin{top:10px}.jvm-series-container{right:15px;position:absolute}.jvm-series-container.jvm-series-h{bottom:15px}.jvm-series-container.jvm-series-v{top:15px}.jvm-series-container .jvm-legend{background-color:#fff;border:1px solid #e5e7eb;margin-left:.75rem;border-radius:.25rem;border-color:#e5e7eb;padding:.6rem;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);float:left}.jvm-series-container .jvm-legend .jvm-legend-title{line-height:1;border-bottom:1px solid #e5e7eb;padding-bottom:.5rem;margin-bottom:.575rem;text-align:left}.jvm-series-container .jvm-legend .jvm-legend-inner{overflow:hidden}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick{overflow:hidden;min-width:40px}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick:not(:first-child){margin-top:.575rem}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-sample{border-radius:4px;margin-right:.65rem;height:16px;width:16px;float:left}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-text{font-size:12px;text-align:center;float:left}.jvm-line[animation=true]{-webkit-animation:jvm-line-animation 10s linear forwards infinite;animation:jvm-line-animation 10s linear forwards infinite}@-webkit-keyframes jvm-line-animation{from{stroke-dashoffset:250}}@keyframes jvm-line-animation{from{stroke-dashoffset:250}}.jvm-tooltip{background:#1e293b;font-family:inherit;font-size:.75rem;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.jvm-series-container .jvm-legend .jvm-legend-title{border-bottom:0;font-weight:500}.jvm-series-container .jvm-legend{background-color:var(--tblr-card-bg);border:1px solid var(--tblr-border-color);min-width:8rem}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick{display:flex;align-items:center}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-sample{width:.75rem;height:.75rem}.jvm-zoom-btn{border:1px solid var(--tblr-border-color);background:var(--tblr-card-bg);color:var(--tblr-body-color);padding:0;display:flex;align-items:center;justify-content:center;line-height:1;width:1.5rem;height:1.5rem;font-size:1rem;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.jvm-zoom-btn.jvm-zoomout{top:2.5rem}.dropzone{border:1px dashed var(--tblr-border-color);color:var(--tblr-muted);padding:1rem}.dropzone.dz-drag-hover{border:1px dashed var(--tblr-primary);background:rgba(var(--tblr-primary-rgb),.01);color:var(--tblr-primary)}.dropzone.dz-drag-hover .dz-message{opacity:1}.dropzone .dz-preview{margin:.5rem}.dropzone .dz-preview .dz-image{border-radius:4px}.dropzone .dz-preview .dz-success-mark{height:54px}.fslightbox-container{font-family:inherit!important;background:rgba(30,41,59,.24)!important;-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}.fslightbox-slide-number-container{color:inherit!important}.fslightbox-slash{background:currentColor!important}body{--plyr-color-main:#206bc4}.tox-tinymce{border:1px solid var(--tblr-border-color)!important;border-radius:4px!important;font-family:var(--tblr-font-sans-serif)!important}.tox-toolbar__group{padding:0 .5rem 0}.tox:not(.tox-tinymce-inline) .tox-editor-header{border-bottom:1px solid var(--tblr-border-color)!important;box-shadow:none!important;padding:0!important}.tox-tbtn{margin:0!important}.tox-statusbar{border-top:1px solid var(--tblr-border-color)!important} \ No newline at end of file diff --git a/demo/dist/css/tabler-vendors.rtl.css b/demo/dist/css/tabler-vendors.rtl.css index c9b1217d1..3568dd78a 100644 --- a/demo/dist/css/tabler-vendors.rtl.css +++ b/demo/dist/css/tabler-vendors.rtl.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna @@ -544,11 +544,19 @@ width: 100%; background: transparent; } -.plugin-dropdown_input.focus ~ .ts-dropdown .dropdown-input { +.plugin-dropdown_input.focus .ts-dropdown .dropdown-input { border-color: #90b5e2; outline: 0; box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); } +.plugin-dropdown_input .items-placeholder { + border: 0 none !important; + box-shadow: none !important; + width: 100%; +} +.plugin-dropdown_input.has-items .items-placeholder, .plugin-dropdown_input.dropdown-active .items-placeholder { + display: none !important; +} .ts-wrapper.plugin-input_autogrow.has-items .ts-control > input { min-width: 0; @@ -721,7 +729,7 @@ outline: none !important; } .has-items .ts-control > input { - margin: 0 4px !important; + margin: 0px 4px !important; } .ts-control.rtl { text-align: left; @@ -731,7 +739,7 @@ left: auto; } .ts-control.rtl .ts-control > input { - margin: 0 -2px 0 4px !important; + margin: 0px -2px 0px 4px !important; } .disabled .ts-control { opacity: 0.5; @@ -787,14 +795,10 @@ background: #ffffff; cursor: default; } -.ts-dropdown .create:hover, -.ts-dropdown .option:hover, .ts-dropdown .active { background-color: rgba(98, 105, 118, 0.04); color: inherit; } -.ts-dropdown .create:hover.create, -.ts-dropdown .option:hover.create, .ts-dropdown .active.create { color: inherit; } @@ -859,6 +863,9 @@ .ts-wrapper.form-control, .ts-wrapper.form-select { padding: 0 !important; + height: auto; + box-shadow: none; + display: flex; } .ts-dropdown, @@ -899,7 +906,6 @@ } .ts-control { - min-height: calc(1.4285714286em + 0.875rem + 2px); transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; display: flex; align-items: center; @@ -922,32 +928,75 @@ align-items: center; } -.is-invalid .ts-control, -.was-validated .invalid .ts-control { +.ts-wrapper.is-invalid, +.was-validated .invalid, +.was-validated :invalid + .ts-wrapper { border-color: #d63939; } -.focus .is-invalid .ts-control, -.focus .was-validated .invalid .ts-control { - border-color: #b62626; +.ts-wrapper.is-invalid:not(.single), +.was-validated .invalid:not(.single), +.was-validated :invalid + .ts-wrapper:not(.single) { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e"); + background-position: left calc(0.3571428572em + 0.21875rem) center; + background-size: calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); + background-repeat: no-repeat; +} +.ts-wrapper.is-invalid.single, +.was-validated .invalid.single, +.was-validated :invalid + .ts-wrapper.single { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e"); + background-position: left 0.75rem center, center left 2.25rem; + background-size: 16px 12px, calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); + background-repeat: no-repeat; +} +.ts-wrapper.is-invalid.focus .ts-control, +.was-validated .invalid.focus .ts-control, +.was-validated :invalid + .ts-wrapper.focus .ts-control { + border-color: #d63939; box-shadow: 0 0 0 0.25rem rgba(214, 57, 57, 0.25); } -.is-valid .ts-control { +.ts-wrapper.is-valid, +.was-validated .valid, +.was-validated :valid + .ts-wrapper { border-color: #2fb344; } -.focus .is-valid .ts-control { +.ts-wrapper.is-valid:not(.single), +.was-validated .valid:not(.single), +.was-validated :valid + .ts-wrapper:not(.single) { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e"); + background-position: left calc(0.3571428572em + 0.21875rem) center; + background-size: calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); + background-repeat: no-repeat; +} +.ts-wrapper.is-valid.single, +.was-validated .valid.single, +.was-validated :valid + .ts-wrapper.single { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e"); + background-position: left 0.75rem center, center left 2.25rem; + background-size: 16px 12px, calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); + background-repeat: no-repeat; +} +.ts-wrapper.is-valid.focus .ts-control, +.was-validated .valid.focus .ts-control, +.was-validated :valid + .ts-wrapper.focus .ts-control { border-color: #2fb344; box-shadow: 0 0 0 0.25rem rgba(47, 179, 68, 0.25); } -.input-group-sm > .ts-wrapper .ts-control, .ts-wrapper.form-select-sm .ts-control, .ts-wrapper.form-control-sm .ts-control { +.ts-wrapper { + min-height: calc(1.4285714286em + 0.875rem + 2px); + display: flex; +} +.input-group-sm > .ts-wrapper, .ts-wrapper.form-select-sm, .ts-wrapper.form-control-sm { min-height: calc(1.4285714286em + 0.25rem + 2px); +} +.input-group-sm > .ts-wrapper .ts-control, .ts-wrapper.form-select-sm .ts-control, .ts-wrapper.form-control-sm .ts-control { padding: 0 0.75rem; border-radius: 2px; font-size: 0.75rem; } .input-group-sm > .ts-wrapper.has-items .ts-control, .ts-wrapper.form-select-sm.has-items .ts-control, .ts-wrapper.form-control-sm.has-items .ts-control { - min-height: calc(1.4285714286em + 0.25rem + 2px) !important; font-size: 0.75rem; padding-bottom: 0; } @@ -961,33 +1010,32 @@ .ts-wrapper.multi .ts-control > div { border-radius: calc(4px - 1px); } -.input-group-lg > .ts-wrapper > .ts-control, .ts-wrapper.form-control-lg .ts-control, .ts-wrapper.form-select-lg .ts-control { +.input-group-lg > .ts-wrapper, .ts-wrapper.form-control-lg, .ts-wrapper.form-select-lg { min-height: calc(1.4285714286em + 1rem + 2px); +} +.input-group-lg > .ts-wrapper .ts-control, .ts-wrapper.form-control-lg .ts-control, .ts-wrapper.form-select-lg .ts-control { border-radius: 8px; font-size: 1.25rem; } -.ts-wrapper:not(.form-select) { +.ts-wrapper:not(.form-control):not(.form-select) { padding: 0; border: none; height: auto; box-shadow: none; background: none; } -.ts-wrapper:not(.form-select).single .ts-control { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); +.ts-wrapper:not(.form-control):not(.form-select).single .ts-control { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: left 0.75rem center; background-size: 16px 12px; padding-left: 2rem; } -.ts-wrapper.form-select { - padding: 0; - height: auto; - box-shadow: none; -} -.ts-wrapper.form-select .ts-control, .ts-wrapper.form-select.single.input-active .ts-control { +.ts-wrapper.form-control .ts-control, .ts-wrapper.form-control.single.input-active .ts-control, +.ts-wrapper.form-select .ts-control, +.ts-wrapper.form-select.single.input-active .ts-control { border: none !important; background: transparent !important; } @@ -1190,4 +1238,70 @@ image, text, .jvm-zoomin, .jvm-zoomout { } .jvm-zoom-btn.jvm-zoomout { top: 2.5rem; +} + +.dropzone { + border: 1px dashed var(--tblr-border-color); + color: var(--tblr-muted); + padding: 1rem; +} +.dropzone.dz-drag-hover { + border: 1px dashed var(--tblr-primary); + background: rgba(var(--tblr-primary-rgb), 0.01); + color: var(--tblr-primary); +} +.dropzone.dz-drag-hover .dz-message { + opacity: 1; +} +.dropzone .dz-preview { + margin: 0.5rem; +} +.dropzone .dz-preview .dz-image { + border-radius: 4px; +} +.dropzone .dz-preview .dz-success-mark { + height: 54px; +} + +.fslightbox-container { + font-family: inherit !important; + background: rgba(30, 41, 59, 0.24) !important; + -webkit-backdrop-filter: blur(4px) !important; + backdrop-filter: blur(4px) !important; +} + +.fslightbox-slide-number-container { + color: inherit !important; +} + +.fslightbox-slash { + background: currentColor !important; +} + +body { + --plyr-color-main: #206bc4; +} + +.tox-tinymce { + border: 1px solid var(--tblr-border-color) !important; + border-radius: 4px !important; + font-family: var(--tblr-font-sans-serif) !important; +} + +.tox-toolbar__group { + padding: 0 0.5rem 0; +} + +.tox:not(.tox-tinymce-inline) .tox-editor-header { + border-bottom: 1px solid var(--tblr-border-color) !important; + box-shadow: none !important; + padding: 0 !important; +} + +.tox-tbtn { + margin: 0 !important; +} + +.tox-statusbar { + border-top: 1px solid var(--tblr-border-color) !important; } \ No newline at end of file diff --git a/demo/dist/css/tabler-vendors.rtl.min.css b/demo/dist/css/tabler-vendors.rtl.min.css index 88a387e41..0eb1993cc 100644 --- a/demo/dist/css/tabler-vendors.rtl.min.css +++ b/demo/dist/css/tabler-vendors.rtl.min.css @@ -1,9 +1,9 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) */ -.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box}.noUi-target{position:relative}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;left:0;height:100%;width:100%;-ms-transform-origin:100% 0;-webkit-transform-origin:100% 0;-webkit-transform-style:preserve-3d;transform-origin:100% 0;transform-style:flat}.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{right:0;left:auto}.noUi-vertical .noUi-origin{top:-100%;width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;left:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;left:-6px;bottom:-17px}.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle{right:-17px;left:auto}.noUi-target{background:#fafafa;border-radius:4px;border:1px solid #d3d3d3;box-shadow:inset 0 1px 1px #f0f0f0,0 3px 6px -5px #bbb}.noUi-connects{border-radius:3px}.noUi-connect{background:#3fb8af}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #d9d9d9;border-radius:3px;background:#fff;cursor:default;box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ebebeb,0 3px 6px -3px #bbb}.noUi-active{box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ddd,0 3px 6px -3px #bbb}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#e8e7e6;right:14px;top:6px}.noUi-handle:after{right:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;right:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#b8b8b8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#ccc}.noUi-marker-sub{background:#aaa}.noUi-marker-large{background:#aaa}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;right:0;width:100%}.noUi-value-horizontal{transform:translate(50%,50%)}.noUi-rtl .noUi-value-horizontal{transform:translate(-50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-right:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;right:100%}.noUi-value-vertical{transform:translate(0,-50%);padding-right:25px}.noUi-rtl .noUi-value-vertical{transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #d9d9d9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{transform:translate(50%,0);right:50%;bottom:120%}.noUi-vertical .noUi-tooltip{transform:translate(0,-50%);top:50%;left:120%}.noUi-horizontal .noUi-origin>.noUi-tooltip{transform:translate(-50%,0);right:auto;bottom:10px}.noUi-vertical .noUi-origin>.noUi-tooltip{transform:translate(0,-18px);top:auto;left:28px}.noUi-target{border:0;box-shadow:none;background:0 0;border-radius:0;color:#206bc4}.noUi-horizontal{height:1.25rem;padding:.5rem 0}.noUi-base{background:var(--tblr-border-color-light);border-radius:1rem}.noUi-handle{width:1rem;height:1rem;border:2px solid var(--tblr-border-color-light);box-shadow:0 .1rem .25rem rgba(0,0,0,.1);border-radius:1rem;background:currentColor;outline:0}.noUi-handle:after,.noUi-handle:before{content:none}.noUi-horizontal .noUi-handle{width:1rem;height:1rem;top:-.5rem;left:-.5rem;margin:1px 0 0 1px}.noUi-handle.noUi-active,.noUi-handle:focus{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.noUi-connect{background:currentColor}.litepicker{--litepicker-month-weekday-color:#626976;--litepicker-button-prev-month-color:#626976;--litepicker-button-next-month-color:#626976;--litepicker-button-prev-month-color-hover:#206bc4;--litepicker-button-next-month-color-hover:#206bc4;--litepicker-day-color:var(--tblr-body-color);--litepicker-day-color-hover:#206bc4;--litepicker-is-end-color-bg:#206bc4;--litepicker-is-today-color:#206bc4;--litepicker-month-header-color:var(--tblr-body-color);--litepicker-container-months-color-bg:var(--tblr-card-bg);font:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.litepicker svg{fill:none!important}.litepicker .container__main{border:1px solid var(--tblr-border-color);border-radius:4px;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.litepicker .container__months .month-item-name,.litepicker .container__months .month-item-year{font-weight:500!important}.litepicker .container__months .button-next-month,.litepicker .container__months .button-prev-month{cursor:pointer!important}.litepicker .container__months .month-item-weekdays-row>div{padding:.5rem 0!important;font-size:.75rem}.litepicker .container__days .day-item{cursor:pointer!important;padding:.5rem 0!important;transition:color .3s,background-color .3s,border-color .3s}@media (prefers-reduced-motion:reduce){.litepicker .container__days .day-item{transition:none}}.datepicker-inline .litepicker .container__months{box-shadow:none}.ts-wrapper.single .ts-control,.ts-wrapper.single .ts-control input{cursor:pointer}.ts-wrapper.plugin-drag_drop.multi>.ts-control>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0 none!important;box-shadow:inset 0 0 12px 4px #fff}.ts-wrapper.plugin-drag_drop .ui-sortable-placeholder::after{content:"!";visibility:hidden}.ts-wrapper.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,.2)}.plugin-checkbox_options .option input{margin-left:.5rem}.plugin-clear_button .ts-control{padding-left:calc(1em + (3 * 5px))!important}.plugin-clear_button .clear-button{opacity:0;position:absolute;top:.4375rem;left:calc(.75rem - 5px);margin-left:0!important;background:0 0!important;transition:opacity .5s;cursor:pointer}.plugin-clear_button.single .clear-button{left:calc(.75rem - 5px + 2rem)}.plugin-clear_button.focus.has-items .clear-button,.plugin-clear_button:not(.disabled):hover.has-items .clear-button{opacity:1}.ts-wrapper .dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:4px 4px 0 0}.ts-wrapper .dropdown-header-close{position:absolute;left:.75rem;top:50%;color:#1e293b;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.ts-wrapper .dropdown-header-close:hover{color:#000}.plugin-dropdown_input.focus.dropdown-active .ts-control{box-shadow:none;border:1px solid #d9dbde;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.plugin-dropdown_input .dropdown-input{border:1px solid #d0d0d0;border-width:0 0 1px 0;display:block;padding:.4375rem .75rem;box-shadow:none;width:100%;background:0 0}.plugin-dropdown_input.focus~.ts-dropdown .dropdown-input{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.ts-wrapper.plugin-input_autogrow.has-items .ts-control>input{min-width:0}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input{flex:none;min-width:4px}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-webkit-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-moz-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input:-ms-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-ms-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::placeholder{color:transparent}.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content{display:flex}.ts-dropdown.plugin-optgroup_columns .optgroup{border-left:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.ts-dropdown.plugin-optgroup_columns .optgroup:last-child{border-left:0 none}.ts-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.ts-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.ts-wrapper.plugin-remove_button .item{display:inline-flex;align-items:center;padding-left:0!important}.ts-wrapper.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:0 5px;border-right:1px solid #e6e7e9;border-radius:2px 0 0 2px;box-sizing:border-box;margin-right:5px}.ts-wrapper.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,.05)}.ts-wrapper.plugin-remove_button .item.active .remove{border-right-color:transparent}.ts-wrapper.plugin-remove_button.disabled .item .remove:hover{background:0 0}.ts-wrapper.plugin-remove_button.disabled .item .remove{border-right-color:#fff}.ts-wrapper.plugin-remove_button .remove-single{position:absolute;left:0;top:0;font-size:23px}.ts-wrapper{position:relative}.ts-control,.ts-control input,.ts-dropdown{color:#1e293b;font-family:inherit;font-size:inherit;line-height:1.4285714286;font-smoothing:inherit}.ts-control,.ts-wrapper.single.input-active .ts-control{background:#fff;cursor:text}.ts-control{border:1px solid #d9dbde;padding:.4375rem .75rem;width:100%;overflow:hidden;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:4px;display:flex;flex-wrap:wrap}.ts-wrapper.multi.has-items .ts-control{padding:calc(.4375rem - 1px - 0px) .75rem calc(.4375rem - 1px - 3px - 0px)}.full .ts-control{background-color:#fff}.disabled .ts-control,.disabled .ts-control *{cursor:default!important}.focus .ts-control{box-shadow:none}.ts-control>*{vertical-align:baseline;display:inline-block}.ts-wrapper.multi .ts-control>div{cursor:pointer;margin:0 0 3px 3px;padding:1px 5px;background:#efefef;color:#1e293b;border:0 solid #e6e7e9}.ts-wrapper.multi .ts-control>div.active{background:#206bc4;color:#fff;border:0 solid transparent}.ts-wrapper.multi.disabled .ts-control>div,.ts-wrapper.multi.disabled .ts-control>div.active{color:#797979;background:#fff;border:0 solid #fff}.ts-control>input{flex:1 1 auto;min-width:7rem;display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0 none!important;background:0 0!important;line-height:inherit!important;-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;box-shadow:none!important}.ts-control>input::-ms-clear{display:none}.ts-control>input:focus{outline:0!important}.has-items .ts-control>input{margin:0 4px!important}.ts-control.rtl{text-align:left}.ts-control.rtl.single .ts-control:after{right:calc(.75rem + 5px);left:auto}.ts-control.rtl .ts-control>input{margin:0 -2px 0 4px!important}.disabled .ts-control{opacity:.5;background-color:#fafbfc}.input-hidden .ts-control>input{opacity:0;position:absolute;right:-10000px}.ts-dropdown{position:absolute;top:100%;right:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:.25rem 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:0 0 4px 4px}.ts-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.ts-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);border-radius:1px}.ts-dropdown .create,.ts-dropdown .no-results,.ts-dropdown .optgroup-header,.ts-dropdown .option{padding:3px .75rem}.ts-dropdown .option,.ts-dropdown [data-disabled],.ts-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.ts-dropdown [data-selectable].option{opacity:1;cursor:pointer}.ts-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.ts-dropdown .optgroup-header{color:#475569;background:#fff;cursor:default}.ts-dropdown .active,.ts-dropdown .create:hover,.ts-dropdown .option:hover{background-color:rgba(98,105,118,.04);color:inherit}.ts-dropdown .active.create,.ts-dropdown .create:hover.create,.ts-dropdown .option:hover.create{color:inherit}.ts-dropdown .create{color:rgba(30,41,59,.5)}.ts-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.ts-dropdown .spinner:after{content:" ";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;-webkit-animation:lds-dual-ring 1.2s linear infinite;animation:lds-dual-ring 1.2s linear infinite}@-webkit-keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.ts-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch;scroll-behavior:smooth}.ts-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.ts-wrapper.form-control,.ts-wrapper.form-select{padding:0!important}.ts-dropdown,.ts-dropdown.form-control,.ts-dropdown.form-select{height:auto;padding:0;z-index:1000;background:#fff;border:1px solid rgba(98,105,118,.16);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175)}.ts-dropdown .optgroup-header{font-size:.765625rem;line-height:1.4285714286}.ts-dropdown .optgroup:first-child:before{display:none}.ts-dropdown .optgroup:before{content:" ";display:block;height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(98,105,118,.16);margin-right:-.75rem;margin-left:-.75rem}.ts-dropdown .create{padding-right:.75rem}.ts-dropdown-content{padding:5px 0}.ts-control{min-height:calc(1.4285714286em + .875rem + 2px);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:flex;align-items:center}@media (prefers-reduced-motion:reduce){.ts-control{transition:none}}.ts-control.dropdown -active{border-radius:4px}.focus .ts-control{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.ts-control .item{display:flex;align-items:center}.is-invalid .ts-control,.was-validated .invalid .ts-control{border-color:#d63939}.focus .is-invalid .ts-control,.focus .was-validated .invalid .ts-control{border-color:#b62626;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.is-valid .ts-control{border-color:#2fb344}.focus .is-valid .ts-control{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.input-group-sm>.ts-wrapper .ts-control,.ts-wrapper.form-control-sm .ts-control,.ts-wrapper.form-select-sm .ts-control{min-height:calc(1.4285714286em + .25rem + 2px);padding:0 .75rem;border-radius:2px;font-size:.75rem}.input-group-sm>.ts-wrapper.has-items .ts-control,.ts-wrapper.form-control-sm.has-items .ts-control,.ts-wrapper.form-select-sm.has-items .ts-control{min-height:calc(1.4285714286em + .25rem + 2px)!important;font-size:.75rem;padding-bottom:0}.input-group-sm>.ts-wrapper.multi.has-items .ts-control,.ts-wrapper.form-control-sm.multi.has-items .ts-control,.ts-wrapper.form-select-sm.multi.has-items .ts-control{padding-top:calc((calc(1.4285714286em + .25rem + 2px) - (1.4285714286 * .75rem) - 4px)/ 2)!important}.ts-wrapper.multi.has-items .ts-control{padding-right:calc(.75rem - 5px);padding-left:calc(.75rem - 5px)}.ts-wrapper.multi .ts-control>div{border-radius:calc(4px - 1px)}.input-group-lg>.ts-wrapper>.ts-control,.ts-wrapper.form-control-lg .ts-control,.ts-wrapper.form-select-lg .ts-control{min-height:calc(1.4285714286em + 1rem + 2px);border-radius:8px;font-size:1.25rem}.ts-wrapper:not(.form-select){padding:0;border:none;height:auto;box-shadow:none;background:0 0}.ts-wrapper:not(.form-select).single .ts-control{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left .75rem center;background-size:16px 12px;padding-left:2rem}.ts-wrapper.form-select{padding:0;height:auto;box-shadow:none}.ts-wrapper.form-select .ts-control,.ts-wrapper.form-select.single.input-active .ts-control{border:none!important;background:0 0!important}.input-group>.ts-wrapper{flex-grow:1}.input-group>.ts-wrapper:not(:nth-child(2))>.ts-control{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.ts-wrapper:not(:last-child)>.ts-control{border-top-left-radius:0;border-bottom-left-radius:0}.ts-input{color:inherit}.ts-control{color:inherit}.ts-control .dropdown-menu{width:100%;height:auto}svg{touch-action:none}.jvm-zoomin,.jvm-zoomout,image,text{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jvm-container{touch-action:none;position:relative;overflow:hidden;height:100%;width:100%}.jvm-tooltip{border-radius:3px;background-color:#5c5cff;font-family:sans-serif,Verdana;font-size:smaller;box-shadow:-1px 2px 12px rgba(0,0,0,.2);padding:3px 5px;white-space:nowrap;position:absolute;display:none;color:#fff}.jvm-tooltip.active{display:block}.jvm-zoom-btn{border-radius:3px;background-color:#292929;padding:3px;box-sizing:border-box;position:absolute;line-height:10px;cursor:pointer;color:#fff;height:15px;width:15px;right:10px}.jvm-zoom-btn.jvm-zoomout{top:30px}.jvm-zoom-btn.jvm-zoomin{top:10px}.jvm-series-container{left:15px;position:absolute}.jvm-series-container.jvm-series-h{bottom:15px}.jvm-series-container.jvm-series-v{top:15px}.jvm-series-container .jvm-legend{background-color:#fff;border:1px solid #e5e7eb;margin-right:.75rem;border-radius:.25rem;border-color:#e5e7eb;padding:.6rem;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);float:right}.jvm-series-container .jvm-legend .jvm-legend-title{line-height:1;border-bottom:1px solid #e5e7eb;padding-bottom:.5rem;margin-bottom:.575rem;text-align:right}.jvm-series-container .jvm-legend .jvm-legend-inner{overflow:hidden}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick{overflow:hidden;min-width:40px}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick:not(:first-child){margin-top:.575rem}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-sample{border-radius:4px;margin-left:.65rem;height:16px;width:16px;float:right}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-text{font-size:12px;text-align:center;float:right}.jvm-line[animation=true]{-webkit-animation:jvm-line-animation 10s linear forwards infinite;animation:jvm-line-animation 10s linear forwards infinite}@-webkit-keyframes jvm-line-animation{from{stroke-dashoffset:250}}@keyframes jvm-line-animation{from{stroke-dashoffset:250}}.jvm-tooltip{background:#1e293b;font-family:inherit;font-size:.75rem;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.jvm-series-container .jvm-legend .jvm-legend-title{border-bottom:0;font-weight:500}.jvm-series-container .jvm-legend{background-color:var(--tblr-card-bg);border:1px solid var(--tblr-border-color);min-width:8rem}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick{display:flex;align-items:center}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-sample{width:.75rem;height:.75rem}.jvm-zoom-btn{border:1px solid var(--tblr-border-color);background:var(--tblr-card-bg);color:var(--tblr-body-color);padding:0;display:flex;align-items:center;justify-content:center;line-height:1;width:1.5rem;height:1.5rem;font-size:1rem;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.jvm-zoom-btn.jvm-zoomout{top:2.5rem} \ No newline at end of file +.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box}.noUi-target{position:relative}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;left:0;height:100%;width:100%;-ms-transform-origin:100% 0;-webkit-transform-origin:100% 0;-webkit-transform-style:preserve-3d;transform-origin:100% 0;transform-style:flat}.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{right:0;left:auto}.noUi-vertical .noUi-origin{top:-100%;width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;left:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;left:-6px;bottom:-17px}.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle{right:-17px;left:auto}.noUi-target{background:#fafafa;border-radius:4px;border:1px solid #d3d3d3;box-shadow:inset 0 1px 1px #f0f0f0,0 3px 6px -5px #bbb}.noUi-connects{border-radius:3px}.noUi-connect{background:#3fb8af}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #d9d9d9;border-radius:3px;background:#fff;cursor:default;box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ebebeb,0 3px 6px -3px #bbb}.noUi-active{box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ddd,0 3px 6px -3px #bbb}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#e8e7e6;right:14px;top:6px}.noUi-handle:after{right:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;right:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#b8b8b8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#ccc}.noUi-marker-sub{background:#aaa}.noUi-marker-large{background:#aaa}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;right:0;width:100%}.noUi-value-horizontal{transform:translate(50%,50%)}.noUi-rtl .noUi-value-horizontal{transform:translate(-50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-right:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;right:100%}.noUi-value-vertical{transform:translate(0,-50%);padding-right:25px}.noUi-rtl .noUi-value-vertical{transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #d9d9d9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{transform:translate(50%,0);right:50%;bottom:120%}.noUi-vertical .noUi-tooltip{transform:translate(0,-50%);top:50%;left:120%}.noUi-horizontal .noUi-origin>.noUi-tooltip{transform:translate(-50%,0);right:auto;bottom:10px}.noUi-vertical .noUi-origin>.noUi-tooltip{transform:translate(0,-18px);top:auto;left:28px}.noUi-target{border:0;box-shadow:none;background:0 0;border-radius:0;color:#206bc4}.noUi-horizontal{height:1.25rem;padding:.5rem 0}.noUi-base{background:var(--tblr-border-color-light);border-radius:1rem}.noUi-handle{width:1rem;height:1rem;border:2px solid var(--tblr-border-color-light);box-shadow:0 .1rem .25rem rgba(0,0,0,.1);border-radius:1rem;background:currentColor;outline:0}.noUi-handle:after,.noUi-handle:before{content:none}.noUi-horizontal .noUi-handle{width:1rem;height:1rem;top:-.5rem;left:-.5rem;margin:1px 0 0 1px}.noUi-handle.noUi-active,.noUi-handle:focus{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.noUi-connect{background:currentColor}.litepicker{--litepicker-month-weekday-color:#626976;--litepicker-button-prev-month-color:#626976;--litepicker-button-next-month-color:#626976;--litepicker-button-prev-month-color-hover:#206bc4;--litepicker-button-next-month-color-hover:#206bc4;--litepicker-day-color:var(--tblr-body-color);--litepicker-day-color-hover:#206bc4;--litepicker-is-end-color-bg:#206bc4;--litepicker-is-today-color:#206bc4;--litepicker-month-header-color:var(--tblr-body-color);--litepicker-container-months-color-bg:var(--tblr-card-bg);font:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.litepicker svg{fill:none!important}.litepicker .container__main{border:1px solid var(--tblr-border-color);border-radius:4px;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.litepicker .container__months .month-item-name,.litepicker .container__months .month-item-year{font-weight:500!important}.litepicker .container__months .button-next-month,.litepicker .container__months .button-prev-month{cursor:pointer!important}.litepicker .container__months .month-item-weekdays-row>div{padding:.5rem 0!important;font-size:.75rem}.litepicker .container__days .day-item{cursor:pointer!important;padding:.5rem 0!important;transition:color .3s,background-color .3s,border-color .3s}@media (prefers-reduced-motion:reduce){.litepicker .container__days .day-item{transition:none}}.datepicker-inline .litepicker .container__months{box-shadow:none}.ts-wrapper.single .ts-control,.ts-wrapper.single .ts-control input{cursor:pointer}.ts-wrapper.plugin-drag_drop.multi>.ts-control>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0 none!important;box-shadow:inset 0 0 12px 4px #fff}.ts-wrapper.plugin-drag_drop .ui-sortable-placeholder::after{content:"!";visibility:hidden}.ts-wrapper.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,.2)}.plugin-checkbox_options .option input{margin-left:.5rem}.plugin-clear_button .ts-control{padding-left:calc(1em + (3 * 5px))!important}.plugin-clear_button .clear-button{opacity:0;position:absolute;top:.4375rem;left:calc(.75rem - 5px);margin-left:0!important;background:0 0!important;transition:opacity .5s;cursor:pointer}.plugin-clear_button.single .clear-button{left:calc(.75rem - 5px + 2rem)}.plugin-clear_button.focus.has-items .clear-button,.plugin-clear_button:not(.disabled):hover.has-items .clear-button{opacity:1}.ts-wrapper .dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:4px 4px 0 0}.ts-wrapper .dropdown-header-close{position:absolute;left:.75rem;top:50%;color:#1e293b;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.ts-wrapper .dropdown-header-close:hover{color:#000}.plugin-dropdown_input.focus.dropdown-active .ts-control{box-shadow:none;border:1px solid #d9dbde;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.plugin-dropdown_input .dropdown-input{border:1px solid #d0d0d0;border-width:0 0 1px 0;display:block;padding:.4375rem .75rem;box-shadow:none;width:100%;background:0 0}.plugin-dropdown_input.focus .ts-dropdown .dropdown-input{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.plugin-dropdown_input .items-placeholder{border:0 none!important;box-shadow:none!important;width:100%}.plugin-dropdown_input.dropdown-active .items-placeholder,.plugin-dropdown_input.has-items .items-placeholder{display:none!important}.ts-wrapper.plugin-input_autogrow.has-items .ts-control>input{min-width:0}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input{flex:none;min-width:4px}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-webkit-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-moz-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input:-ms-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-ms-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::placeholder{color:transparent}.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content{display:flex}.ts-dropdown.plugin-optgroup_columns .optgroup{border-left:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.ts-dropdown.plugin-optgroup_columns .optgroup:last-child{border-left:0 none}.ts-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.ts-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.ts-wrapper.plugin-remove_button .item{display:inline-flex;align-items:center;padding-left:0!important}.ts-wrapper.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:0 5px;border-right:1px solid #e6e7e9;border-radius:2px 0 0 2px;box-sizing:border-box;margin-right:5px}.ts-wrapper.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,.05)}.ts-wrapper.plugin-remove_button .item.active .remove{border-right-color:transparent}.ts-wrapper.plugin-remove_button.disabled .item .remove:hover{background:0 0}.ts-wrapper.plugin-remove_button.disabled .item .remove{border-right-color:#fff}.ts-wrapper.plugin-remove_button .remove-single{position:absolute;left:0;top:0;font-size:23px}.ts-wrapper{position:relative}.ts-control,.ts-control input,.ts-dropdown{color:#1e293b;font-family:inherit;font-size:inherit;line-height:1.4285714286;font-smoothing:inherit}.ts-control,.ts-wrapper.single.input-active .ts-control{background:#fff;cursor:text}.ts-control{border:1px solid #d9dbde;padding:.4375rem .75rem;width:100%;overflow:hidden;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:4px;display:flex;flex-wrap:wrap}.ts-wrapper.multi.has-items .ts-control{padding:calc(.4375rem - 1px - 0px) .75rem calc(.4375rem - 1px - 3px - 0px)}.full .ts-control{background-color:#fff}.disabled .ts-control,.disabled .ts-control *{cursor:default!important}.focus .ts-control{box-shadow:none}.ts-control>*{vertical-align:baseline;display:inline-block}.ts-wrapper.multi .ts-control>div{cursor:pointer;margin:0 0 3px 3px;padding:1px 5px;background:#efefef;color:#1e293b;border:0 solid #e6e7e9}.ts-wrapper.multi .ts-control>div.active{background:#206bc4;color:#fff;border:0 solid transparent}.ts-wrapper.multi.disabled .ts-control>div,.ts-wrapper.multi.disabled .ts-control>div.active{color:#797979;background:#fff;border:0 solid #fff}.ts-control>input{flex:1 1 auto;min-width:7rem;display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0 none!important;background:0 0!important;line-height:inherit!important;-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;box-shadow:none!important}.ts-control>input::-ms-clear{display:none}.ts-control>input:focus{outline:0!important}.has-items .ts-control>input{margin:0 4px!important}.ts-control.rtl{text-align:left}.ts-control.rtl.single .ts-control:after{right:calc(.75rem + 5px);left:auto}.ts-control.rtl .ts-control>input{margin:0 -2px 0 4px!important}.disabled .ts-control{opacity:.5;background-color:#fafbfc}.input-hidden .ts-control>input{opacity:0;position:absolute;right:-10000px}.ts-dropdown{position:absolute;top:100%;right:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:.25rem 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:0 0 4px 4px}.ts-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.ts-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);border-radius:1px}.ts-dropdown .create,.ts-dropdown .no-results,.ts-dropdown .optgroup-header,.ts-dropdown .option{padding:3px .75rem}.ts-dropdown .option,.ts-dropdown [data-disabled],.ts-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.ts-dropdown [data-selectable].option{opacity:1;cursor:pointer}.ts-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.ts-dropdown .optgroup-header{color:#475569;background:#fff;cursor:default}.ts-dropdown .active{background-color:rgba(98,105,118,.04);color:inherit}.ts-dropdown .active.create{color:inherit}.ts-dropdown .create{color:rgba(30,41,59,.5)}.ts-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.ts-dropdown .spinner:after{content:" ";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;-webkit-animation:lds-dual-ring 1.2s linear infinite;animation:lds-dual-ring 1.2s linear infinite}@-webkit-keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.ts-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch;scroll-behavior:smooth}.ts-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.ts-wrapper.form-control,.ts-wrapper.form-select{padding:0!important;height:auto;box-shadow:none;display:flex}.ts-dropdown,.ts-dropdown.form-control,.ts-dropdown.form-select{height:auto;padding:0;z-index:1000;background:#fff;border:1px solid rgba(98,105,118,.16);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175)}.ts-dropdown .optgroup-header{font-size:.765625rem;line-height:1.4285714286}.ts-dropdown .optgroup:first-child:before{display:none}.ts-dropdown .optgroup:before{content:" ";display:block;height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(98,105,118,.16);margin-right:-.75rem;margin-left:-.75rem}.ts-dropdown .create{padding-right:.75rem}.ts-dropdown-content{padding:5px 0}.ts-control{transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:flex;align-items:center}@media (prefers-reduced-motion:reduce){.ts-control{transition:none}}.ts-control.dropdown -active{border-radius:4px}.focus .ts-control{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.ts-control .item{display:flex;align-items:center}.ts-wrapper.is-invalid,.was-validated .invalid,.was-validated :invalid+.ts-wrapper{border-color:#d63939}.ts-wrapper.is-invalid:not(.single),.was-validated .invalid:not(.single),.was-validated :invalid+.ts-wrapper:not(.single){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:left calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem);background-repeat:no-repeat}.ts-wrapper.is-invalid.single,.was-validated .invalid.single,.was-validated :invalid+.ts-wrapper.single{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:left .75rem center,center left 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem);background-repeat:no-repeat}.ts-wrapper.is-invalid.focus .ts-control,.was-validated .invalid.focus .ts-control,.was-validated :invalid+.ts-wrapper.focus .ts-control{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.ts-wrapper.is-valid,.was-validated .valid,.was-validated :valid+.ts-wrapper{border-color:#2fb344}.ts-wrapper.is-valid:not(.single),.was-validated .valid:not(.single),.was-validated :valid+.ts-wrapper:not(.single){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:left calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem);background-repeat:no-repeat}.ts-wrapper.is-valid.single,.was-validated .valid.single,.was-validated :valid+.ts-wrapper.single{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:left .75rem center,center left 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem);background-repeat:no-repeat}.ts-wrapper.is-valid.focus .ts-control,.was-validated .valid.focus .ts-control,.was-validated :valid+.ts-wrapper.focus .ts-control{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.ts-wrapper{min-height:calc(1.4285714286em + .875rem + 2px);display:flex}.input-group-sm>.ts-wrapper,.ts-wrapper.form-control-sm,.ts-wrapper.form-select-sm{min-height:calc(1.4285714286em + .25rem + 2px)}.input-group-sm>.ts-wrapper .ts-control,.ts-wrapper.form-control-sm .ts-control,.ts-wrapper.form-select-sm .ts-control{padding:0 .75rem;border-radius:2px;font-size:.75rem}.input-group-sm>.ts-wrapper.has-items .ts-control,.ts-wrapper.form-control-sm.has-items .ts-control,.ts-wrapper.form-select-sm.has-items .ts-control{font-size:.75rem;padding-bottom:0}.input-group-sm>.ts-wrapper.multi.has-items .ts-control,.ts-wrapper.form-control-sm.multi.has-items .ts-control,.ts-wrapper.form-select-sm.multi.has-items .ts-control{padding-top:calc((calc(1.4285714286em + .25rem + 2px) - (1.4285714286 * .75rem) - 4px)/ 2)!important}.ts-wrapper.multi.has-items .ts-control{padding-right:calc(.75rem - 5px);padding-left:calc(.75rem - 5px)}.ts-wrapper.multi .ts-control>div{border-radius:calc(4px - 1px)}.input-group-lg>.ts-wrapper,.ts-wrapper.form-control-lg,.ts-wrapper.form-select-lg{min-height:calc(1.4285714286em + 1rem + 2px)}.input-group-lg>.ts-wrapper .ts-control,.ts-wrapper.form-control-lg .ts-control,.ts-wrapper.form-select-lg .ts-control{border-radius:8px;font-size:1.25rem}.ts-wrapper:not(.form-control):not(.form-select){padding:0;border:none;height:auto;box-shadow:none;background:0 0}.ts-wrapper:not(.form-control):not(.form-select).single .ts-control{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left .75rem center;background-size:16px 12px;padding-left:2rem}.ts-wrapper.form-control .ts-control,.ts-wrapper.form-control.single.input-active .ts-control,.ts-wrapper.form-select .ts-control,.ts-wrapper.form-select.single.input-active .ts-control{border:none!important;background:0 0!important}.input-group>.ts-wrapper{flex-grow:1}.input-group>.ts-wrapper:not(:nth-child(2))>.ts-control{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.ts-wrapper:not(:last-child)>.ts-control{border-top-left-radius:0;border-bottom-left-radius:0}.ts-input{color:inherit}.ts-control{color:inherit}.ts-control .dropdown-menu{width:100%;height:auto}svg{touch-action:none}.jvm-zoomin,.jvm-zoomout,image,text{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jvm-container{touch-action:none;position:relative;overflow:hidden;height:100%;width:100%}.jvm-tooltip{border-radius:3px;background-color:#5c5cff;font-family:sans-serif,Verdana;font-size:smaller;box-shadow:-1px 2px 12px rgba(0,0,0,.2);padding:3px 5px;white-space:nowrap;position:absolute;display:none;color:#fff}.jvm-tooltip.active{display:block}.jvm-zoom-btn{border-radius:3px;background-color:#292929;padding:3px;box-sizing:border-box;position:absolute;line-height:10px;cursor:pointer;color:#fff;height:15px;width:15px;right:10px}.jvm-zoom-btn.jvm-zoomout{top:30px}.jvm-zoom-btn.jvm-zoomin{top:10px}.jvm-series-container{left:15px;position:absolute}.jvm-series-container.jvm-series-h{bottom:15px}.jvm-series-container.jvm-series-v{top:15px}.jvm-series-container .jvm-legend{background-color:#fff;border:1px solid #e5e7eb;margin-right:.75rem;border-radius:.25rem;border-color:#e5e7eb;padding:.6rem;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);float:right}.jvm-series-container .jvm-legend .jvm-legend-title{line-height:1;border-bottom:1px solid #e5e7eb;padding-bottom:.5rem;margin-bottom:.575rem;text-align:right}.jvm-series-container .jvm-legend .jvm-legend-inner{overflow:hidden}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick{overflow:hidden;min-width:40px}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick:not(:first-child){margin-top:.575rem}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-sample{border-radius:4px;margin-left:.65rem;height:16px;width:16px;float:right}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-text{font-size:12px;text-align:center;float:right}.jvm-line[animation=true]{-webkit-animation:jvm-line-animation 10s linear forwards infinite;animation:jvm-line-animation 10s linear forwards infinite}@-webkit-keyframes jvm-line-animation{from{stroke-dashoffset:250}}@keyframes jvm-line-animation{from{stroke-dashoffset:250}}.jvm-tooltip{background:#1e293b;font-family:inherit;font-size:.75rem;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.jvm-series-container .jvm-legend .jvm-legend-title{border-bottom:0;font-weight:500}.jvm-series-container .jvm-legend{background-color:var(--tblr-card-bg);border:1px solid var(--tblr-border-color);min-width:8rem}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick{display:flex;align-items:center}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-sample{width:.75rem;height:.75rem}.jvm-zoom-btn{border:1px solid var(--tblr-border-color);background:var(--tblr-card-bg);color:var(--tblr-body-color);padding:0;display:flex;align-items:center;justify-content:center;line-height:1;width:1.5rem;height:1.5rem;font-size:1rem;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.jvm-zoom-btn.jvm-zoomout{top:2.5rem}.dropzone{border:1px dashed var(--tblr-border-color);color:var(--tblr-muted);padding:1rem}.dropzone.dz-drag-hover{border:1px dashed var(--tblr-primary);background:rgba(var(--tblr-primary-rgb),.01);color:var(--tblr-primary)}.dropzone.dz-drag-hover .dz-message{opacity:1}.dropzone .dz-preview{margin:.5rem}.dropzone .dz-preview .dz-image{border-radius:4px}.dropzone .dz-preview .dz-success-mark{height:54px}.fslightbox-container{font-family:inherit!important;background:rgba(30,41,59,.24)!important;-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}.fslightbox-slide-number-container{color:inherit!important}.fslightbox-slash{background:currentColor!important}body{--plyr-color-main:#206bc4}.tox-tinymce{border:1px solid var(--tblr-border-color)!important;border-radius:4px!important;font-family:var(--tblr-font-sans-serif)!important}.tox-toolbar__group{padding:0 .5rem 0}.tox:not(.tox-tinymce-inline) .tox-editor-header{border-bottom:1px solid var(--tblr-border-color)!important;box-shadow:none!important;padding:0!important}.tox-tbtn{margin:0!important}.tox-statusbar{border-top:1px solid var(--tblr-border-color)!important} \ No newline at end of file diff --git a/demo/dist/css/tabler.css b/demo/dist/css/tabler.css index e652a77f9..8217cf7e0 100644 --- a/demo/dist/css/tabler.css +++ b/demo/dist/css/tabler.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna @@ -18,6 +18,7 @@ --tblr-green: #2fb344; --tblr-teal: #0ca678; --tblr-cyan: #17a2b8; + --tblr-black: #000000; --tblr-white: #ffffff; --tblr-gray: #475569; --tblr-gray-dark: #1e293b; @@ -39,6 +40,33 @@ --tblr-light: #fafbfc; --tblr-dark: #1e293b; --tblr-muted: #626976; + --tblr-blue: #206bc4; + --tblr-azure: #4299e1; + --tblr-indigo: #4263eb; + --tblr-purple: #ae3ec9; + --tblr-pink: #d6336c; + --tblr-red: #d63939; + --tblr-orange: #f76707; + --tblr-yellow: #f59f00; + --tblr-lime: #74b816; + --tblr-green: #2fb344; + --tblr-teal: #0ca678; + --tblr-cyan: #17a2b8; + --tblr-facebook: #3b5998; + --tblr-twitter: #1da1f2; + --tblr-linkedin: #0a66c2; + --tblr-google: #dc4e41; + --tblr-youtube: #ff0000; + --tblr-vimeo: #1ab7ea; + --tblr-dribbble: #ea4c89; + --tblr-github: #181717; + --tblr-instagram: #e4405f; + --tblr-pinterest: #bd081c; + --tblr-vk: #6383a8; + --tblr-rss: #ffa500; + --tblr-flickr: #0063dc; + --tblr-bitbucket: #0052cc; + --tblr-tabler: #206bc4; --tblr-primary-rgb: 32, 107, 196; --tblr-secondary-rgb: 98, 105, 118; --tblr-success-rgb: 47, 179, 68; @@ -48,6 +76,33 @@ --tblr-light-rgb: 250, 251, 252; --tblr-dark-rgb: 30, 41, 59; --tblr-muted-rgb: 98, 105, 118; + --tblr-blue-rgb: 32, 107, 196; + --tblr-azure-rgb: 66, 153, 225; + --tblr-indigo-rgb: 66, 99, 235; + --tblr-purple-rgb: 174, 62, 201; + --tblr-pink-rgb: 214, 51, 108; + --tblr-red-rgb: 214, 57, 57; + --tblr-orange-rgb: 247, 103, 7; + --tblr-yellow-rgb: 245, 159, 0; + --tblr-lime-rgb: 116, 184, 22; + --tblr-green-rgb: 47, 179, 68; + --tblr-teal-rgb: 12, 166, 120; + --tblr-cyan-rgb: 23, 162, 184; + --tblr-facebook-rgb: 59, 89, 152; + --tblr-twitter-rgb: 29, 161, 242; + --tblr-linkedin-rgb: 10, 102, 194; + --tblr-google-rgb: 220, 78, 65; + --tblr-youtube-rgb: 255, 0, 0; + --tblr-vimeo-rgb: 26, 183, 234; + --tblr-dribbble-rgb: 234, 76, 137; + --tblr-github-rgb: 24, 23, 23; + --tblr-instagram-rgb: 228, 64, 95; + --tblr-pinterest-rgb: 189, 8, 28; + --tblr-vk-rgb: 99, 131, 168; + --tblr-rss-rgb: 255, 165, 0; + --tblr-flickr-rgb: 0, 99, 220; + --tblr-bitbucket-rgb: 0, 82, 204; + --tblr-tabler-rgb: 32, 107, 196; --tblr-white-rgb: 255, 255, 255; --tblr-black-rgb: 0, 0, 0; --tblr-body-color-rgb: 30, 41, 59; @@ -61,6 +116,20 @@ --tblr-body-line-height: 1.4285714286; --tblr-body-color: #1e293b; --tblr-body-bg: #f5f7fb; + --tblr-border-width: 1px; + --tblr-border-style: solid; + --tblr-border-color: #e6e7e9; + --tblr-border-color-translucent: rgba(0, 0, 0, 0.175); + --tblr-border-radius: 4px; + --tblr-border-radius-sm: 2px; + --tblr-border-radius-lg: 8px; + --tblr-border-radius-xl: 1rem; + --tblr-border-radius-2xl: 2rem; + --tblr-border-radius-pill: 100rem; + --tblr-link-color: #206bc4; + --tblr-link-hover-color: #1a569d; + --tblr-code-color: #4b5462; + --tblr-highlight-bg: #fdeccc; } *, @@ -91,15 +160,11 @@ body { hr, .hr { margin: 2rem 0; color: inherit; - background-color: currentColor; border: 0; + border-top: 1px solid; opacity: 0.16; } -hr:not([size]), .hr:not([size]) { - height: 1px; -} - h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { margin-top: 0; margin-bottom: 0.5rem; @@ -136,8 +201,7 @@ p { margin-bottom: 1rem; } -abbr[title], -abbr[data-bs-original-title] { +abbr[title] { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; cursor: help; @@ -193,8 +257,8 @@ small, .small { } mark, .mark { - padding: 0.2em; - background-color: #fcf8e3; + padding: 0.1875em; + background-color: var(--tblr-highlight-bg); } sub, @@ -214,11 +278,11 @@ sup { } a { - color: #206bc4; + color: var(--tblr-link-color); text-decoration: none; } a:hover { - color: #1a569d; + color: var(--tblr-link-hover-color); text-decoration: underline; } @@ -233,8 +297,6 @@ kbd, samp { font-family: var(--tblr-font-monospace); font-size: 1em; - direction: ltr /* rtl:ignore */; - unicode-bidi: bidi-override; } pre { @@ -252,7 +314,7 @@ pre code { code { font-size: 85.71428571%; - color: #4b5462; + color: var(--tblr-code-color); word-wrap: break-word; } a > code { @@ -260,16 +322,15 @@ a > code { } kbd { - padding: 0.2rem 0.4rem; + padding: 0.1875rem 0.375rem; font-size: 85.71428571%; - color: #ffffff; - background-color: #0f172a; + color: var(--tblr-body-bg); + background-color: var(--tblr-body-color); border-radius: 2px; } kbd kbd { padding: 0; font-size: 1em; - font-weight: 600; } figure { @@ -348,8 +409,8 @@ select:disabled { opacity: 1; } -[list]::-webkit-calendar-picker-indicator { - display: none; +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; } button, @@ -430,14 +491,11 @@ legend + * { ::-webkit-file-upload-button { font: inherit; + -webkit-appearance: button; } ::file-selector-button { font: inherit; -} - -::-webkit-file-upload-button { - font: inherit; -webkit-appearance: button; } @@ -498,7 +556,7 @@ progress { } .display-6 { - font-size: 2.5rem; + font-size: 2rem; font-weight: 300; line-height: 1.2; } @@ -551,7 +609,7 @@ progress { .img-thumbnail { padding: 0.25rem; background-color: #f5f7fb; - border: 1px solid #cbd5e1; + border: 1px solid var(--tblr-border-color); border-radius: 4px; max-width: 100%; height: auto; @@ -578,9 +636,11 @@ progress { .container-lg, .container-md, .container-sm { + --tblr-gutter-x: 1.5rem; + --tblr-gutter-y: 0; width: 100%; - padding-right: var(--tblr-gutter-x, 1.5rem); - padding-left: var(--tblr-gutter-x, 1.5rem); + padding-right: calc(var(--tblr-gutter-x) * 0.5); + padding-left: calc(var(--tblr-gutter-x) * 0.5); margin-right: auto; margin-left: auto; } @@ -840,210 +900,166 @@ progress { .col-sm { flex: 1 0 0%; } - .row-cols-sm-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-sm-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-sm-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-sm-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-sm-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-sm-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-sm-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-sm-auto { flex: 0 0 auto; width: auto; } - .col-sm-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-sm-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-sm-3 { flex: 0 0 auto; width: 25%; } - .col-sm-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-sm-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-sm-6 { flex: 0 0 auto; width: 50%; } - .col-sm-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-sm-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-sm-9 { flex: 0 0 auto; width: 75%; } - .col-sm-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-sm-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-sm-12 { flex: 0 0 auto; width: 100%; } - .offset-sm-0 { margin-left: 0; } - .offset-sm-1 { margin-left: 8.33333333%; } - .offset-sm-2 { margin-left: 16.66666667%; } - .offset-sm-3 { margin-left: 25%; } - .offset-sm-4 { margin-left: 33.33333333%; } - .offset-sm-5 { margin-left: 41.66666667%; } - .offset-sm-6 { margin-left: 50%; } - .offset-sm-7 { margin-left: 58.33333333%; } - .offset-sm-8 { margin-left: 66.66666667%; } - .offset-sm-9 { margin-left: 75%; } - .offset-sm-10 { margin-left: 83.33333333%; } - .offset-sm-11 { margin-left: 91.66666667%; } - .g-sm-0, .gx-sm-0 { --tblr-gutter-x: 0; } - .g-sm-0, .gy-sm-0 { --tblr-gutter-y: 0; } - .g-sm-1, .gx-sm-1 { --tblr-gutter-x: 0.25rem; } - .g-sm-1, .gy-sm-1 { --tblr-gutter-y: 0.25rem; } - .g-sm-2, .gx-sm-2 { --tblr-gutter-x: 0.5rem; } - .g-sm-2, .gy-sm-2 { --tblr-gutter-y: 0.5rem; } - .g-sm-3, .gx-sm-3 { --tblr-gutter-x: 1rem; } - .g-sm-3, .gy-sm-3 { --tblr-gutter-y: 1rem; } - .g-sm-4, .gx-sm-4 { --tblr-gutter-x: 2rem; } - .g-sm-4, .gy-sm-4 { --tblr-gutter-y: 2rem; } - .g-sm-5, .gx-sm-5 { --tblr-gutter-x: 4rem; } - .g-sm-5, .gy-sm-5 { --tblr-gutter-y: 4rem; @@ -1053,210 +1069,166 @@ progress { .col-md { flex: 1 0 0%; } - .row-cols-md-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-md-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-md-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-md-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-md-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-md-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-md-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-md-auto { flex: 0 0 auto; width: auto; } - .col-md-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-md-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-md-3 { flex: 0 0 auto; width: 25%; } - .col-md-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-md-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-md-6 { flex: 0 0 auto; width: 50%; } - .col-md-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-md-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-md-9 { flex: 0 0 auto; width: 75%; } - .col-md-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-md-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-md-12 { flex: 0 0 auto; width: 100%; } - .offset-md-0 { margin-left: 0; } - .offset-md-1 { margin-left: 8.33333333%; } - .offset-md-2 { margin-left: 16.66666667%; } - .offset-md-3 { margin-left: 25%; } - .offset-md-4 { margin-left: 33.33333333%; } - .offset-md-5 { margin-left: 41.66666667%; } - .offset-md-6 { margin-left: 50%; } - .offset-md-7 { margin-left: 58.33333333%; } - .offset-md-8 { margin-left: 66.66666667%; } - .offset-md-9 { margin-left: 75%; } - .offset-md-10 { margin-left: 83.33333333%; } - .offset-md-11 { margin-left: 91.66666667%; } - .g-md-0, .gx-md-0 { --tblr-gutter-x: 0; } - .g-md-0, .gy-md-0 { --tblr-gutter-y: 0; } - .g-md-1, .gx-md-1 { --tblr-gutter-x: 0.25rem; } - .g-md-1, .gy-md-1 { --tblr-gutter-y: 0.25rem; } - .g-md-2, .gx-md-2 { --tblr-gutter-x: 0.5rem; } - .g-md-2, .gy-md-2 { --tblr-gutter-y: 0.5rem; } - .g-md-3, .gx-md-3 { --tblr-gutter-x: 1rem; } - .g-md-3, .gy-md-3 { --tblr-gutter-y: 1rem; } - .g-md-4, .gx-md-4 { --tblr-gutter-x: 2rem; } - .g-md-4, .gy-md-4 { --tblr-gutter-y: 2rem; } - .g-md-5, .gx-md-5 { --tblr-gutter-x: 4rem; } - .g-md-5, .gy-md-5 { --tblr-gutter-y: 4rem; @@ -1266,210 +1238,166 @@ progress { .col-lg { flex: 1 0 0%; } - .row-cols-lg-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-lg-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-lg-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-lg-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-lg-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-lg-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-lg-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-lg-auto { flex: 0 0 auto; width: auto; } - .col-lg-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-lg-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-lg-3 { flex: 0 0 auto; width: 25%; } - .col-lg-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-lg-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-lg-6 { flex: 0 0 auto; width: 50%; } - .col-lg-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-lg-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-lg-9 { flex: 0 0 auto; width: 75%; } - .col-lg-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-lg-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-lg-12 { flex: 0 0 auto; width: 100%; } - .offset-lg-0 { margin-left: 0; } - .offset-lg-1 { margin-left: 8.33333333%; } - .offset-lg-2 { margin-left: 16.66666667%; } - .offset-lg-3 { margin-left: 25%; } - .offset-lg-4 { margin-left: 33.33333333%; } - .offset-lg-5 { margin-left: 41.66666667%; } - .offset-lg-6 { margin-left: 50%; } - .offset-lg-7 { margin-left: 58.33333333%; } - .offset-lg-8 { margin-left: 66.66666667%; } - .offset-lg-9 { margin-left: 75%; } - .offset-lg-10 { margin-left: 83.33333333%; } - .offset-lg-11 { margin-left: 91.66666667%; } - .g-lg-0, .gx-lg-0 { --tblr-gutter-x: 0; } - .g-lg-0, .gy-lg-0 { --tblr-gutter-y: 0; } - .g-lg-1, .gx-lg-1 { --tblr-gutter-x: 0.25rem; } - .g-lg-1, .gy-lg-1 { --tblr-gutter-y: 0.25rem; } - .g-lg-2, .gx-lg-2 { --tblr-gutter-x: 0.5rem; } - .g-lg-2, .gy-lg-2 { --tblr-gutter-y: 0.5rem; } - .g-lg-3, .gx-lg-3 { --tblr-gutter-x: 1rem; } - .g-lg-3, .gy-lg-3 { --tblr-gutter-y: 1rem; } - .g-lg-4, .gx-lg-4 { --tblr-gutter-x: 2rem; } - .g-lg-4, .gy-lg-4 { --tblr-gutter-y: 2rem; } - .g-lg-5, .gx-lg-5 { --tblr-gutter-x: 4rem; } - .g-lg-5, .gy-lg-5 { --tblr-gutter-y: 4rem; @@ -1479,210 +1407,166 @@ progress { .col-xl { flex: 1 0 0%; } - .row-cols-xl-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-xl-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-xl-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-xl-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-xl-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-xl-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-xl-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-xl-auto { flex: 0 0 auto; width: auto; } - .col-xl-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-xl-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-xl-3 { flex: 0 0 auto; width: 25%; } - .col-xl-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-xl-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-xl-6 { flex: 0 0 auto; width: 50%; } - .col-xl-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-xl-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-xl-9 { flex: 0 0 auto; width: 75%; } - .col-xl-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-xl-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-xl-12 { flex: 0 0 auto; width: 100%; } - .offset-xl-0 { margin-left: 0; } - .offset-xl-1 { margin-left: 8.33333333%; } - .offset-xl-2 { margin-left: 16.66666667%; } - .offset-xl-3 { margin-left: 25%; } - .offset-xl-4 { margin-left: 33.33333333%; } - .offset-xl-5 { margin-left: 41.66666667%; } - .offset-xl-6 { margin-left: 50%; } - .offset-xl-7 { margin-left: 58.33333333%; } - .offset-xl-8 { margin-left: 66.66666667%; } - .offset-xl-9 { margin-left: 75%; } - .offset-xl-10 { margin-left: 83.33333333%; } - .offset-xl-11 { margin-left: 91.66666667%; } - .g-xl-0, .gx-xl-0 { --tblr-gutter-x: 0; } - .g-xl-0, .gy-xl-0 { --tblr-gutter-y: 0; } - .g-xl-1, .gx-xl-1 { --tblr-gutter-x: 0.25rem; } - .g-xl-1, .gy-xl-1 { --tblr-gutter-y: 0.25rem; } - .g-xl-2, .gx-xl-2 { --tblr-gutter-x: 0.5rem; } - .g-xl-2, .gy-xl-2 { --tblr-gutter-y: 0.5rem; } - .g-xl-3, .gx-xl-3 { --tblr-gutter-x: 1rem; } - .g-xl-3, .gy-xl-3 { --tblr-gutter-y: 1rem; } - .g-xl-4, .gx-xl-4 { --tblr-gutter-x: 2rem; } - .g-xl-4, .gy-xl-4 { --tblr-gutter-y: 2rem; } - .g-xl-5, .gx-xl-5 { --tblr-gutter-x: 4rem; } - .g-xl-5, .gy-xl-5 { --tblr-gutter-y: 4rem; @@ -1692,217 +1576,175 @@ progress { .col-xxl { flex: 1 0 0%; } - .row-cols-xxl-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-xxl-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-xxl-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-xxl-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-xxl-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-xxl-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-xxl-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-xxl-auto { flex: 0 0 auto; width: auto; } - .col-xxl-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-xxl-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-xxl-3 { flex: 0 0 auto; width: 25%; } - .col-xxl-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-xxl-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-xxl-6 { flex: 0 0 auto; width: 50%; } - .col-xxl-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-xxl-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-xxl-9 { flex: 0 0 auto; width: 75%; } - .col-xxl-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-xxl-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-xxl-12 { flex: 0 0 auto; width: 100%; } - .offset-xxl-0 { margin-left: 0; } - .offset-xxl-1 { margin-left: 8.33333333%; } - .offset-xxl-2 { margin-left: 16.66666667%; } - .offset-xxl-3 { margin-left: 25%; } - .offset-xxl-4 { margin-left: 33.33333333%; } - .offset-xxl-5 { margin-left: 41.66666667%; } - .offset-xxl-6 { margin-left: 50%; } - .offset-xxl-7 { margin-left: 58.33333333%; } - .offset-xxl-8 { margin-left: 66.66666667%; } - .offset-xxl-9 { margin-left: 75%; } - .offset-xxl-10 { margin-left: 83.33333333%; } - .offset-xxl-11 { margin-left: 91.66666667%; } - .g-xxl-0, .gx-xxl-0 { --tblr-gutter-x: 0; } - .g-xxl-0, .gy-xxl-0 { --tblr-gutter-y: 0; } - .g-xxl-1, .gx-xxl-1 { --tblr-gutter-x: 0.25rem; } - .g-xxl-1, .gy-xxl-1 { --tblr-gutter-y: 0.25rem; } - .g-xxl-2, .gx-xxl-2 { --tblr-gutter-x: 0.5rem; } - .g-xxl-2, .gy-xxl-2 { --tblr-gutter-y: 0.5rem; } - .g-xxl-3, .gx-xxl-3 { --tblr-gutter-x: 1rem; } - .g-xxl-3, .gy-xxl-3 { --tblr-gutter-y: 1rem; } - .g-xxl-4, .gx-xxl-4 { --tblr-gutter-x: 2rem; } - .g-xxl-4, .gy-xxl-4 { --tblr-gutter-y: 2rem; } - .g-xxl-5, .gx-xxl-5 { --tblr-gutter-x: 4rem; } - .g-xxl-5, .gy-xxl-5 { --tblr-gutter-y: 4rem; } } .table, .markdown > table { + --tblr-table-color: inherit; --tblr-table-bg: transparent; + --tblr-table-border-color: rgba(98, 105, 118, 0.16); --tblr-table-accent-bg: transparent; --tblr-table-striped-color: inherit; --tblr-table-striped-bg: var(--tblr-border-color-light); @@ -1912,12 +1754,12 @@ progress { --tblr-table-hover-bg: rgba(0, 0, 0, 0.075); width: 100%; margin-bottom: 1rem; - color: inherit; + color: var(--tblr-table-color); vertical-align: top; - border-color: rgba(98, 105, 118, 0.16); + border-color: var(--tblr-table-border-color); } .table > :not(caption) > * > *, .markdown > table > :not(caption) > * > * { - padding: 0.75rem 0.5rem; + padding: 0.75rem 0.75rem; background-color: var(--tblr-table-bg); border-bottom-width: 1px; box-shadow: inset 0 0 0 9999px var(--tblr-table-accent-bg); @@ -1928,7 +1770,8 @@ progress { .table > thead, .markdown > table > thead { vertical-align: bottom; } -.table > :not(:first-child), .markdown > table > :not(:first-child) { + +.table-group-divider { border-top: 2px solid rgba(98, 105, 118, 0.16); } @@ -1959,6 +1802,11 @@ progress { color: var(--tblr-table-striped-color); } +.table-striped-columns > :not(caption) > tr > :nth-child(even) { + --tblr-table-accent-bg: var(--tblr-table-striped-bg); + color: var(--tblr-table-striped-color); +} + .table-active { --tblr-table-accent-bg: var(--tblr-table-active-bg); color: var(--tblr-table-active-color); @@ -1970,99 +1818,115 @@ progress { } .table-primary { + --tblr-table-color: #1e293b; --tblr-table-bg: #d2e1f3; + --tblr-table-border-color: #c0cfe1; --tblr-table-striped-bg: #c9d8ea; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #c0cfe1; --tblr-table-active-color: #fafbfc; --tblr-table-hover-bg: #c5d3e5; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #c0cfe1; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-secondary { + --tblr-table-color: #1e293b; --tblr-table-bg: #e0e1e4; + --tblr-table-border-color: #cdcfd3; --tblr-table-striped-bg: #d6d8dc; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #cdcfd3; --tblr-table-active-color: #fafbfc; --tblr-table-hover-bg: #d1d3d7; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #cdcfd3; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-success { + --tblr-table-color: #1e293b; --tblr-table-bg: #d5f0da; + --tblr-table-border-color: #c3dcca; --tblr-table-striped-bg: #cce6d2; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #c3dcca; --tblr-table-active-color: #1e293b; --tblr-table-hover-bg: #c7e1ce; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #c3dcca; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-info { + --tblr-table-color: #1e293b; --tblr-table-bg: #d9ebf9; + --tblr-table-border-color: #c6d8e6; --tblr-table-striped-bg: #d0e1f0; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #c6d8e6; --tblr-table-active-color: #1e293b; --tblr-table-hover-bg: #cbdceb; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #c6d8e6; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-warning { + --tblr-table-color: #1e293b; --tblr-table-bg: #fde1cd; + --tblr-table-border-color: #e7cfbe; --tblr-table-striped-bg: #f2d8c6; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #e7cfbe; --tblr-table-active-color: #1e293b; --tblr-table-hover-bg: #ecd3c2; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #e7cfbe; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-danger { + --tblr-table-color: #1e293b; --tblr-table-bg: #f7d7d7; + --tblr-table-border-color: #e1c6c7; --tblr-table-striped-bg: #eccecf; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #e1c6c7; --tblr-table-active-color: #fafbfc; --tblr-table-hover-bg: #e7cacb; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #e1c6c7; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-light { + --tblr-table-color: #1e293b; --tblr-table-bg: #fafbfc; + --tblr-table-border-color: #e4e6e9; --tblr-table-striped-bg: #eff1f2; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #e4e6e9; --tblr-table-active-color: #1e293b; --tblr-table-hover-bg: #eaebee; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #e4e6e9; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-dark { + --tblr-table-color: #fafbfc; --tblr-table-bg: #1e293b; + --tblr-table-border-color: #343e4e; --tblr-table-striped-bg: #293445; --tblr-table-striped-color: #fafbfc; --tblr-table-active-bg: #343e4e; --tblr-table-active-color: #fafbfc; --tblr-table-hover-bg: #2f3949; --tblr-table-hover-color: #fafbfc; - color: #fafbfc; - border-color: #343e4e; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-responsive { @@ -2191,7 +2055,7 @@ progress { color: #a5a9b1; opacity: 1; } -.form-control:disabled, .form-control[readonly] { +.form-control:disabled { background-color: #fafbfc; opacity: 1; } @@ -2241,31 +2105,6 @@ progress { .form-control:hover:not(:disabled):not([readonly])::file-selector-button { background-color: #eeeeef; } -.form-control::-webkit-file-upload-button { - padding: 0.4375rem 0.75rem; - margin: -0.4375rem -0.75rem; - -webkit-margin-end: 0.75rem; - margin-inline-end: 0.75rem; - color: inherit; - background-color: #fafbfc; - pointer-events: none; - border-color: inherit; - border-style: solid; - border-width: 0; - border-inline-end-width: 1px; - border-radius: 0; - -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .form-control::-webkit-file-upload-button { - -webkit-transition: none; - transition: none; - } -} -.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { - background-color: #eeeeef; -} .form-control-plaintext { display: block; @@ -2278,6 +2117,9 @@ progress { border: solid transparent; border-width: 1px 0; } +.form-control-plaintext:focus { + outline: 0; +} .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { padding-right: 0; padding-left: 0; @@ -2301,12 +2143,6 @@ progress { -webkit-margin-end: 0.5rem; margin-inline-end: 0.5rem; } -.form-control-sm::-webkit-file-upload-button { - padding: 0.125rem 0.5rem; - margin: -0.125rem -0.5rem; - -webkit-margin-end: 0.5rem; - margin-inline-end: 0.5rem; -} .form-control-lg { min-height: calc(1.4285714286em + 1rem + 2px); @@ -2326,12 +2162,6 @@ progress { -webkit-margin-end: 1.5rem; margin-inline-end: 1.5rem; } -.form-control-lg::-webkit-file-upload-button { - padding: 0.5rem 1.5rem; - margin: -0.5rem -1.5rem; - -webkit-margin-end: 1.5rem; - margin-inline-end: 1.5rem; -} textarea.form-control { min-height: calc(1.4285714286em + 0.875rem + 2px); @@ -2345,20 +2175,25 @@ textarea.form-control-lg { .form-control-color { width: 3rem; - height: auto; + height: calc(1.4285714286em + 0.875rem + 2px); padding: 0.4375rem; } .form-control-color:not(:disabled):not([readonly]) { cursor: pointer; } .form-control-color::-moz-color-swatch { - height: 1.4285714286em; + border: 0 !important; border-radius: 4px; } .form-control-color::-webkit-color-swatch { - height: 1.4285714286em; border-radius: 4px; } +.form-control-color.form-control-sm { + height: calc(1.4285714286em + 0.25rem + 2px); +} +.form-control-color.form-control-lg { + height: calc(1.4285714286em + 1rem + 2px); +} .form-select { display: block; @@ -2370,7 +2205,7 @@ textarea.form-control-lg { line-height: 1.4285714286; color: inherit; background-color: #ffffff; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right 0.75rem center; background-size: 16px 12px; @@ -2430,6 +2265,17 @@ textarea.form-control-lg { margin-left: -1.5rem; } +.form-check-reverse { + padding-right: 1.5rem; + padding-left: 0; + text-align: right; +} +.form-check-reverse .form-check-input { + float: right; + margin-right: -1.5rem; + margin-left: 0; +} + .form-check-input { width: 1rem; height: 1rem; @@ -2444,7 +2290,8 @@ textarea.form-control-lg { -moz-appearance: none; appearance: none; -webkit-print-color-adjust: exact; - color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; } .form-check-input[type=checkbox] { border-radius: 4px; @@ -2481,6 +2328,7 @@ textarea.form-control-lg { opacity: 0.5; } .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; opacity: 0.7; } @@ -2507,6 +2355,14 @@ textarea.form-control-lg { background-position: right center; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e"); } +.form-switch.form-check-reverse { + padding-right: 2.5rem; + padding-left: 0; +} +.form-switch.form-check-reverse .form-check-input { + margin-right: -2.5rem; + margin-left: 0; +} .form-check-inline { display: inline-block; @@ -2618,6 +2474,7 @@ textarea.form-control-lg { position: relative; } .form-floating > .form-control, +.form-floating > .form-control-plaintext, .form-floating > .form-select { height: calc(3.5rem + 2px); line-height: 1.25; @@ -2626,8 +2483,12 @@ textarea.form-control-lg { position: absolute; top: 0; left: 0; + width: 100%; height: 100%; padding: 1rem 0.75rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; pointer-events: none; border: 1px solid transparent; transform-origin: 0 0; @@ -2638,37 +2499,42 @@ textarea.form-control-lg { transition: none; } } -.form-floating > .form-control { +.form-floating > .form-control, +.form-floating > .form-control-plaintext { padding: 1rem 0.75rem; } -.form-floating > .form-control::-webkit-input-placeholder { +.form-floating > .form-control::-webkit-input-placeholder, .form-floating > .form-control-plaintext::-webkit-input-placeholder { color: transparent; } -.form-floating > .form-control::-moz-placeholder { +.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder { color: transparent; } -.form-floating > .form-control:-ms-input-placeholder { +.form-floating > .form-control:-ms-input-placeholder, .form-floating > .form-control-plaintext:-ms-input-placeholder { color: transparent; } -.form-floating > .form-control::-ms-input-placeholder { +.form-floating > .form-control::-ms-input-placeholder, .form-floating > .form-control-plaintext::-ms-input-placeholder { color: transparent; } -.form-floating > .form-control::placeholder { +.form-floating > .form-control::placeholder, +.form-floating > .form-control-plaintext::placeholder { color: transparent; } -.form-floating > .form-control:not(:-moz-placeholder-shown) { +.form-floating > .form-control:not(:-moz-placeholder-shown), .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { padding-top: 1.625rem; padding-bottom: 0.625rem; } -.form-floating > .form-control:not(:-ms-input-placeholder) { +.form-floating > .form-control:not(:-ms-input-placeholder), .form-floating > .form-control-plaintext:not(:-ms-input-placeholder) { padding-top: 1.625rem; padding-bottom: 0.625rem; } -.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) { +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { padding-top: 1.625rem; padding-bottom: 0.625rem; } -.form-floating > .form-control:-webkit-autofill { +.form-floating > .form-control:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { padding-top: 1.625rem; padding-bottom: 0.625rem; } @@ -2686,6 +2552,7 @@ textarea.form-control-lg { } .form-floating > .form-control:focus ~ label, .form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, .form-floating > .form-select ~ label { opacity: 0.65; transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); @@ -2694,6 +2561,9 @@ textarea.form-control-lg { opacity: 0.65; transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } +.form-floating > .form-control-plaintext ~ label { + border-width: 1px 0; +} .input-group { position: relative; @@ -2703,14 +2573,16 @@ textarea.form-control-lg { width: 100%; } .input-group > .form-control, -.input-group > .form-select { +.input-group > .form-select, +.input-group > .form-floating { position: relative; flex: 1 1 auto; width: 1%; min-width: 0; } .input-group > .form-control:focus, -.input-group > .form-select:focus { +.input-group > .form-select:focus, +.input-group > .form-floating:focus-within { z-index: 3; } .input-group .btn { @@ -2759,17 +2631,23 @@ textarea.form-control-lg { padding-right: 3rem; } -.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu), -.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3) { +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { border-top-right-radius: 0; border-bottom-right-radius: 0; } -.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu), -.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4) { +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { border-top-right-radius: 0; border-bottom-right-radius: 0; } -.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { +.input-group > :not(:first-child):not(.dropdown-menu):not(.form-floating):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback), +.input-group > .form-floating:not(:first-child) > .form-control, +.input-group > .form-floating:not(:first-child) > .form-select { margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; @@ -2827,7 +2705,7 @@ textarea.form-control-lg { } .was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { padding-right: 4.125rem; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e"); background-position: right 0.75rem center, center right 2.25rem; background-size: 16px 12px, calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); } @@ -2836,6 +2714,10 @@ textarea.form-control-lg { box-shadow: 0 0 0 0.25rem rgba(47, 179, 68, 0.25); } +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.4285714286em + 0.875rem)); +} + .was-validated .form-check-input:valid, .form-check-input.is-valid { border-color: #2fb344; } @@ -2916,7 +2798,7 @@ textarea.form-control-lg { } .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { padding-right: 4.125rem; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e"); background-position: right 0.75rem center, center right 2.25rem; background-size: 16px 12px, calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); } @@ -2925,6 +2807,10 @@ textarea.form-control-lg { box-shadow: 0 0 0 0.25rem rgba(214, 57, 57, 0.25); } +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.4285714286em + 0.875rem)); +} + .was-validated .form-check-input:invalid, .form-check-input.is-invalid { border-color: #d63939; } @@ -2954,10 +2840,27 @@ textarea.form-control-lg { } .btn { + --tblr-btn-padding-x: 1rem; + --tblr-btn-padding-y: 0.4375rem; + --tblr-btn-font-family: ; + --tblr-btn-font-size: 0.875rem; + --tblr-btn-font-weight: 500; + --tblr-btn-line-height: 1.4285714286; + --tblr-btn-color: #1e293b; + --tblr-btn-bg: transparent; + --tblr-btn-border-width: 1px; + --tblr-btn-border-color: transparent; + --tblr-btn-border-radius: 4px; + --tblr-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --tblr-btn-disabled-opacity: 0.65; + --tblr-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--tblr-btn-focus-shadow-rgb), .5); display: inline-block; - font-weight: 500; - line-height: 1.4285714286; - color: #1e293b; + padding: var(--tblr-btn-padding-y) var(--tblr-btn-padding-x); + font-family: var(--tblr-btn-font-family); + font-size: var(--tblr-btn-font-size); + font-weight: var(--tblr-btn-font-weight); + line-height: var(--tblr-btn-line-height); + color: var(--tblr-btn-color); text-align: center; vertical-align: middle; cursor: pointer; @@ -2965,11 +2868,9 @@ textarea.form-control-lg { -moz-user-select: none; -ms-user-select: none; user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.4375rem 1rem; - font-size: 0.875rem; - border-radius: 4px; + border: var(--tblr-btn-border-width) solid var(--tblr-btn-border-color); + border-radius: var(--tblr-btn-border-radius); + background-color: var(--tblr-btn-bg); transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } @media (prefers-reduced-motion: reduce) { @@ -2978,44 +2879,1295 @@ textarea.form-control-lg { } } .btn:hover { - color: #1e293b; + color: var(--tblr-btn-hover-color); text-decoration: none; + background-color: var(--tblr-btn-hover-bg); + border-color: var(--tblr-btn-hover-border-color); } .btn-check:focus + .btn, .btn:focus { + color: var(--tblr-btn-hover-color); + background-color: var(--tblr-btn-hover-bg); + border-color: var(--tblr-btn-hover-border-color); outline: 0; - box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + box-shadow: var(--tblr-btn-focus-box-shadow); +} +.btn-check:checked + .btn, .btn-check:active + .btn, .btn:active, .btn.active, .btn.show { + color: var(--tblr-btn-active-color); + background-color: var(--tblr-btn-active-bg); + border-color: var(--tblr-btn-active-border-color); +} +.btn-check:checked + .btn:focus, .btn-check:active + .btn:focus, .btn:active:focus, .btn.active:focus, .btn.show:focus { + box-shadow: var(--tblr-btn-focus-box-shadow); } .btn:disabled, .btn.disabled, fieldset:disabled .btn { + color: var(--tblr-btn-disabled-color); pointer-events: none; - opacity: 0.65; + background-color: var(--tblr-btn-disabled-bg); + border-color: var(--tblr-btn-disabled-border-color); + opacity: var(--tblr-btn-disabled-opacity); +} + +.btn-primary { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1b5ba7; + --tblr-btn-hover-border-color: #1a569d; + --tblr-btn-focus-shadow-rgb: 65, 129, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1a569d; + --tblr-btn-active-border-color: #185093; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #206bc4; + --tblr-btn-disabled-border-color: #206bc4; +} + +.btn-secondary { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #626976; + --tblr-btn-border-color: #626976; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #535964; + --tblr-btn-hover-border-color: #4e545e; + --tblr-btn-focus-shadow-rgb: 121, 127, 138; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4e545e; + --tblr-btn-active-border-color: #4a4f59; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #626976; + --tblr-btn-disabled-border-color: #626976; +} + +.btn-success { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #2fb344; + --tblr-btn-border-color: #2fb344; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #28983a; + --tblr-btn-hover-border-color: #268f36; + --tblr-btn-focus-shadow-rgb: 77, 190, 96; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #268f36; + --tblr-btn-active-border-color: #238633; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #2fb344; + --tblr-btn-disabled-border-color: #2fb344; +} + +.btn-info { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #4299e1; + --tblr-btn-border-color: #4299e1; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3882bf; + --tblr-btn-hover-border-color: #357ab4; + --tblr-btn-focus-shadow-rgb: 94, 168, 229; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #357ab4; + --tblr-btn-active-border-color: #3273a9; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #4299e1; + --tblr-btn-disabled-border-color: #4299e1; +} + +.btn-warning { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #f76707; + --tblr-btn-border-color: #f76707; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d25806; + --tblr-btn-hover-border-color: #c65206; + --tblr-btn-focus-shadow-rgb: 247, 125, 44; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #c65206; + --tblr-btn-active-border-color: #b94d05; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #f76707; + --tblr-btn-disabled-border-color: #f76707; +} + +.btn-danger { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #d63939; + --tblr-btn-border-color: #d63939; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #b63030; + --tblr-btn-hover-border-color: #ab2e2e; + --tblr-btn-focus-shadow-rgb: 219, 86, 86; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ab2e2e; + --tblr-btn-active-border-color: #a12b2b; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #d63939; + --tblr-btn-disabled-border-color: #d63939; +} + +.btn-light { + --tblr-btn-color: #1e293b; + --tblr-btn-bg: #fafbfc; + --tblr-btn-border-color: #fafbfc; + --tblr-btn-hover-color: #1e293b; + --tblr-btn-hover-bg: #d5d5d6; + --tblr-btn-hover-border-color: #c8c9ca; + --tblr-btn-focus-shadow-rgb: 217, 220, 223; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #c8c9ca; + --tblr-btn-active-border-color: #bcbcbd; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1e293b; + --tblr-btn-disabled-bg: #fafbfc; + --tblr-btn-disabled-border-color: #fafbfc; +} + +.btn-dark { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #1e293b; + --tblr-btn-border-color: #1e293b; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #404958; + --tblr-btn-hover-border-color: #353e4f; + --tblr-btn-focus-shadow-rgb: 63, 73, 88; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4b5462; + --tblr-btn-active-border-color: #353e4f; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #1e293b; + --tblr-btn-disabled-border-color: #1e293b; +} + +.btn-muted { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #626976; + --tblr-btn-border-color: #626976; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #535964; + --tblr-btn-hover-border-color: #4e545e; + --tblr-btn-focus-shadow-rgb: 121, 127, 138; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4e545e; + --tblr-btn-active-border-color: #4a4f59; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #626976; + --tblr-btn-disabled-border-color: #626976; +} + +.btn-blue { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1b5ba7; + --tblr-btn-hover-border-color: #1a569d; + --tblr-btn-focus-shadow-rgb: 65, 129, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1a569d; + --tblr-btn-active-border-color: #185093; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #206bc4; + --tblr-btn-disabled-border-color: #206bc4; +} + +.btn-azure { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #4299e1; + --tblr-btn-border-color: #4299e1; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3882bf; + --tblr-btn-hover-border-color: #357ab4; + --tblr-btn-focus-shadow-rgb: 94, 168, 229; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #357ab4; + --tblr-btn-active-border-color: #3273a9; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #4299e1; + --tblr-btn-disabled-border-color: #4299e1; +} + +.btn-indigo { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #4263eb; + --tblr-btn-border-color: #4263eb; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3854c8; + --tblr-btn-hover-border-color: #354fbc; + --tblr-btn-focus-shadow-rgb: 94, 122, 238; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #354fbc; + --tblr-btn-active-border-color: #324ab0; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #4263eb; + --tblr-btn-disabled-border-color: #4263eb; +} + +.btn-purple { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #ae3ec9; + --tblr-btn-border-color: #ae3ec9; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #9435ab; + --tblr-btn-hover-border-color: #8b32a1; + --tblr-btn-focus-shadow-rgb: 185, 90, 209; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #8b32a1; + --tblr-btn-active-border-color: #832f97; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #ae3ec9; + --tblr-btn-disabled-border-color: #ae3ec9; +} + +.btn-pink { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #d6336c; + --tblr-btn-border-color: #d6336c; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #b62b5c; + --tblr-btn-hover-border-color: #ab2956; + --tblr-btn-focus-shadow-rgb: 219, 81, 130; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ab2956; + --tblr-btn-active-border-color: #a12651; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #d6336c; + --tblr-btn-disabled-border-color: #d6336c; +} + +.btn-red { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #d63939; + --tblr-btn-border-color: #d63939; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #b63030; + --tblr-btn-hover-border-color: #ab2e2e; + --tblr-btn-focus-shadow-rgb: 219, 86, 86; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ab2e2e; + --tblr-btn-active-border-color: #a12b2b; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #d63939; + --tblr-btn-disabled-border-color: #d63939; +} + +.btn-orange { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #f76707; + --tblr-btn-border-color: #f76707; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d25806; + --tblr-btn-hover-border-color: #c65206; + --tblr-btn-focus-shadow-rgb: 247, 125, 44; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #c65206; + --tblr-btn-active-border-color: #b94d05; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #f76707; + --tblr-btn-disabled-border-color: #f76707; +} + +.btn-yellow { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #f59f00; + --tblr-btn-border-color: #f59f00; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d08700; + --tblr-btn-hover-border-color: #c47f00; + --tblr-btn-focus-shadow-rgb: 246, 173, 38; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #c47f00; + --tblr-btn-active-border-color: #b87700; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #f59f00; + --tblr-btn-disabled-border-color: #f59f00; +} + +.btn-lime { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #74b816; + --tblr-btn-border-color: #74b816; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #639c13; + --tblr-btn-hover-border-color: #5d9312; + --tblr-btn-focus-shadow-rgb: 136, 194, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #5d9312; + --tblr-btn-active-border-color: #578a11; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #74b816; + --tblr-btn-disabled-border-color: #74b816; +} + +.btn-green { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #2fb344; + --tblr-btn-border-color: #2fb344; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #28983a; + --tblr-btn-hover-border-color: #268f36; + --tblr-btn-focus-shadow-rgb: 77, 190, 96; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #268f36; + --tblr-btn-active-border-color: #238633; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #2fb344; + --tblr-btn-disabled-border-color: #2fb344; +} + +.btn-teal { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #0ca678; + --tblr-btn-border-color: #0ca678; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0a8d66; + --tblr-btn-hover-border-color: #0a8560; + --tblr-btn-focus-shadow-rgb: 48, 179, 140; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0a8560; + --tblr-btn-active-border-color: #097d5a; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #0ca678; + --tblr-btn-disabled-border-color: #0ca678; +} + +.btn-cyan { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #17a2b8; + --tblr-btn-border-color: #17a2b8; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #148a9c; + --tblr-btn-hover-border-color: #128293; + --tblr-btn-focus-shadow-rgb: 57, 175, 194; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #128293; + --tblr-btn-active-border-color: #117a8a; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #17a2b8; + --tblr-btn-disabled-border-color: #17a2b8; +} + +.btn-facebook { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #3b5998; + --tblr-btn-border-color: #3b5998; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #324c81; + --tblr-btn-hover-border-color: #2f477a; + --tblr-btn-focus-shadow-rgb: 88, 113, 167; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2f477a; + --tblr-btn-active-border-color: #2c4372; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #3b5998; + --tblr-btn-disabled-border-color: #3b5998; +} + +.btn-twitter { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #1da1f2; + --tblr-btn-border-color: #1da1f2; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1989ce; + --tblr-btn-hover-border-color: #1781c2; + --tblr-btn-focus-shadow-rgb: 62, 175, 244; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1781c2; + --tblr-btn-active-border-color: #1679b6; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #1da1f2; + --tblr-btn-disabled-border-color: #1da1f2; +} + +.btn-linkedin { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #0a66c2; + --tblr-btn-border-color: #0a66c2; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0957a5; + --tblr-btn-hover-border-color: #08529b; + --tblr-btn-focus-shadow-rgb: 46, 124, 203; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #08529b; + --tblr-btn-active-border-color: #084d92; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #0a66c2; + --tblr-btn-disabled-border-color: #0a66c2; +} + +.btn-google { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #dc4e41; + --tblr-btn-border-color: #dc4e41; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #bb4237; + --tblr-btn-hover-border-color: #b03e34; + --tblr-btn-focus-shadow-rgb: 225, 104, 93; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #b03e34; + --tblr-btn-active-border-color: #a53b31; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #dc4e41; + --tblr-btn-disabled-border-color: #dc4e41; +} + +.btn-youtube { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #ff0000; + --tblr-btn-border-color: #ff0000; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d90000; + --tblr-btn-hover-border-color: #cc0000; + --tblr-btn-focus-shadow-rgb: 254, 38, 38; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #cc0000; + --tblr-btn-active-border-color: #bf0000; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #ff0000; + --tblr-btn-disabled-border-color: #ff0000; +} + +.btn-vimeo { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #1ab7ea; + --tblr-btn-border-color: #1ab7ea; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #169cc7; + --tblr-btn-hover-border-color: #1592bb; + --tblr-btn-focus-shadow-rgb: 60, 193, 237; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1592bb; + --tblr-btn-active-border-color: #1489b0; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #1ab7ea; + --tblr-btn-disabled-border-color: #1ab7ea; +} + +.btn-dribbble { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #ea4c89; + --tblr-btn-border-color: #ea4c89; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #c74174; + --tblr-btn-hover-border-color: #bb3d6e; + --tblr-btn-focus-shadow-rgb: 236, 102, 154; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #bb3d6e; + --tblr-btn-active-border-color: #b03967; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #ea4c89; + --tblr-btn-disabled-border-color: #ea4c89; +} + +.btn-github { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #181717; + --tblr-btn-border-color: #181717; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #141414; + --tblr-btn-hover-border-color: #131212; + --tblr-btn-focus-shadow-rgb: 58, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #131212; + --tblr-btn-active-border-color: #121111; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #181717; + --tblr-btn-disabled-border-color: #181717; +} + +.btn-instagram { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #e4405f; + --tblr-btn-border-color: #e4405f; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #c23651; + --tblr-btn-hover-border-color: #b6334c; + --tblr-btn-focus-shadow-rgb: 231, 92, 119; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #b6334c; + --tblr-btn-active-border-color: #ab3047; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #e4405f; + --tblr-btn-disabled-border-color: #e4405f; +} + +.btn-pinterest { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #bd081c; + --tblr-btn-border-color: #bd081c; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #a10718; + --tblr-btn-hover-border-color: #970616; + --tblr-btn-focus-shadow-rgb: 198, 44, 62; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #970616; + --tblr-btn-active-border-color: #8e0615; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #bd081c; + --tblr-btn-disabled-border-color: #bd081c; +} + +.btn-vk { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #6383a8; + --tblr-btn-border-color: #6383a8; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #546f8f; + --tblr-btn-hover-border-color: #4f6986; + --tblr-btn-focus-shadow-rgb: 122, 149, 181; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4f6986; + --tblr-btn-active-border-color: #4a627e; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #6383a8; + --tblr-btn-disabled-border-color: #6383a8; +} + +.btn-rss { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #ffa500; + --tblr-btn-border-color: #ffa500; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d98c00; + --tblr-btn-hover-border-color: #cc8400; + --tblr-btn-focus-shadow-rgb: 254, 178, 38; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #cc8400; + --tblr-btn-active-border-color: #bf7c00; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #ffa500; + --tblr-btn-disabled-border-color: #ffa500; +} + +.btn-flickr { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #0063dc; + --tblr-btn-border-color: #0063dc; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0054bb; + --tblr-btn-hover-border-color: #004fb0; + --tblr-btn-focus-shadow-rgb: 38, 122, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #004fb0; + --tblr-btn-active-border-color: #004aa5; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #0063dc; + --tblr-btn-disabled-border-color: #0063dc; +} + +.btn-bitbucket { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #0052cc; + --tblr-btn-border-color: #0052cc; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0046ad; + --tblr-btn-hover-border-color: #0042a3; + --tblr-btn-focus-shadow-rgb: 38, 107, 211; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0042a3; + --tblr-btn-active-border-color: #003e99; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #0052cc; + --tblr-btn-disabled-border-color: #0052cc; +} + +.btn-tabler { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1b5ba7; + --tblr-btn-hover-border-color: #1a569d; + --tblr-btn-focus-shadow-rgb: 65, 129, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1a569d; + --tblr-btn-active-border-color: #185093; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #206bc4; + --tblr-btn-disabled-border-color: #206bc4; +} + +.btn-outline-primary { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: #206bc4; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #206bc4; + --tblr-gradient: none; +} + +.btn-outline-secondary { + --tblr-btn-color: #626976; + --tblr-btn-border-color: #626976; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #626976; + --tblr-btn-hover-border-color: #626976; + --tblr-btn-focus-shadow-rgb: 98, 105, 118; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #626976; + --tblr-btn-active-border-color: #626976; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #626976; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #626976; + --tblr-gradient: none; +} + +.btn-outline-success { + --tblr-btn-color: #2fb344; + --tblr-btn-border-color: #2fb344; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #2fb344; + --tblr-btn-hover-border-color: #2fb344; + --tblr-btn-focus-shadow-rgb: 47, 179, 68; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2fb344; + --tblr-btn-active-border-color: #2fb344; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #2fb344; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #2fb344; + --tblr-gradient: none; +} + +.btn-outline-info { + --tblr-btn-color: #4299e1; + --tblr-btn-border-color: #4299e1; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4299e1; + --tblr-btn-hover-border-color: #4299e1; + --tblr-btn-focus-shadow-rgb: 66, 153, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4299e1; + --tblr-btn-active-border-color: #4299e1; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4299e1; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #4299e1; + --tblr-gradient: none; +} + +.btn-outline-warning { + --tblr-btn-color: #f76707; + --tblr-btn-border-color: #f76707; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f76707; + --tblr-btn-hover-border-color: #f76707; + --tblr-btn-focus-shadow-rgb: 247, 103, 7; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f76707; + --tblr-btn-active-border-color: #f76707; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f76707; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #f76707; + --tblr-gradient: none; +} + +.btn-outline-danger { + --tblr-btn-color: #d63939; + --tblr-btn-border-color: #d63939; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d63939; + --tblr-btn-hover-border-color: #d63939; + --tblr-btn-focus-shadow-rgb: 214, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d63939; + --tblr-btn-active-border-color: #d63939; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d63939; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #d63939; + --tblr-gradient: none; +} + +.btn-outline-light { + --tblr-btn-color: #fafbfc; + --tblr-btn-border-color: #fafbfc; + --tblr-btn-hover-color: #1e293b; + --tblr-btn-hover-bg: #fafbfc; + --tblr-btn-hover-border-color: #fafbfc; + --tblr-btn-focus-shadow-rgb: 250, 251, 252; + --tblr-btn-active-color: #1e293b; + --tblr-btn-active-bg: #fafbfc; + --tblr-btn-active-border-color: #fafbfc; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #fafbfc; + --tblr-gradient: none; +} + +.btn-outline-dark { + --tblr-btn-color: #1e293b; + --tblr-btn-border-color: #1e293b; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1e293b; + --tblr-btn-hover-border-color: #1e293b; + --tblr-btn-focus-shadow-rgb: 30, 41, 59; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1e293b; + --tblr-btn-active-border-color: #1e293b; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1e293b; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #1e293b; + --tblr-gradient: none; +} + +.btn-outline-muted { + --tblr-btn-color: #626976; + --tblr-btn-border-color: #626976; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #626976; + --tblr-btn-hover-border-color: #626976; + --tblr-btn-focus-shadow-rgb: 98, 105, 118; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #626976; + --tblr-btn-active-border-color: #626976; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #626976; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #626976; + --tblr-gradient: none; +} + +.btn-outline-blue { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: #206bc4; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #206bc4; + --tblr-gradient: none; +} + +.btn-outline-azure { + --tblr-btn-color: #4299e1; + --tblr-btn-border-color: #4299e1; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4299e1; + --tblr-btn-hover-border-color: #4299e1; + --tblr-btn-focus-shadow-rgb: 66, 153, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4299e1; + --tblr-btn-active-border-color: #4299e1; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4299e1; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #4299e1; + --tblr-gradient: none; +} + +.btn-outline-indigo { + --tblr-btn-color: #4263eb; + --tblr-btn-border-color: #4263eb; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4263eb; + --tblr-btn-hover-border-color: #4263eb; + --tblr-btn-focus-shadow-rgb: 66, 99, 235; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4263eb; + --tblr-btn-active-border-color: #4263eb; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4263eb; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #4263eb; + --tblr-gradient: none; +} + +.btn-outline-purple { + --tblr-btn-color: #ae3ec9; + --tblr-btn-border-color: #ae3ec9; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ae3ec9; + --tblr-btn-hover-border-color: #ae3ec9; + --tblr-btn-focus-shadow-rgb: 174, 62, 201; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ae3ec9; + --tblr-btn-active-border-color: #ae3ec9; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ae3ec9; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #ae3ec9; + --tblr-gradient: none; +} + +.btn-outline-pink { + --tblr-btn-color: #d6336c; + --tblr-btn-border-color: #d6336c; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d6336c; + --tblr-btn-hover-border-color: #d6336c; + --tblr-btn-focus-shadow-rgb: 214, 51, 108; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d6336c; + --tblr-btn-active-border-color: #d6336c; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d6336c; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #d6336c; + --tblr-gradient: none; +} + +.btn-outline-red { + --tblr-btn-color: #d63939; + --tblr-btn-border-color: #d63939; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d63939; + --tblr-btn-hover-border-color: #d63939; + --tblr-btn-focus-shadow-rgb: 214, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d63939; + --tblr-btn-active-border-color: #d63939; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d63939; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #d63939; + --tblr-gradient: none; +} + +.btn-outline-orange { + --tblr-btn-color: #f76707; + --tblr-btn-border-color: #f76707; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f76707; + --tblr-btn-hover-border-color: #f76707; + --tblr-btn-focus-shadow-rgb: 247, 103, 7; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f76707; + --tblr-btn-active-border-color: #f76707; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f76707; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #f76707; + --tblr-gradient: none; +} + +.btn-outline-yellow { + --tblr-btn-color: #f59f00; + --tblr-btn-border-color: #f59f00; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f59f00; + --tblr-btn-hover-border-color: #f59f00; + --tblr-btn-focus-shadow-rgb: 245, 159, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f59f00; + --tblr-btn-active-border-color: #f59f00; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f59f00; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #f59f00; + --tblr-gradient: none; +} + +.btn-outline-lime { + --tblr-btn-color: #74b816; + --tblr-btn-border-color: #74b816; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #74b816; + --tblr-btn-hover-border-color: #74b816; + --tblr-btn-focus-shadow-rgb: 116, 184, 22; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #74b816; + --tblr-btn-active-border-color: #74b816; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #74b816; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #74b816; + --tblr-gradient: none; +} + +.btn-outline-green { + --tblr-btn-color: #2fb344; + --tblr-btn-border-color: #2fb344; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #2fb344; + --tblr-btn-hover-border-color: #2fb344; + --tblr-btn-focus-shadow-rgb: 47, 179, 68; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2fb344; + --tblr-btn-active-border-color: #2fb344; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #2fb344; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #2fb344; + --tblr-gradient: none; +} + +.btn-outline-teal { + --tblr-btn-color: #0ca678; + --tblr-btn-border-color: #0ca678; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0ca678; + --tblr-btn-hover-border-color: #0ca678; + --tblr-btn-focus-shadow-rgb: 12, 166, 120; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0ca678; + --tblr-btn-active-border-color: #0ca678; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0ca678; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #0ca678; + --tblr-gradient: none; +} + +.btn-outline-cyan { + --tblr-btn-color: #17a2b8; + --tblr-btn-border-color: #17a2b8; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #17a2b8; + --tblr-btn-hover-border-color: #17a2b8; + --tblr-btn-focus-shadow-rgb: 23, 162, 184; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #17a2b8; + --tblr-btn-active-border-color: #17a2b8; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #17a2b8; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #17a2b8; + --tblr-gradient: none; +} + +.btn-outline-facebook { + --tblr-btn-color: #3b5998; + --tblr-btn-border-color: #3b5998; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3b5998; + --tblr-btn-hover-border-color: #3b5998; + --tblr-btn-focus-shadow-rgb: 59, 89, 152; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #3b5998; + --tblr-btn-active-border-color: #3b5998; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #3b5998; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #3b5998; + --tblr-gradient: none; +} + +.btn-outline-twitter { + --tblr-btn-color: #1da1f2; + --tblr-btn-border-color: #1da1f2; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1da1f2; + --tblr-btn-hover-border-color: #1da1f2; + --tblr-btn-focus-shadow-rgb: 29, 161, 242; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1da1f2; + --tblr-btn-active-border-color: #1da1f2; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1da1f2; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #1da1f2; + --tblr-gradient: none; +} + +.btn-outline-linkedin { + --tblr-btn-color: #0a66c2; + --tblr-btn-border-color: #0a66c2; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0a66c2; + --tblr-btn-hover-border-color: #0a66c2; + --tblr-btn-focus-shadow-rgb: 10, 102, 194; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0a66c2; + --tblr-btn-active-border-color: #0a66c2; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0a66c2; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #0a66c2; + --tblr-gradient: none; +} + +.btn-outline-google { + --tblr-btn-color: #dc4e41; + --tblr-btn-border-color: #dc4e41; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #dc4e41; + --tblr-btn-hover-border-color: #dc4e41; + --tblr-btn-focus-shadow-rgb: 220, 78, 65; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #dc4e41; + --tblr-btn-active-border-color: #dc4e41; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #dc4e41; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #dc4e41; + --tblr-gradient: none; +} + +.btn-outline-youtube { + --tblr-btn-color: #ff0000; + --tblr-btn-border-color: #ff0000; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ff0000; + --tblr-btn-hover-border-color: #ff0000; + --tblr-btn-focus-shadow-rgb: 255, 0, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ff0000; + --tblr-btn-active-border-color: #ff0000; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ff0000; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #ff0000; + --tblr-gradient: none; +} + +.btn-outline-vimeo { + --tblr-btn-color: #1ab7ea; + --tblr-btn-border-color: #1ab7ea; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1ab7ea; + --tblr-btn-hover-border-color: #1ab7ea; + --tblr-btn-focus-shadow-rgb: 26, 183, 234; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1ab7ea; + --tblr-btn-active-border-color: #1ab7ea; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1ab7ea; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #1ab7ea; + --tblr-gradient: none; +} + +.btn-outline-dribbble { + --tblr-btn-color: #ea4c89; + --tblr-btn-border-color: #ea4c89; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ea4c89; + --tblr-btn-hover-border-color: #ea4c89; + --tblr-btn-focus-shadow-rgb: 234, 76, 137; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ea4c89; + --tblr-btn-active-border-color: #ea4c89; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ea4c89; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #ea4c89; + --tblr-gradient: none; +} + +.btn-outline-github { + --tblr-btn-color: #181717; + --tblr-btn-border-color: #181717; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #181717; + --tblr-btn-hover-border-color: #181717; + --tblr-btn-focus-shadow-rgb: 24, 23, 23; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #181717; + --tblr-btn-active-border-color: #181717; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #181717; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #181717; + --tblr-gradient: none; +} + +.btn-outline-instagram { + --tblr-btn-color: #e4405f; + --tblr-btn-border-color: #e4405f; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #e4405f; + --tblr-btn-hover-border-color: #e4405f; + --tblr-btn-focus-shadow-rgb: 228, 64, 95; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #e4405f; + --tblr-btn-active-border-color: #e4405f; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #e4405f; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #e4405f; + --tblr-gradient: none; +} + +.btn-outline-pinterest { + --tblr-btn-color: #bd081c; + --tblr-btn-border-color: #bd081c; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #bd081c; + --tblr-btn-hover-border-color: #bd081c; + --tblr-btn-focus-shadow-rgb: 189, 8, 28; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #bd081c; + --tblr-btn-active-border-color: #bd081c; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #bd081c; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #bd081c; + --tblr-gradient: none; +} + +.btn-outline-vk { + --tblr-btn-color: #6383a8; + --tblr-btn-border-color: #6383a8; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #6383a8; + --tblr-btn-hover-border-color: #6383a8; + --tblr-btn-focus-shadow-rgb: 99, 131, 168; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #6383a8; + --tblr-btn-active-border-color: #6383a8; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #6383a8; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #6383a8; + --tblr-gradient: none; +} + +.btn-outline-rss { + --tblr-btn-color: #ffa500; + --tblr-btn-border-color: #ffa500; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ffa500; + --tblr-btn-hover-border-color: #ffa500; + --tblr-btn-focus-shadow-rgb: 255, 165, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ffa500; + --tblr-btn-active-border-color: #ffa500; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ffa500; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #ffa500; + --tblr-gradient: none; +} + +.btn-outline-flickr { + --tblr-btn-color: #0063dc; + --tblr-btn-border-color: #0063dc; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0063dc; + --tblr-btn-hover-border-color: #0063dc; + --tblr-btn-focus-shadow-rgb: 0, 99, 220; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0063dc; + --tblr-btn-active-border-color: #0063dc; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0063dc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #0063dc; + --tblr-gradient: none; +} + +.btn-outline-bitbucket { + --tblr-btn-color: #0052cc; + --tblr-btn-border-color: #0052cc; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0052cc; + --tblr-btn-hover-border-color: #0052cc; + --tblr-btn-focus-shadow-rgb: 0, 82, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0052cc; + --tblr-btn-active-border-color: #0052cc; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0052cc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #0052cc; + --tblr-gradient: none; +} + +.btn-outline-tabler { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: #206bc4; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #206bc4; + --tblr-gradient: none; } .btn-link { - font-weight: 400; - color: #206bc4; + --tblr-btn-font-weight: 400; + --tblr-btn-color: var(--tblr-link-color); + --tblr-btn-bg: transparent; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: var(--tblr-link-hover-color); + --tblr-btn-hover-border-color: transparent; + --tblr-btn-active-color: var(--tblr-link-hover-color); + --tblr-btn-active-border-color: transparent; + --tblr-btn-disabled-color: #475569; + --tblr-btn-disabled-border-color: transparent; + --tblr-btn-box-shadow: none; + --tblr-btn-focus-shadow-rgb: 65, 129, 204; text-decoration: none; } -.btn-link:hover { - color: #1a569d; +.btn-link:hover, .btn-link:focus { text-decoration: underline; } .btn-link:focus { - text-decoration: underline; + color: var(--tblr-btn-color); } -.btn-link:disabled, .btn-link.disabled { - color: #475569; +.btn-link:hover { + color: var(--tblr-btn-hover-color); } .btn-lg, .btn-group-lg > .btn { - padding: 0.5rem 1.5rem; - font-size: 1.25rem; - border-radius: 8px; + --tblr-btn-padding-y: 0.5rem; + --tblr-btn-padding-x: 1.5rem; + --tblr-btn-font-size: 1.25rem; + --tblr-btn-border-radius: 8px; } .btn-sm, .btn-group-sm > .btn { - padding: 0.125rem 0.5rem; - font-size: 0.75rem; - border-radius: 2px; + --tblr-btn-padding-y: 0.125rem; + --tblr-btn-padding-x: 0.5rem; + --tblr-btn-font-size: 0.75rem; + --tblr-btn-border-radius: 2px; } .fade { @@ -3058,7 +4210,9 @@ textarea.form-control-lg { .dropup, .dropend, .dropdown, -.dropstart { +.dropstart, +.dropup-center, +.dropdown-center { position: relative; } @@ -3079,25 +4233,50 @@ textarea.form-control-lg { } .dropdown-menu { + --tblr-dropdown-min-width: 11rem; + --tblr-dropdown-padding-x: 0; + --tblr-dropdown-padding-y: 0.25rem; + --tblr-dropdown-spacer: 1px; + --tblr-dropdown-font-size: 0.875rem; + --tblr-dropdown-color: #1e293b; + --tblr-dropdown-bg: #ffffff; + --tblr-dropdown-border-color: rgba(98, 105, 118, 0.16); + --tblr-dropdown-border-radius: 4px; + --tblr-dropdown-border-width: 1px; + --tblr-dropdown-inner-border-radius: 3px; + --tblr-dropdown-divider-bg: rgba(98, 105, 118, 0.16); + --tblr-dropdown-divider-margin-y: 0.5rem; + --tblr-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --tblr-dropdown-link-color: inherit; + --tblr-dropdown-link-hover-color: inherit; + --tblr-dropdown-link-hover-bg: rgba(98, 105, 118, 0.04); + --tblr-dropdown-link-active-color: #206bc4; + --tblr-dropdown-link-active-bg: rgba(32, 107, 196, 0.04); + --tblr-dropdown-link-disabled-color: #64748b; + --tblr-dropdown-item-padding-x: 0.75rem; + --tblr-dropdown-item-padding-y: 0.5rem; + --tblr-dropdown-header-color: #475569; + --tblr-dropdown-header-padding-x: 0.75rem; + --tblr-dropdown-header-padding-y: 0.25rem; position: absolute; z-index: 1000; display: none; - min-width: 11rem; - padding: 0.25rem 0; + min-width: var(--tblr-dropdown-min-width); + padding: var(--tblr-dropdown-padding-y) var(--tblr-dropdown-padding-x); margin: 0; - font-size: 0.875rem; - color: #1e293b; + font-size: var(--tblr-dropdown-font-size); + color: var(--tblr-dropdown-color); text-align: left; list-style: none; - background-color: #ffffff; + background-color: var(--tblr-dropdown-bg); background-clip: padding-box; - border: 1px solid rgba(98, 105, 118, 0.16); - border-radius: 4px; + border: var(--tblr-dropdown-border-width) solid var(--tblr-dropdown-border-color); + border-radius: var(--tblr-dropdown-border-radius); } .dropdown-menu[data-bs-popper] { top: 100%; left: 0; - margin-top: 1px; + margin-top: var(--tblr-dropdown-spacer); } .dropdown-menu-start { @@ -3124,7 +4303,6 @@ textarea.form-control-lg { right: auto; left: 0; } - .dropdown-menu-sm-end { --bs-position: end; } @@ -3141,7 +4319,6 @@ textarea.form-control-lg { right: auto; left: 0; } - .dropdown-menu-md-end { --bs-position: end; } @@ -3158,7 +4335,6 @@ textarea.form-control-lg { right: auto; left: 0; } - .dropdown-menu-lg-end { --bs-position: end; } @@ -3175,7 +4351,6 @@ textarea.form-control-lg { right: auto; left: 0; } - .dropdown-menu-xl-end { --bs-position: end; } @@ -3192,7 +4367,6 @@ textarea.form-control-lg { right: auto; left: 0; } - .dropdown-menu-xxl-end { --bs-position: end; } @@ -3205,7 +4379,7 @@ textarea.form-control-lg { top: auto; bottom: 100%; margin-top: 0; - margin-bottom: 1px; + margin-bottom: var(--tblr-dropdown-spacer); } .dropup .dropdown-toggle:after { content: ""; @@ -3225,7 +4399,7 @@ textarea.form-control-lg { right: auto; left: 100%; margin-top: 0; - margin-left: 1px; + margin-left: var(--tblr-dropdown-spacer); } .dropend .dropdown-toggle:after { content: ""; @@ -3248,7 +4422,7 @@ textarea.form-control-lg { right: 100%; left: auto; margin-top: 0; - margin-right: 1px; + margin-right: var(--tblr-dropdown-spacer); } .dropstart .dropdown-toggle:after { content: ""; @@ -3268,35 +4442,36 @@ textarea.form-control-lg { .dropdown-divider { height: 0; - margin: 0.5rem 0; + margin: var(--tblr-dropdown-divider-margin-y) 0; overflow: hidden; - border-top: 1px solid rgba(98, 105, 118, 0.16); + border-top: 1px solid var(--tblr-dropdown-divider-bg); + opacity: 1; } .dropdown-item { display: block; width: 100%; - padding: 0.5rem 0.75rem; + padding: var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x); clear: both; font-weight: 400; - color: inherit; + color: var(--tblr-dropdown-link-color); text-align: inherit; white-space: nowrap; background-color: transparent; border: 0; } .dropdown-item:hover, .dropdown-item:focus { - color: inherit; + color: var(--tblr-dropdown-link-hover-color); text-decoration: none; - background-color: rgba(98, 105, 118, 0.04); + background-color: var(--tblr-dropdown-link-hover-bg); } .dropdown-item.active, .dropdown-item:active { - color: #206bc4; + color: var(--tblr-dropdown-link-active-color); text-decoration: none; - background-color: rgba(32, 107, 196, 0.04); + background-color: var(--tblr-dropdown-link-active-bg); } .dropdown-item.disabled, .dropdown-item:disabled { - color: #64748b; + color: var(--tblr-dropdown-link-disabled-color); pointer-events: none; background-color: transparent; } @@ -3307,46 +4482,32 @@ textarea.form-control-lg { .dropdown-header { display: block; - padding: 0.25rem 0.75rem; + padding: var(--tblr-dropdown-header-padding-y) var(--tblr-dropdown-header-padding-x); margin-bottom: 0; font-size: 0.765625rem; - color: #475569; + color: var(--tblr-dropdown-header-color); white-space: nowrap; } .dropdown-item-text { display: block; - padding: 0.5rem 0.75rem; - color: inherit; + padding: var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x); + color: var(--tblr-dropdown-link-color); } .dropdown-menu-dark { - color: #cbd5e1; - background-color: #1e293b; - border-color: rgba(98, 105, 118, 0.16); -} -.dropdown-menu-dark .dropdown-item { - color: #cbd5e1; -} -.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus { - color: #ffffff; - background-color: rgba(255, 255, 255, 0.15); -} -.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { - color: #206bc4; - background-color: rgba(32, 107, 196, 0.04); -} -.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { - color: #64748b; -} -.dropdown-menu-dark .dropdown-divider { - border-color: rgba(98, 105, 118, 0.16); -} -.dropdown-menu-dark .dropdown-item-text { - color: #cbd5e1; -} -.dropdown-menu-dark .dropdown-header { - color: #64748b; + --tblr-dropdown-color: #cbd5e1; + --tblr-dropdown-bg: #1e293b; + --tblr-dropdown-border-color: rgba(98, 105, 118, 0.16); + --tblr-dropdown-box-shadow: ; + --tblr-dropdown-link-color: #cbd5e1; + --tblr-dropdown-link-hover-color: #ffffff; + --tblr-dropdown-divider-bg: rgba(98, 105, 118, 0.16); + --tblr-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --tblr-dropdown-link-active-color: #206bc4; + --tblr-dropdown-link-active-bg: rgba(32, 107, 196, 0.04); + --tblr-dropdown-link-disabled-color: #64748b; + --tblr-dropdown-header-color: #64748b; } .btn-group, @@ -3384,11 +4545,15 @@ textarea.form-control-lg { width: auto; } +.btn-group { + border-radius: 4px; +} .btn-group > .btn:not(:first-child), .btn-group > .btn-group:not(:first-child) { margin-left: -1px; } .btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn.dropdown-toggle-split:first-child, .btn-group > .btn-group:not(:last-child) > .btn { border-top-right-radius: 0; border-bottom-right-radius: 0; @@ -3446,6 +4611,12 @@ textarea.form-control-lg { } .nav { + --tblr-nav-link-padding-x: 0.75rem; + --tblr-nav-link-padding-y: 0.5rem; + --tblr-nav-link-font-weight: ; + --tblr-nav-link-color: inherit; + --tblr-nav-link-hover-color: var(--tblr-link-hover-color); + --tblr-nav-link-disabled-color: #475569; display: flex; flex-wrap: wrap; padding-left: 0; @@ -3455,8 +4626,10 @@ textarea.form-control-lg { .nav-link { display: block; - padding: 0.5rem 0.75rem; - color: inherit; + padding: var(--tblr-nav-link-padding-y) var(--tblr-nav-link-padding-x); + font-size: var(--tblr-nav-link-font-size); + font-weight: var(--tblr-nav-link-font-weight); + color: var(--tblr-nav-link-color); transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; } @media (prefers-reduced-motion: reduce) { @@ -3465,55 +4638,72 @@ textarea.form-control-lg { } } .nav-link:hover, .nav-link:focus { - color: #1a569d; + color: var(--tblr-nav-link-hover-color); text-decoration: none; } .nav-link.disabled { - color: #475569; + color: var(--tblr-nav-link-disabled-color); pointer-events: none; cursor: default; } .nav-tabs { - border-bottom: 1px solid #cbd5e1; + --tblr-nav-tabs-border-width: 1px; + --tblr-nav-tabs-border-color: #cbd5e1; + --tblr-nav-tabs-border-radius: 4px; + --tblr-nav-tabs-link-hover-border-color: #e2e8f0 #e2e8f0 #cbd5e1; + --tblr-nav-tabs-link-active-color: #334155; + --tblr-nav-tabs-link-active-bg: #f5f7fb; + --tblr-nav-tabs-link-active-border-color: #cbd5e1 #cbd5e1 #f5f7fb; + border-bottom: var(--tblr-nav-tabs-border-width) solid var(--tblr-nav-tabs-border-color); } .nav-tabs .nav-link { - margin-bottom: -1px; + margin-bottom: calc(var(--tblr-nav-tabs-border-width) * -1); background: none; - border: 1px solid transparent; - border-top-left-radius: 4px; - border-top-right-radius: 4px; + border: var(--tblr-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--tblr-nav-tabs-border-radius); + border-top-right-radius: var(--tblr-nav-tabs-border-radius); } .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - border-color: #e2e8f0 #e2e8f0 #cbd5e1; isolation: isolate; + border-color: var(--tblr-nav-tabs-link-hover-border-color); } -.nav-tabs .nav-link.disabled { - color: #475569; +.nav-tabs .nav-link.disabled, .nav-tabs .nav-link:disabled { + color: var(--tblr-nav-link-disabled-color); background-color: transparent; border-color: transparent; } .nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { - color: #334155; - background-color: #f5f7fb; - border-color: #cbd5e1 #cbd5e1 #f5f7fb; + color: var(--tblr-nav-tabs-link-active-color); + background-color: var(--tblr-nav-tabs-link-active-bg); + border-color: var(--tblr-nav-tabs-link-active-border-color); } .nav-tabs .dropdown-menu { - margin-top: -1px; + margin-top: calc(var(--tblr-nav-tabs-border-width) * -1); border-top-left-radius: 0; border-top-right-radius: 0; } +.nav-pills { + --tblr-nav-pills-border-radius: 4px; + --tblr-nav-pills-link-active-color: #206bc4; + --tblr-nav-pills-link-active-bg: rgba(32, 107, 196, 0.04); +} .nav-pills .nav-link { background: none; border: 0; - border-radius: 4px; + border-radius: var(--tblr-nav-pills-border-radius); +} +.nav-pills .nav-link:disabled { + color: var(--tblr-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; } .nav-pills .nav-link.active, .nav-pills .show > .nav-link { - color: #206bc4; - background-color: rgba(32, 107, 196, 0.04); + color: var(--tblr-nav-pills-link-active-color); + background-color: var(--tblr-nav-pills-link-active-bg); } .nav-fill > .nav-link, @@ -3542,13 +4732,32 @@ textarea.form-control-lg { } .navbar { + --tblr-navbar-padding-x: 0; + --tblr-navbar-padding-y: 0.25rem; + --tblr-navbar-color: #1e293b; + --tblr-navbar-hover-color: rgba(0, 0, 0, 0.7); + --tblr-navbar-disabled-color: rgba(30, 41, 59, 0.3); + --tblr-navbar-active-color: #1e293b; + --tblr-navbar-brand-padding-y: 0.5rem; + --tblr-navbar-brand-margin-end: 1rem; + --tblr-navbar-brand-font-size: 1rem; + --tblr-navbar-brand-color: #1e293b; + --tblr-navbar-brand-hover-color: #1e293b; + --tblr-navbar-nav-link-padding-x: 0.75rem; + --tblr-navbar-toggler-padding-y: 0; + --tblr-navbar-toggler-padding-x: 0; + --tblr-navbar-toggler-font-size: 1rem; + --tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231e293b' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --tblr-navbar-toggler-border-color: rgba(0, 0, 0, 0.1); + --tblr-navbar-toggler-border-radius: 4px; + --tblr-navbar-toggler-focus-width: 0; + --tblr-navbar-toggler-transition: box-shadow 0.15s ease-in-out; position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; - padding-top: 0.25rem; - padding-bottom: 0.25rem; + padding: var(--tblr-navbar-padding-y) var(--tblr-navbar-padding-x); } .navbar > .container, .navbar > .container-fluid, @@ -3563,26 +4772,34 @@ textarea.form-control-lg { justify-content: space-between; } .navbar-brand { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - margin-right: 1rem; - font-size: 1rem; + padding-top: var(--tblr-navbar-brand-padding-y); + padding-bottom: var(--tblr-navbar-brand-padding-y); + margin-right: var(--tblr-navbar-brand-margin-end); + font-size: var(--tblr-navbar-brand-font-size); + color: var(--tblr-navbar-brand-color); white-space: nowrap; } .navbar-brand:hover, .navbar-brand:focus { + color: var(--tblr-navbar-brand-hover-color); text-decoration: none; } .navbar-nav { + --tblr-nav-link-padding-x: 0; + --tblr-nav-link-padding-y: 0.5rem; + --tblr-nav-link-font-weight: ; + --tblr-nav-link-color: var(--tblr-navbar-color); + --tblr-nav-link-hover-color: var(--tblr-navbar-hover-color); + --tblr-nav-link-disabled-color: var(--tblr-navbar-disabled-color); display: flex; flex-direction: column; padding-left: 0; margin-bottom: 0; list-style: none; } -.navbar-nav .nav-link { - padding-right: 0; - padding-left: 0; +.navbar-nav .show > .nav-link, +.navbar-nav .nav-link.active { + color: var(--tblr-navbar-active-color); } .navbar-nav .dropdown-menu { position: static; @@ -3591,6 +4808,12 @@ textarea.form-control-lg { .navbar-text { padding-top: 0.5rem; padding-bottom: 0.5rem; + color: var(--tblr-navbar-color); +} +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + color: var(--tblr-navbar-active-color); } .navbar-collapse { @@ -3600,13 +4823,14 @@ textarea.form-control-lg { } .navbar-toggler { - padding: 0 0; - font-size: 1rem; + padding: var(--tblr-navbar-toggler-padding-y) var(--tblr-navbar-toggler-padding-x); + font-size: var(--tblr-navbar-toggler-font-size); line-height: 1; + color: var(--tblr-navbar-color); background-color: transparent; - border: 1px solid transparent; - border-radius: 4px; - transition: box-shadow 0.15s ease-in-out; + border: var(--tblr-border-width) solid var(--tblr-navbar-toggler-border-color); + border-radius: var(--tblr-navbar-toggler-border-radius); + transition: var(--tblr-navbar-toggler-transition); } @media (prefers-reduced-motion: reduce) { .navbar-toggler { @@ -3619,7 +4843,7 @@ textarea.form-control-lg { .navbar-toggler:focus { text-decoration: none; outline: 0; - box-shadow: 0 0 0 0; + box-shadow: 0 0 0 var(--tblr-navbar-toggler-focus-width); } .navbar-toggler-icon { @@ -3627,6 +4851,7 @@ textarea.form-control-lg { width: 1.5em; height: 1.5em; vertical-align: middle; + background-image: var(--tblr-navbar-toggler-icon-bg); background-repeat: no-repeat; background-position: center; background-size: 100%; @@ -3649,8 +4874,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-sm .navbar-nav .nav-link { - padding-right: 0.75rem; - padding-left: 0.75rem; + padding-right: var(--tblr-navbar-nav-link-padding-x); + padding-left: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-sm .navbar-nav-scroll { overflow: visible; @@ -3662,28 +4887,22 @@ textarea.form-control-lg { .navbar-expand-sm .navbar-toggler { display: none; } - .navbar-expand-sm .offcanvas-header { + .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-sm .offcanvas .offcanvas-header { display: none; } - .navbar-expand-sm .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-right: 0; - border-left: 0; - transition: none; - transform: none; - } - .navbar-expand-sm .offcanvas-top, -.navbar-expand-sm .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-sm .offcanvas-body { + .navbar-expand-sm .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3702,8 +4921,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-md .navbar-nav .nav-link { - padding-right: 0.75rem; - padding-left: 0.75rem; + padding-right: var(--tblr-navbar-nav-link-padding-x); + padding-left: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-md .navbar-nav-scroll { overflow: visible; @@ -3715,28 +4934,22 @@ textarea.form-control-lg { .navbar-expand-md .navbar-toggler { display: none; } - .navbar-expand-md .offcanvas-header { + .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-md .offcanvas .offcanvas-header { display: none; } - .navbar-expand-md .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-right: 0; - border-left: 0; - transition: none; - transform: none; - } - .navbar-expand-md .offcanvas-top, -.navbar-expand-md .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-md .offcanvas-body { + .navbar-expand-md .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3755,8 +4968,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-lg .navbar-nav .nav-link { - padding-right: 0.75rem; - padding-left: 0.75rem; + padding-right: var(--tblr-navbar-nav-link-padding-x); + padding-left: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-lg .navbar-nav-scroll { overflow: visible; @@ -3768,28 +4981,22 @@ textarea.form-control-lg { .navbar-expand-lg .navbar-toggler { display: none; } - .navbar-expand-lg .offcanvas-header { + .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-lg .offcanvas .offcanvas-header { display: none; } - .navbar-expand-lg .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-right: 0; - border-left: 0; - transition: none; - transform: none; - } - .navbar-expand-lg .offcanvas-top, -.navbar-expand-lg .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-lg .offcanvas-body { + .navbar-expand-lg .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3808,8 +5015,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-xl .navbar-nav .nav-link { - padding-right: 0.75rem; - padding-left: 0.75rem; + padding-right: var(--tblr-navbar-nav-link-padding-x); + padding-left: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-xl .navbar-nav-scroll { overflow: visible; @@ -3821,28 +5028,22 @@ textarea.form-control-lg { .navbar-expand-xl .navbar-toggler { display: none; } - .navbar-expand-xl .offcanvas-header { + .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xl .offcanvas .offcanvas-header { display: none; } - .navbar-expand-xl .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-right: 0; - border-left: 0; - transition: none; - transform: none; - } - .navbar-expand-xl .offcanvas-top, -.navbar-expand-xl .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-xl .offcanvas-body { + .navbar-expand-xl .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3861,8 +5062,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-xxl .navbar-nav .nav-link { - padding-right: 0.75rem; - padding-left: 0.75rem; + padding-right: var(--tblr-navbar-nav-link-padding-x); + padding-left: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-xxl .navbar-nav-scroll { overflow: visible; @@ -3874,28 +5075,22 @@ textarea.form-control-lg { .navbar-expand-xxl .navbar-toggler { display: none; } - .navbar-expand-xxl .offcanvas-header { + .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-header { display: none; } - .navbar-expand-xxl .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-right: 0; - border-left: 0; - transition: none; - transform: none; - } - .navbar-expand-xxl .offcanvas-top, -.navbar-expand-xxl .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-xxl .offcanvas-body { + .navbar-expand-xxl .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3913,8 +5108,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand .navbar-nav .nav-link { - padding-right: 0.75rem; - padding-left: 0.75rem; + padding-right: var(--tblr-navbar-nav-link-padding-x); + padding-left: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand .navbar-nav-scroll { overflow: visible; @@ -3926,114 +5121,67 @@ textarea.form-control-lg { .navbar-expand .navbar-toggler { display: none; } -.navbar-expand .offcanvas-header { +.navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} +.navbar-expand .offcanvas .offcanvas-header { display: none; } -.navbar-expand .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-right: 0; - border-left: 0; - transition: none; - transform: none; -} -.navbar-expand .offcanvas-top, -.navbar-expand .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; -} -.navbar-expand .offcanvas-body { +.navbar-expand .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; overflow-y: visible; } -.navbar-light .navbar-brand { - color: #1e293b; -} -.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { - color: #1e293b; -} -.navbar-light .navbar-nav .nav-link { - color: rgba(30, 41, 59, 0.7); -} -.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { - color: rgba(0, 0, 0, 0.7); -} -.navbar-light .navbar-nav .nav-link.disabled { - color: rgba(30, 41, 59, 0.3); -} -.navbar-light .navbar-nav .show > .nav-link, -.navbar-light .navbar-nav .nav-link.active { - color: #1e293b; -} -.navbar-light .navbar-toggler { - color: rgba(30, 41, 59, 0.7); - border-color: rgba(0, 0, 0, 0.1); -} -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2830, 41, 59, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} -.navbar-light .navbar-text { - color: rgba(30, 41, 59, 0.7); -} -.navbar-light .navbar-text a, -.navbar-light .navbar-text a:hover, -.navbar-light .navbar-text a:focus { - color: #1e293b; -} - -.navbar-dark .navbar-brand { - color: #ffffff; -} -.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { - color: #ffffff; -} -.navbar-dark .navbar-nav .nav-link { - color: rgba(255, 255, 255, 0.7); -} -.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { - color: rgba(255, 255, 255, 0.75); -} -.navbar-dark .navbar-nav .nav-link.disabled { - color: rgba(255, 255, 255, 0.3); -} -.navbar-dark .navbar-nav .show > .nav-link, -.navbar-dark .navbar-nav .nav-link.active { - color: #ffffff; -} -.navbar-dark .navbar-toggler { - color: rgba(255, 255, 255, 0.7); - border-color: rgba(255, 255, 255, 0.1); -} -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} -.navbar-dark .navbar-text { - color: rgba(255, 255, 255, 0.7); -} -.navbar-dark .navbar-text a, -.navbar-dark .navbar-text a:hover, -.navbar-dark .navbar-text a:focus { - color: #ffffff; +.navbar-dark { + --tblr-navbar-color: rgba(255, 255, 255, 0.7); + --tblr-navbar-hover-color: rgba(255, 255, 255, 0.75); + --tblr-navbar-disabled-color: rgba(255, 255, 255, 0.3); + --tblr-navbar-active-color: #ffffff; + --tblr-navbar-brand-color: #ffffff; + --tblr-navbar-brand-hover-color: #ffffff; + --tblr-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } .card { + --tblr-card-spacer-y: 1rem; + --tblr-card-spacer-x: 1.25rem; + --tblr-card-title-spacer-y: 1.25rem; + --tblr-card-border-width: 1px; + --tblr-card-border-color: rgba(98, 105, 118, 0.16); + --tblr-card-border-radius: 4px; + --tblr-card-box-shadow: ; + --tblr-card-inner-border-radius: 3px; + --tblr-card-cap-padding-y: 1rem; + --tblr-card-cap-padding-x: 1.25rem; + --tblr-card-cap-bg: #fafbfc; + --tblr-card-cap-color: #626976; + --tblr-card-height: ; + --tblr-card-color: ; + --tblr-card-bg: #ffffff; + --tblr-card-img-overlay-padding: 1rem; + --tblr-card-group-margin: 1.5rem; position: relative; display: flex; flex-direction: column; min-width: 0; + height: var(--tblr-card-height); word-wrap: break-word; - background-color: #ffffff; + background-color: var(--tblr-card-bg); background-clip: border-box; - border: 1px solid rgba(98, 105, 118, 0.16); - border-radius: 4px; + border: var(--tblr-card-border-width) solid var(--tblr-card-border-color); + border-radius: var(--tblr-card-border-radius); } .card > hr, .card > .hr { margin-right: 0; @@ -4045,13 +5193,13 @@ textarea.form-control-lg { } .card > .list-group:first-child { border-top-width: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; + border-top-left-radius: var(--tblr-card-inner-border-radius); + border-top-right-radius: var(--tblr-card-inner-border-radius); } .card > .list-group:last-child { border-bottom-width: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; + border-bottom-right-radius: var(--tblr-card-inner-border-radius); + border-bottom-left-radius: var(--tblr-card-inner-border-radius); } .card > .card-header + .list-group, .card > .list-group + .card-footer { @@ -4060,15 +5208,16 @@ textarea.form-control-lg { .card-body { flex: 1 1 auto; - padding: 1rem 1.25rem; + padding: var(--tblr-card-spacer-y) var(--tblr-card-spacer-x); + color: var(--tblr-card-color); } .card-title { - margin-bottom: 1.25rem; + margin-bottom: var(--tblr-card-title-spacer-y); } .card-subtitle { - margin-top: -0.625rem; + margin-top: calc(-0.5 * var(--tblr-card-title-spacer-y)); margin-bottom: 0; } @@ -4080,44 +5229,44 @@ textarea.form-control-lg { text-decoration: none; } .card-link + .card-link { - margin-left: 1.25rem; + margin-left: var(--tblr-card-spacer-x); } .card-header { - padding: 1rem 1.25rem; + padding: var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x); margin-bottom: 0; - color: #626976; - background-color: #fafbfc; - border-bottom: 1px solid rgba(98, 105, 118, 0.16); + color: var(--tblr-card-cap-color); + background-color: var(--tblr-card-cap-bg); + border-bottom: var(--tblr-card-border-width) solid var(--tblr-card-border-color); } .card-header:first-child { - border-radius: 3px 3px 0 0; + border-radius: var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius) 0 0; } .card-footer { - padding: 1rem 1.25rem; - color: #626976; - background-color: #fafbfc; - border-top: 1px solid rgba(98, 105, 118, 0.16); + padding: var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x); + color: var(--tblr-card-cap-color); + background-color: var(--tblr-card-cap-bg); + border-top: var(--tblr-card-border-width) solid var(--tblr-card-border-color); } .card-footer:last-child { - border-radius: 0 0 3px 3px; + border-radius: 0 0 var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius); } .card-header-tabs { - margin-right: -0.625rem; - margin-bottom: -1rem; - margin-left: -0.625rem; + margin-right: calc(-0.5 * var(--tblr-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--tblr-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--tblr-card-cap-padding-x)); border-bottom: 0; } .card-header-tabs .nav-link.active { - background-color: #ffffff; - border-bottom-color: #ffffff; + background-color: var(--tblr-card-bg); + border-bottom-color: var(--tblr-card-bg); } .card-header-pills { - margin-right: -0.625rem; - margin-left: -0.625rem; + margin-right: calc(-0.5 * var(--tblr-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--tblr-card-cap-padding-x)); } .card-img-overlay { @@ -4126,8 +5275,8 @@ textarea.form-control-lg { right: 0; bottom: 0; left: 0; - padding: 1rem; - border-radius: 3px; + padding: var(--tblr-card-img-overlay-padding); + border-radius: var(--tblr-card-inner-border-radius); } .card-img, @@ -4138,18 +5287,18 @@ textarea.form-control-lg { .card-img, .card-img-top { - border-top-left-radius: 3px; - border-top-right-radius: 3px; + border-top-left-radius: var(--tblr-card-inner-border-radius); + border-top-right-radius: var(--tblr-card-inner-border-radius); } .card-img, .card-img-bottom { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; + border-bottom-right-radius: var(--tblr-card-inner-border-radius); + border-bottom-left-radius: var(--tblr-card-inner-border-radius); } .card-group > .card { - margin-bottom: 1.5rem; + margin-bottom: var(--tblr-card-group-margin); } @media (min-width: 576px) { .card-group { @@ -4190,20 +5339,45 @@ textarea.form-control-lg { } } +.accordion { + --tblr-accordion-color: #fafbfc; + --tblr-accordion-bg: transparent; + --tblr-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --tblr-accordion-border-color: rgba(98, 105, 118, 0.16); + --tblr-accordion-border-width: 1px; + --tblr-accordion-border-radius: 4px; + --tblr-accordion-inner-border-radius: 3px; + --tblr-accordion-btn-padding-x: 1.25rem; + --tblr-accordion-btn-padding-y: 1rem; + --tblr-accordion-btn-color: var(--tblr-body-color); + --tblr-accordion-btn-bg: transparent; + --tblr-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--tblr-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --tblr-accordion-btn-icon-width: 1rem; + --tblr-accordion-btn-icon-transform: rotate(-180deg); + --tblr-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --tblr-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='inherit'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --tblr-accordion-btn-focus-border-color: rgba(98, 105, 118, 0.16); + --tblr-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + --tblr-accordion-body-padding-x: 1.25rem; + --tblr-accordion-body-padding-y: 1rem; + --tblr-accordion-active-color: inherit; + --tblr-accordion-active-bg: transparent; +} + .accordion-button { position: relative; display: flex; align-items: center; width: 100%; - padding: 1rem 1.25rem; + padding: var(--tblr-accordion-btn-padding-y) var(--tblr-accordion-btn-padding-x); font-size: 0.875rem; - color: #1e293b; + color: var(--tblr-accordion-btn-color); text-align: left; - background-color: transparent; + background-color: var(--tblr-accordion-btn-bg); border: 0; border-radius: 0; overflow-anchor: none; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + transition: var(--tblr-accordion-transition); } @media (prefers-reduced-motion: reduce) { .accordion-button { @@ -4211,24 +5385,24 @@ textarea.form-control-lg { } } .accordion-button:not(.collapsed) { - color: inherit; - background-color: transparent; - box-shadow: inset 0 -1px 0 rgba(98, 105, 118, 0.16); + color: var(--tblr-accordion-active-color); + background-color: var(--tblr-accordion-active-bg); + box-shadow: inset 0 calc(var(--tblr-accordion-border-width) * -1) 0 var(--tblr-accordion-border-color); } .accordion-button:not(.collapsed)::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='inherit'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - transform: rotate(-180deg); + background-image: var(--tblr-accordion-btn-active-icon); + transform: var(--tblr-accordion-btn-icon-transform); } .accordion-button::after { flex-shrink: 0; - width: 1rem; - height: 1rem; + width: var(--tblr-accordion-btn-icon-width); + height: var(--tblr-accordion-btn-icon-width); margin-left: auto; content: ""; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231e293b'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + background-image: var(--tblr-accordion-btn-icon); background-repeat: no-repeat; - background-size: 1rem; - transition: transform 0.2s ease-in-out; + background-size: var(--tblr-accordion-btn-icon-width); + transition: var(--tblr-accordion-btn-icon-transition); } @media (prefers-reduced-motion: reduce) { .accordion-button::after { @@ -4240,9 +5414,9 @@ textarea.form-control-lg { } .accordion-button:focus { z-index: 3; - border-color: rgba(98, 105, 118, 0.16); + border-color: var(--tblr-accordion-btn-focus-border-color); outline: 0; - box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + box-shadow: var(--tblr-accordion-btn-focus-box-shadow); } .accordion-header { @@ -4250,35 +5424,36 @@ textarea.form-control-lg { } .accordion-item { - background-color: transparent; - border: 1px solid rgba(98, 105, 118, 0.16); + color: var(--tblr-accordion-color); + background-color: var(--tblr-accordion-bg); + border: var(--tblr-accordion-border-width) solid var(--tblr-accordion-border-color); } .accordion-item:first-of-type { - border-top-left-radius: 4px; - border-top-right-radius: 4px; + border-top-left-radius: var(--tblr-accordion-border-radius); + border-top-right-radius: var(--tblr-accordion-border-radius); } .accordion-item:first-of-type .accordion-button { - border-top-left-radius: 3px; - border-top-right-radius: 3px; + border-top-left-radius: var(--tblr-accordion-inner-border-radius); + border-top-right-radius: var(--tblr-accordion-inner-border-radius); } .accordion-item:not(:first-of-type) { border-top: 0; } .accordion-item:last-of-type { - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; + border-bottom-right-radius: var(--tblr-accordion-border-radius); + border-bottom-left-radius: var(--tblr-accordion-border-radius); } .accordion-item:last-of-type .accordion-button.collapsed { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; + border-bottom-right-radius: var(--tblr-accordion-inner-border-radius); + border-bottom-left-radius: var(--tblr-accordion-inner-border-radius); } .accordion-item:last-of-type .accordion-collapse { - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; + border-bottom-right-radius: var(--tblr-accordion-border-radius); + border-bottom-left-radius: var(--tblr-accordion-border-radius); } .accordion-body { - padding: 1rem 1.25rem; + padding: var(--tblr-accordion-body-padding-y) var(--tblr-accordion-body-padding-x); } .accordion-flush .accordion-collapse { @@ -4300,27 +5475,58 @@ textarea.form-control-lg { } .breadcrumb { + --tblr-breadcrumb-padding-x: 0; + --tblr-breadcrumb-padding-y: 0; + --tblr-breadcrumb-margin-bottom: 1rem; + --tblr-breadcrumb-bg: ; + --tblr-breadcrumb-border-radius: ; + --tblr-breadcrumb-divider-color: #626976; + --tblr-breadcrumb-item-padding-x: 0.5rem; + --tblr-breadcrumb-item-active-color: inherit; display: flex; flex-wrap: wrap; - padding: 0 0; - margin-bottom: 1rem; + padding: var(--tblr-breadcrumb-padding-y) var(--tblr-breadcrumb-padding-x); + margin-bottom: var(--tblr-breadcrumb-margin-bottom); + font-size: var(--tblr-breadcrumb-font-size); list-style: none; + background-color: var(--tblr-breadcrumb-bg); + border-radius: var(--tblr-breadcrumb-border-radius); } .breadcrumb-item + .breadcrumb-item { - padding-left: 0.5rem; + padding-left: var(--tblr-breadcrumb-item-padding-x); } .breadcrumb-item + .breadcrumb-item::before { float: left; - padding-right: 0.5rem; - color: #626976; + padding-right: var(--tblr-breadcrumb-item-padding-x); + color: var(--tblr-breadcrumb-divider-color); content: var(--tblr-breadcrumb-divider, "/") /* rtl: var(--tblr-breadcrumb-divider, "/") */; } .breadcrumb-item.active { - color: inherit; + color: var(--tblr-breadcrumb-item-active-color); } .pagination { + --tblr-pagination-padding-x: 0.25rem; + --tblr-pagination-padding-y: 0.25rem; + --tblr-pagination-font-size: 0.875rem; + --tblr-pagination-color: #626976; + --tblr-pagination-bg: transparent; + --tblr-pagination-border-width: 0; + --tblr-pagination-border-color: #cbd5e1; + --tblr-pagination-border-radius: 4px; + --tblr-pagination-hover-color: var(--tblr-link-hover-color); + --tblr-pagination-hover-bg: #e2e8f0; + --tblr-pagination-hover-border-color: #cbd5e1; + --tblr-pagination-focus-color: var(--tblr-link-hover-color); + --tblr-pagination-focus-bg: #e2e8f0; + --tblr-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + --tblr-pagination-active-color: #ffffff; + --tblr-pagination-active-bg: #206bc4; + --tblr-pagination-active-border-color: #206bc4; + --tblr-pagination-disabled-color: rgba(98, 105, 118, 0.5); + --tblr-pagination-disabled-bg: transparent; + --tblr-pagination-disabled-border-color: #cbd5e1; display: flex; padding-left: 0; list-style: none; @@ -4329,9 +5535,11 @@ textarea.form-control-lg { .page-link { position: relative; display: block; - color: #626976; - background-color: transparent; - border: 0 solid #cbd5e1; + padding: var(--tblr-pagination-padding-y) var(--tblr-pagination-padding-x); + font-size: var(--tblr-pagination-font-size); + color: var(--tblr-pagination-color); + background-color: var(--tblr-pagination-bg); + border: var(--tblr-pagination-border-width) solid var(--tblr-pagination-border-color); transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } @media (prefers-reduced-motion: reduce) { @@ -4341,85 +5549,74 @@ textarea.form-control-lg { } .page-link:hover { z-index: 2; - color: #1a569d; + color: var(--tblr-pagination-hover-color); text-decoration: none; - background-color: #e2e8f0; - border-color: #cbd5e1; + background-color: var(--tblr-pagination-hover-bg); + border-color: var(--tblr-pagination-hover-border-color); } .page-link:focus { z-index: 3; - color: #1a569d; - background-color: #e2e8f0; + color: var(--tblr-pagination-focus-color); + background-color: var(--tblr-pagination-focus-bg); outline: 0; - box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + box-shadow: var(--tblr-pagination-focus-box-shadow); +} +.page-link.active, .active > .page-link { + z-index: 3; + color: var(--tblr-pagination-active-color); + background-color: var(--tblr-pagination-active-bg); + border-color: var(--tblr-pagination-active-border-color); +} +.page-link.disabled, .disabled > .page-link { + color: var(--tblr-pagination-disabled-color); + pointer-events: none; + background-color: var(--tblr-pagination-disabled-bg); + border-color: var(--tblr-pagination-disabled-border-color); } .page-item:not(:first-child) .page-link { margin-left: 0; } -.page-item.active .page-link { - z-index: 3; - color: #ffffff; - background-color: #206bc4; - border-color: #206bc4; -} -.page-item.disabled .page-link { - color: rgba(98, 105, 118, 0.5); - pointer-events: none; - background-color: transparent; - border-color: #cbd5e1; -} - -.page-link { - padding: 0.25rem 0.25rem; -} - .page-item:first-child .page-link { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; + border-top-left-radius: var(--tblr-pagination-border-radius); + border-bottom-left-radius: var(--tblr-pagination-border-radius); } .page-item:last-child .page-link { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; + border-top-right-radius: var(--tblr-pagination-border-radius); + border-bottom-right-radius: var(--tblr-pagination-border-radius); } -.pagination-lg .page-link { - padding: 0.75rem 1.5rem; - font-size: 1.09375rem; -} -.pagination-lg .page-item:first-child .page-link { - border-top-left-radius: 8px; - border-bottom-left-radius: 8px; -} -.pagination-lg .page-item:last-child .page-link { - border-top-right-radius: 8px; - border-bottom-right-radius: 8px; +.pagination-lg { + --tblr-pagination-padding-x: 1.5rem; + --tblr-pagination-padding-y: 0.75rem; + --tblr-pagination-font-size: 1.09375rem; + --tblr-pagination-border-radius: 8px; } -.pagination-sm .page-link { - padding: 0.25rem 0.5rem; - font-size: 0.765625rem; -} -.pagination-sm .page-item:first-child .page-link { - border-top-left-radius: 2px; - border-bottom-left-radius: 2px; -} -.pagination-sm .page-item:last-child .page-link { - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; +.pagination-sm { + --tblr-pagination-padding-x: 0.5rem; + --tblr-pagination-padding-y: 0.25rem; + --tblr-pagination-font-size: 0.765625rem; + --tblr-pagination-border-radius: 2px; } .badge { + --tblr-badge-padding-x: 0.5em; + --tblr-badge-padding-y: 0.25em; + --tblr-badge-font-size: 85.71428571%; + --tblr-badge-font-weight: 500; + --tblr-badge-color: #ffffff; + --tblr-badge-border-radius: 4px; display: inline-block; - padding: 0.25em 0.5em; - font-size: 85.71428571%; - font-weight: 500; + padding: var(--tblr-badge-padding-y) var(--tblr-badge-padding-x); + font-size: var(--tblr-badge-font-size); + font-weight: var(--tblr-badge-font-weight); line-height: 1; - color: #ffffff; + color: var(--tblr-badge-color); text-align: center; white-space: nowrap; vertical-align: baseline; - border-radius: 4px; + border-radius: var(--tblr-badge-border-radius); } .badge:empty { display: none; @@ -4431,11 +5628,21 @@ textarea.form-control-lg { } .alert { + --tblr-alert-bg: transparent; + --tblr-alert-padding-x: 1rem; + --tblr-alert-padding-y: 1rem; + --tblr-alert-margin-bottom: 1rem; + --tblr-alert-color: inherit; + --tblr-alert-border-color: transparent; + --tblr-alert-border: 1px solid var(--tblr-alert-border-color); + --tblr-alert-border-radius: 4px; position: relative; - padding: 1rem 1rem; - margin-bottom: 1rem; - border: 1px solid transparent; - border-radius: 4px; + padding: var(--tblr-alert-padding-y) var(--tblr-alert-padding-x); + margin-bottom: var(--tblr-alert-margin-bottom); + color: var(--tblr-alert-color); + background-color: var(--tblr-alert-bg); + border: var(--tblr-alert-border); + border-radius: var(--tblr-alert-border-radius); } .alert-heading { @@ -4469,12 +5676,20 @@ textarea.form-control-lg { } } .progress { + --tblr-progress-height: 0.5rem; + --tblr-progress-font-size: 0.65625rem; + --tblr-progress-bg: #e6e7e9; + --tblr-progress-border-radius: 4px; + --tblr-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --tblr-progress-bar-color: #ffffff; + --tblr-progress-bar-bg: #206bc4; + --tblr-progress-bar-transition: width 0.6s ease; display: flex; - height: 0.5rem; + height: var(--tblr-progress-height); overflow: hidden; - font-size: 0.65625rem; - background-color: #e6e7e9; - border-radius: 4px; + font-size: var(--tblr-progress-font-size); + background-color: var(--tblr-progress-bg); + border-radius: var(--tblr-progress-border-radius); } .progress-bar { @@ -4482,11 +5697,11 @@ textarea.form-control-lg { flex-direction: column; justify-content: center; overflow: hidden; - color: #ffffff; + color: var(--tblr-progress-bar-color); text-align: center; white-space: nowrap; - background-color: #206bc4; - transition: width 0.6s ease; + background-color: var(--tblr-progress-bar-bg); + transition: var(--tblr-progress-bar-transition); } @media (prefers-reduced-motion: reduce) { .progress-bar { @@ -4496,7 +5711,7 @@ textarea.form-control-lg { .progress-bar-striped { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 0.5rem 0.5rem; + background-size: var(--tblr-progress-height) var(--tblr-progress-height); } .progress-bar-animated { @@ -4511,45 +5726,62 @@ textarea.form-control-lg { } .list-group { + --tblr-list-group-color: #0f172a; + --tblr-list-group-bg: inherit; + --tblr-list-group-border-color: #e6e7e9; + --tblr-list-group-border-width: 1px; + --tblr-list-group-border-radius: 4px; + --tblr-list-group-item-padding-x: 1.25rem; + --tblr-list-group-item-padding-y: 1rem; + --tblr-list-group-action-color: inherit; + --tblr-list-group-action-hover-color: inherit; + --tblr-list-group-action-hover-bg: rgba(98, 105, 118, 0.04); + --tblr-list-group-action-active-color: #1e293b; + --tblr-list-group-action-active-bg: #e2e8f0; + --tblr-list-group-disabled-color: #475569; + --tblr-list-group-disabled-bg: inherit; + --tblr-list-group-active-color: inherit; + --tblr-list-group-active-bg: rgba(32, 107, 196, 0.04); + --tblr-list-group-active-border-color: #e6e7e9; display: flex; flex-direction: column; padding-left: 0; margin-bottom: 0; - border-radius: 4px; + border-radius: var(--tblr-list-group-border-radius); } .list-group-numbered { list-style-type: none; counter-reset: section; } -.list-group-numbered > li::before { +.list-group-numbered > .list-group-item::before { content: counters(section, ".") ". "; counter-increment: section; } .list-group-item-action { width: 100%; - color: inherit; + color: var(--tblr-list-group-action-color); text-align: inherit; } .list-group-item-action:hover, .list-group-item-action:focus { z-index: 1; - color: inherit; + color: var(--tblr-list-group-action-hover-color); text-decoration: none; - background-color: rgba(98, 105, 118, 0.04); + background-color: var(--tblr-list-group-action-hover-bg); } .list-group-item-action:active { - color: #1e293b; - background-color: #e2e8f0; + color: var(--tblr-list-group-action-active-color); + background-color: var(--tblr-list-group-action-active-bg); } .list-group-item { position: relative; display: block; - padding: 1rem 1.25rem; - color: #0f172a; - background-color: inherit; - border: 1px solid #e6e7e9; + padding: var(--tblr-list-group-item-padding-y) var(--tblr-list-group-item-padding-x); + color: var(--tblr-list-group-color); + background-color: var(--tblr-list-group-bg); + border: var(--tblr-list-group-border-width) solid var(--tblr-list-group-border-color); } .list-group-item:first-child { border-top-left-radius: inherit; @@ -4560,45 +5792,45 @@ textarea.form-control-lg { border-bottom-left-radius: inherit; } .list-group-item.disabled, .list-group-item:disabled { - color: #475569; + color: var(--tblr-list-group-disabled-color); pointer-events: none; - background-color: inherit; + background-color: var(--tblr-list-group-disabled-bg); } .list-group-item.active { z-index: 2; - color: inherit; - background-color: rgba(32, 107, 196, 0.04); - border-color: #e6e7e9; + color: var(--tblr-list-group-active-color); + background-color: var(--tblr-list-group-active-bg); + border-color: var(--tblr-list-group-active-border-color); } .list-group-item + .list-group-item { border-top-width: 0; } .list-group-item + .list-group-item.active { - margin-top: -1px; - border-top-width: 1px; + margin-top: calc(var(--tblr-list-group-border-width) * -1); + border-top-width: var(--tblr-list-group-border-width); } .list-group-horizontal { flex-direction: row; } .list-group-horizontal > .list-group-item:first-child { - border-bottom-left-radius: 4px; + border-bottom-left-radius: var(--tblr-list-group-border-radius); border-top-right-radius: 0; } .list-group-horizontal > .list-group-item:last-child { - border-top-right-radius: 4px; + border-top-right-radius: var(--tblr-list-group-border-radius); border-bottom-left-radius: 0; } .list-group-horizontal > .list-group-item.active { margin-top: 0; } .list-group-horizontal > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-left-width: 0; } .list-group-horizontal > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; + margin-left: calc(var(--tblr-list-group-border-width) * -1); + border-left-width: var(--tblr-list-group-border-width); } @media (min-width: 576px) { @@ -4606,23 +5838,23 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-sm > .list-group-item:first-child { - border-bottom-left-radius: 4px; + border-bottom-left-radius: var(--tblr-list-group-border-radius); border-top-right-radius: 0; } .list-group-horizontal-sm > .list-group-item:last-child { - border-top-right-radius: 4px; + border-top-right-radius: var(--tblr-list-group-border-radius); border-bottom-left-radius: 0; } .list-group-horizontal-sm > .list-group-item.active { margin-top: 0; } .list-group-horizontal-sm > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-left-width: 0; } .list-group-horizontal-sm > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; + margin-left: calc(var(--tblr-list-group-border-width) * -1); + border-left-width: var(--tblr-list-group-border-width); } } @media (min-width: 768px) { @@ -4630,23 +5862,23 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-md > .list-group-item:first-child { - border-bottom-left-radius: 4px; + border-bottom-left-radius: var(--tblr-list-group-border-radius); border-top-right-radius: 0; } .list-group-horizontal-md > .list-group-item:last-child { - border-top-right-radius: 4px; + border-top-right-radius: var(--tblr-list-group-border-radius); border-bottom-left-radius: 0; } .list-group-horizontal-md > .list-group-item.active { margin-top: 0; } .list-group-horizontal-md > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-left-width: 0; } .list-group-horizontal-md > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; + margin-left: calc(var(--tblr-list-group-border-width) * -1); + border-left-width: var(--tblr-list-group-border-width); } } @media (min-width: 992px) { @@ -4654,23 +5886,23 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-lg > .list-group-item:first-child { - border-bottom-left-radius: 4px; + border-bottom-left-radius: var(--tblr-list-group-border-radius); border-top-right-radius: 0; } .list-group-horizontal-lg > .list-group-item:last-child { - border-top-right-radius: 4px; + border-top-right-radius: var(--tblr-list-group-border-radius); border-bottom-left-radius: 0; } .list-group-horizontal-lg > .list-group-item.active { margin-top: 0; } .list-group-horizontal-lg > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-left-width: 0; } .list-group-horizontal-lg > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; + margin-left: calc(var(--tblr-list-group-border-width) * -1); + border-left-width: var(--tblr-list-group-border-width); } } @media (min-width: 1200px) { @@ -4678,23 +5910,23 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-xl > .list-group-item:first-child { - border-bottom-left-radius: 4px; + border-bottom-left-radius: var(--tblr-list-group-border-radius); border-top-right-radius: 0; } .list-group-horizontal-xl > .list-group-item:last-child { - border-top-right-radius: 4px; + border-top-right-radius: var(--tblr-list-group-border-radius); border-bottom-left-radius: 0; } .list-group-horizontal-xl > .list-group-item.active { margin-top: 0; } .list-group-horizontal-xl > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-left-width: 0; } .list-group-horizontal-xl > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; + margin-left: calc(var(--tblr-list-group-border-width) * -1); + border-left-width: var(--tblr-list-group-border-width); } } @media (min-width: 1400px) { @@ -4702,30 +5934,30 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-xxl > .list-group-item:first-child { - border-bottom-left-radius: 4px; + border-bottom-left-radius: var(--tblr-list-group-border-radius); border-top-right-radius: 0; } .list-group-horizontal-xxl > .list-group-item:last-child { - border-top-right-radius: 4px; + border-top-right-radius: var(--tblr-list-group-border-radius); border-bottom-left-radius: 0; } .list-group-horizontal-xxl > .list-group-item.active { margin-top: 0; } .list-group-horizontal-xxl > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-left-width: 0; } .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; + margin-left: calc(var(--tblr-list-group-border-width) * -1); + border-left-width: var(--tblr-list-group-border-width); } } .list-group-flush { border-radius: 0; } .list-group-flush > .list-group-item { - border-width: 0 0 1px; + border-width: 0 0 var(--tblr-list-group-border-width); } .list-group-flush > .list-group-item:last-child { border-bottom-width: 0; @@ -4857,13 +6089,391 @@ textarea.form-control-lg { border-color: #3b3f47; } +.list-group-item-blue { + color: #134076; + background-color: #d2e1f3; +} +.list-group-item-blue.list-group-item-action:hover, .list-group-item-blue.list-group-item-action:focus { + color: #134076; + background-color: #bdcbdb; +} +.list-group-item-blue.list-group-item-action.active { + color: #ffffff; + background-color: #134076; + border-color: #134076; +} + +.list-group-item-azure { + color: #285c87; + background-color: #d9ebf9; +} +.list-group-item-azure.list-group-item-action:hover, .list-group-item-azure.list-group-item-action:focus { + color: #285c87; + background-color: #c3d4e0; +} +.list-group-item-azure.list-group-item-action.active { + color: #ffffff; + background-color: #285c87; + border-color: #285c87; +} + +.list-group-item-indigo { + color: #283b8d; + background-color: #d9e0fb; +} +.list-group-item-indigo.list-group-item-action:hover, .list-group-item-indigo.list-group-item-action:focus { + color: #283b8d; + background-color: #c3cae2; +} +.list-group-item-indigo.list-group-item-action.active { + color: #ffffff; + background-color: #283b8d; + border-color: #283b8d; +} + +.list-group-item-purple { + color: #682579; + background-color: #efd8f4; +} +.list-group-item-purple.list-group-item-action:hover, .list-group-item-purple.list-group-item-action:focus { + color: #682579; + background-color: #d7c2dc; +} +.list-group-item-purple.list-group-item-action.active { + color: #ffffff; + background-color: #682579; + border-color: #682579; +} + +.list-group-item-pink { + color: #801f41; + background-color: #f7d6e2; +} +.list-group-item-pink.list-group-item-action:hover, .list-group-item-pink.list-group-item-action:focus { + color: #801f41; + background-color: #dec1cb; +} +.list-group-item-pink.list-group-item-action.active { + color: #ffffff; + background-color: #801f41; + border-color: #801f41; +} + +.list-group-item-red { + color: #802222; + background-color: #f7d7d7; +} +.list-group-item-red.list-group-item-action:hover, .list-group-item-red.list-group-item-action:focus { + color: #802222; + background-color: #dec2c2; +} +.list-group-item-red.list-group-item-action.active { + color: #ffffff; + background-color: #802222; + border-color: #802222; +} + +.list-group-item-orange { + color: #943e04; + background-color: #fde1cd; +} +.list-group-item-orange.list-group-item-action:hover, .list-group-item-orange.list-group-item-action:focus { + color: #943e04; + background-color: #e4cbb9; +} +.list-group-item-orange.list-group-item-action.active { + color: #ffffff; + background-color: #943e04; + border-color: #943e04; +} + +.list-group-item-yellow { + color: #935f00; + background-color: #fdeccc; +} +.list-group-item-yellow.list-group-item-action:hover, .list-group-item-yellow.list-group-item-action:focus { + color: #935f00; + background-color: #e4d4b8; +} +.list-group-item-yellow.list-group-item-action.active { + color: #ffffff; + background-color: #935f00; + border-color: #935f00; +} + +.list-group-item-lime { + color: #466e0d; + background-color: #e3f1d0; +} +.list-group-item-lime.list-group-item-action:hover, .list-group-item-lime.list-group-item-action:focus { + color: #466e0d; + background-color: #ccd9bb; +} +.list-group-item-lime.list-group-item-action.active { + color: #ffffff; + background-color: #466e0d; + border-color: #466e0d; +} + +.list-group-item-green { + color: #1c6b29; + background-color: #d5f0da; +} +.list-group-item-green.list-group-item-action:hover, .list-group-item-green.list-group-item-action:focus { + color: #1c6b29; + background-color: #c0d8c4; +} +.list-group-item-green.list-group-item-action.active { + color: #ffffff; + background-color: #1c6b29; + border-color: #1c6b29; +} + +.list-group-item-teal { + color: #076448; + background-color: #ceede4; +} +.list-group-item-teal.list-group-item-action:hover, .list-group-item-teal.list-group-item-action:focus { + color: #076448; + background-color: #b9d5cd; +} +.list-group-item-teal.list-group-item-action.active { + color: #ffffff; + background-color: #076448; + border-color: #076448; +} + +.list-group-item-cyan { + color: #0e616e; + background-color: #d1ecf1; +} +.list-group-item-cyan.list-group-item-action:hover, .list-group-item-cyan.list-group-item-action:focus { + color: #0e616e; + background-color: #bcd4d9; +} +.list-group-item-cyan.list-group-item-action.active { + color: #ffffff; + background-color: #0e616e; + border-color: #0e616e; +} + +.list-group-item-facebook { + color: #23355b; + background-color: #d8deea; +} +.list-group-item-facebook.list-group-item-action:hover, .list-group-item-facebook.list-group-item-action:focus { + color: #23355b; + background-color: #c2c8d3; +} +.list-group-item-facebook.list-group-item-action.active { + color: #ffffff; + background-color: #23355b; + border-color: #23355b; +} + +.list-group-item-twitter { + color: #116191; + background-color: #d2ecfc; +} +.list-group-item-twitter.list-group-item-action:hover, .list-group-item-twitter.list-group-item-action:focus { + color: #116191; + background-color: #bdd4e3; +} +.list-group-item-twitter.list-group-item-action.active { + color: #ffffff; + background-color: #116191; + border-color: #116191; +} + +.list-group-item-linkedin { + color: #063d74; + background-color: #cee0f3; +} +.list-group-item-linkedin.list-group-item-action:hover, .list-group-item-linkedin.list-group-item-action:focus { + color: #063d74; + background-color: #b9cadb; +} +.list-group-item-linkedin.list-group-item-action.active { + color: #ffffff; + background-color: #063d74; + border-color: #063d74; +} + +.list-group-item-google { + color: #842f27; + background-color: #f8dcd9; +} +.list-group-item-google.list-group-item-action:hover, .list-group-item-google.list-group-item-action:focus { + color: #842f27; + background-color: #dfc6c3; +} +.list-group-item-google.list-group-item-action.active { + color: #ffffff; + background-color: #842f27; + border-color: #842f27; +} + +.list-group-item-youtube { + color: #990000; + background-color: #ffcccc; +} +.list-group-item-youtube.list-group-item-action:hover, .list-group-item-youtube.list-group-item-action:focus { + color: #990000; + background-color: #e6b8b8; +} +.list-group-item-youtube.list-group-item-action.active { + color: #ffffff; + background-color: #990000; + border-color: #990000; +} + +.list-group-item-vimeo { + color: #106e8c; + background-color: #d1f1fb; +} +.list-group-item-vimeo.list-group-item-action:hover, .list-group-item-vimeo.list-group-item-action:focus { + color: #106e8c; + background-color: #bcd9e2; +} +.list-group-item-vimeo.list-group-item-action.active { + color: #ffffff; + background-color: #106e8c; + border-color: #106e8c; +} + +.list-group-item-dribbble { + color: #8c2e52; + background-color: #fbdbe7; +} +.list-group-item-dribbble.list-group-item-action:hover, .list-group-item-dribbble.list-group-item-action:focus { + color: #8c2e52; + background-color: #e2c5d0; +} +.list-group-item-dribbble.list-group-item-action.active { + color: #ffffff; + background-color: #8c2e52; + border-color: #8c2e52; +} + +.list-group-item-github { + color: #0e0e0e; + background-color: #d1d1d1; +} +.list-group-item-github.list-group-item-action:hover, .list-group-item-github.list-group-item-action:focus { + color: #0e0e0e; + background-color: #bcbcbc; +} +.list-group-item-github.list-group-item-action.active { + color: #ffffff; + background-color: #0e0e0e; + border-color: #0e0e0e; +} + +.list-group-item-instagram { + color: #892639; + background-color: #fad9df; +} +.list-group-item-instagram.list-group-item-action:hover, .list-group-item-instagram.list-group-item-action:focus { + color: #892639; + background-color: #e1c3c9; +} +.list-group-item-instagram.list-group-item-action.active { + color: #ffffff; + background-color: #892639; + border-color: #892639; +} + +.list-group-item-pinterest { + color: #710511; + background-color: #f2ced2; +} +.list-group-item-pinterest.list-group-item-action:hover, .list-group-item-pinterest.list-group-item-action:focus { + color: #710511; + background-color: #dab9bd; +} +.list-group-item-pinterest.list-group-item-action.active { + color: #ffffff; + background-color: #710511; + border-color: #710511; +} + +.list-group-item-vk { + color: #3b4f65; + background-color: #e0e6ee; +} +.list-group-item-vk.list-group-item-action:hover, .list-group-item-vk.list-group-item-action:focus { + color: #3b4f65; + background-color: #cacfd6; +} +.list-group-item-vk.list-group-item-action.active { + color: #ffffff; + background-color: #3b4f65; + border-color: #3b4f65; +} + +.list-group-item-rss { + color: #996300; + background-color: #ffedcc; +} +.list-group-item-rss.list-group-item-action:hover, .list-group-item-rss.list-group-item-action:focus { + color: #996300; + background-color: #e6d5b8; +} +.list-group-item-rss.list-group-item-action.active { + color: #ffffff; + background-color: #996300; + border-color: #996300; +} + +.list-group-item-flickr { + color: #003b84; + background-color: #cce0f8; +} +.list-group-item-flickr.list-group-item-action:hover, .list-group-item-flickr.list-group-item-action:focus { + color: #003b84; + background-color: #b8cadf; +} +.list-group-item-flickr.list-group-item-action.active { + color: #ffffff; + background-color: #003b84; + border-color: #003b84; +} + +.list-group-item-bitbucket { + color: #00317a; + background-color: #ccdcf5; +} +.list-group-item-bitbucket.list-group-item-action:hover, .list-group-item-bitbucket.list-group-item-action:focus { + color: #00317a; + background-color: #b8c6dd; +} +.list-group-item-bitbucket.list-group-item-action.active { + color: #ffffff; + background-color: #00317a; + border-color: #00317a; +} + +.list-group-item-tabler { + color: #134076; + background-color: #d2e1f3; +} +.list-group-item-tabler.list-group-item-action:hover, .list-group-item-tabler.list-group-item-action:focus { + color: #134076; + background-color: #bdcbdb; +} +.list-group-item-tabler.list-group-item-action.active { + color: #ffffff; + background-color: #134076; + border-color: #134076; +} + .btn-close { box-sizing: content-box; width: 0.75rem; height: 0.75rem; padding: 0.25em 0.25em; color: #000000; - background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/0.75rem auto no-repeat; + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/0.75rem auto no-repeat; border: 0; border-radius: 4px; opacity: 0.3; @@ -4892,15 +6502,30 @@ textarea.form-control-lg { } .toast { - width: 350px; + --tblr-toast-padding-x: 0.75rem; + --tblr-toast-padding-y: 0.5rem; + --tblr-toast-spacing: 1.5rem; + --tblr-toast-max-width: 350px; + --tblr-toast-font-size: 0.875rem; + --tblr-toast-color: ; + --tblr-toast-bg: rgba(255, 255, 255, 0.85); + --tblr-toast-border-width: 1px; + --tblr-toast-border-color: #e6e7e9; + --tblr-toast-border-radius: 4px; + --tblr-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --tblr-toast-header-color: #626976; + --tblr-toast-header-bg: rgba(255, 255, 255, 0.85); + --tblr-toast-header-border-color: rgba(0, 0, 0, 0.05); + width: var(--tblr-toast-max-width); max-width: 100%; - font-size: 0.875rem; + font-size: var(--tblr-toast-font-size); + color: var(--tblr-toast-color); pointer-events: auto; - background-color: rgba(255, 255, 255, 0.85); + background-color: var(--tblr-toast-bg); background-clip: padding-box; - border: 1px solid #e6e7e9; - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); - border-radius: 4px; + border: var(--tblr-toast-border-width) solid var(--tblr-toast-border-color); + box-shadow: var(--tblr-toast-box-shadow); + border-radius: var(--tblr-toast-border-radius); } .toast.showing { opacity: 0; @@ -4910,6 +6535,8 @@ textarea.form-control-lg { } .toast-container { + position: absolute; + z-index: 1090; width: -webkit-max-content; width: -moz-max-content; width: max-content; @@ -4917,35 +6544,56 @@ textarea.form-control-lg { pointer-events: none; } .toast-container > :not(:last-child) { - margin-bottom: 1.5rem; + margin-bottom: var(--tblr-toast-spacing); } .toast-header { display: flex; align-items: center; - padding: 0.5rem 0.75rem; - color: #626976; - background-color: rgba(255, 255, 255, 0.85); + padding: var(--tblr-toast-padding-y) var(--tblr-toast-padding-x); + color: var(--tblr-toast-header-color); + background-color: var(--tblr-toast-header-bg); background-clip: padding-box; - border-bottom: 1px solid rgba(0, 0, 0, 0.05); - border-top-left-radius: 3px; - border-top-right-radius: 3px; + border-bottom: var(--tblr-toast-border-width) solid var(--tblr-toast-header-border-color); + border-top-left-radius: calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width)); + border-top-right-radius: calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width)); } .toast-header .btn-close { - margin-right: -0.375rem; - margin-left: 0.75rem; + margin-right: calc(var(--tblr-toast-padding-x) * -0.5); + margin-left: var(--tblr-toast-padding-x); } .toast-body { - padding: 0.75rem; + padding: var(--tblr-toast-padding-x); word-wrap: break-word; } .modal { + --tblr-modal-zindex: 1055; + --tblr-modal-width: 540px; + --tblr-modal-padding: 1.5rem; + --tblr-modal-margin: 0.5rem; + --tblr-modal-color: ; + --tblr-modal-bg: #fafbfc; + --tblr-modal-border-color: transparent; + --tblr-modal-border-width: 1px; + --tblr-modal-border-radius: 4px; + --tblr-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --tblr-modal-inner-border-radius: 3px; + --tblr-modal-header-padding-x: 1.5rem; + --tblr-modal-header-padding-y: 1.5rem; + --tblr-modal-header-padding: 1.5rem; + --tblr-modal-header-border-color: #e6e7e9; + --tblr-modal-header-border-width: 1px; + --tblr-modal-title-line-height: 1.4285714286; + --tblr-modal-footer-gap: 0.75rem; + --tblr-modal-footer-bg: ; + --tblr-modal-footer-border-color: #e6e7e9; + --tblr-modal-footer-border-width: 0; position: fixed; top: 0; left: 0; - z-index: 1055; + z-index: var(--tblr-modal-zindex); display: none; width: 100%; height: 100%; @@ -4957,7 +6605,7 @@ textarea.form-control-lg { .modal-dialog { position: relative; width: auto; - margin: 0.5rem; + margin: var(--tblr-modal-margin); pointer-events: none; } .modal.fade .modal-dialog { @@ -4977,7 +6625,7 @@ textarea.form-control-lg { } .modal-dialog-scrollable { - height: calc(100% - 1rem); + height: calc(100% - var(--tblr-modal-margin) * 2); } .modal-dialog-scrollable .modal-content { max-height: 100%; @@ -4990,7 +6638,7 @@ textarea.form-control-lg { .modal-dialog-centered { display: flex; align-items: center; - min-height: calc(100% - 1rem); + min-height: calc(100% - var(--tblr-modal-margin) * 2); } .modal-content { @@ -4998,28 +6646,32 @@ textarea.form-control-lg { display: flex; flex-direction: column; width: 100%; + color: var(--tblr-modal-color); pointer-events: auto; - background-color: #fafbfc; + background-color: var(--tblr-modal-bg); background-clip: padding-box; - border: 1px solid transparent; - border-radius: 4px; + border: var(--tblr-modal-border-width) solid var(--tblr-modal-border-color); + border-radius: var(--tblr-modal-border-radius); outline: 0; } .modal-backdrop { + --tblr-backdrop-zindex: 1050; + --tblr-backdrop-bg: #1e293b; + --tblr-backdrop-opacity: 0.24; position: fixed; top: 0; left: 0; - z-index: 1050; + z-index: var(--tblr-backdrop-zindex); width: 100vw; height: 100vh; - background-color: #1e293b; + background-color: var(--tblr-backdrop-bg); } .modal-backdrop.fade { opacity: 0; } .modal-backdrop.show { - opacity: 0.24; + opacity: var(--tblr-backdrop-opacity); } .modal-header { @@ -5027,69 +6679,66 @@ textarea.form-control-lg { flex-shrink: 0; align-items: center; justify-content: space-between; - padding: 1.5rem; - border-bottom: 1px solid #e6e7e9; - border-top-left-radius: 3px; - border-top-right-radius: 3px; + padding: var(--tblr-modal-header-padding); + border-bottom: var(--tblr-modal-header-border-width) solid var(--tblr-modal-header-border-color); + border-top-left-radius: var(--tblr-modal-inner-border-radius); + border-top-right-radius: var(--tblr-modal-inner-border-radius); } .modal-header .btn-close { - padding: 0.75rem 0.75rem; - margin: -0.75rem -0.75rem -0.75rem auto; + padding: calc(var(--tblr-modal-header-padding-y) * 0.5) calc(var(--tblr-modal-header-padding-x) * 0.5); + margin: calc(var(--tblr-modal-header-padding-y) * -0.5) calc(var(--tblr-modal-header-padding-x) * -0.5) calc(var(--tblr-modal-header-padding-y) * -0.5) auto; } .modal-title { margin-bottom: 0; - line-height: 1.4285714286; + line-height: var(--tblr-modal-title-line-height); } .modal-body { position: relative; flex: 1 1 auto; - padding: 1.5rem; + padding: var(--tblr-modal-padding); } .modal-footer { display: flex; - flex-wrap: wrap; flex-shrink: 0; + flex-wrap: wrap; align-items: center; justify-content: flex-end; - padding: 1.125rem; - border-top: 0 solid #e6e7e9; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; + padding: calc(var(--tblr-modal-padding) - var(--tblr-modal-footer-gap) * 0.5); + background-color: var(--tblr-modal-footer-bg); + border-top: var(--tblr-modal-footer-border-width) solid var(--tblr-modal-footer-border-color); + border-bottom-right-radius: var(--tblr-modal-inner-border-radius); + border-bottom-left-radius: var(--tblr-modal-inner-border-radius); } .modal-footer > * { - margin: 0.375rem; + margin: calc(var(--tblr-modal-footer-gap) * 0.5); } @media (min-width: 576px) { + .modal { + --tblr-modal-margin: 1.75rem; + --tblr-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + } .modal-dialog { - max-width: 540px; - margin: 1.75rem auto; + max-width: var(--tblr-modal-width); + margin-right: auto; + margin-left: auto; } - - .modal-dialog-scrollable { - height: calc(100% - 3.5rem); - } - - .modal-dialog-centered { - min-height: calc(100% - 3.5rem); - } - .modal-sm { - max-width: 380px; + --tblr-modal-width: 380px; } } @media (min-width: 992px) { .modal-lg, .modal-xl { - max-width: 720px; + --tblr-modal-width: 720px; } } @media (min-width: 1200px) { .modal-xl { - max-width: 1140px; + --tblr-modal-width: 1140px; } } .modal-fullscreen { @@ -5103,15 +6752,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } -.modal-fullscreen .modal-header { +.modal-fullscreen .modal-header, +.modal-fullscreen .modal-footer { border-radius: 0; } .modal-fullscreen .modal-body { overflow-y: auto; } -.modal-fullscreen .modal-footer { - border-radius: 0; -} @media (max-width: 575.98px) { .modal-fullscreen-sm-down { @@ -5125,15 +6772,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-sm-down .modal-header { + .modal-fullscreen-sm-down .modal-header, +.modal-fullscreen-sm-down .modal-footer { border-radius: 0; } .modal-fullscreen-sm-down .modal-body { overflow-y: auto; } - .modal-fullscreen-sm-down .modal-footer { - border-radius: 0; - } } @media (max-width: 767.98px) { .modal-fullscreen-md-down { @@ -5147,15 +6792,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-md-down .modal-header { + .modal-fullscreen-md-down .modal-header, +.modal-fullscreen-md-down .modal-footer { border-radius: 0; } .modal-fullscreen-md-down .modal-body { overflow-y: auto; } - .modal-fullscreen-md-down .modal-footer { - border-radius: 0; - } } @media (max-width: 991.98px) { .modal-fullscreen-lg-down { @@ -5169,15 +6812,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-lg-down .modal-header { + .modal-fullscreen-lg-down .modal-header, +.modal-fullscreen-lg-down .modal-footer { border-radius: 0; } .modal-fullscreen-lg-down .modal-body { overflow-y: auto; } - .modal-fullscreen-lg-down .modal-footer { - border-radius: 0; - } } @media (max-width: 1199.98px) { .modal-fullscreen-xl-down { @@ -5191,15 +6832,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-xl-down .modal-header { + .modal-fullscreen-xl-down .modal-header, +.modal-fullscreen-xl-down .modal-footer { border-radius: 0; } .modal-fullscreen-xl-down .modal-body { overflow-y: auto; } - .modal-fullscreen-xl-down .modal-footer { - border-radius: 0; - } } @media (max-width: 1399.98px) { .modal-fullscreen-xxl-down { @@ -5213,21 +6852,31 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-xxl-down .modal-header { + .modal-fullscreen-xxl-down .modal-header, +.modal-fullscreen-xxl-down .modal-footer { border-radius: 0; } .modal-fullscreen-xxl-down .modal-body { overflow-y: auto; } - .modal-fullscreen-xxl-down .modal-footer { - border-radius: 0; - } } .tooltip { - position: absolute; - z-index: 1080; + --tblr-tooltip-zindex: 1080; + --tblr-tooltip-max-width: 200px; + --tblr-tooltip-padding-x: 0.5rem; + --tblr-tooltip-padding-y: 0.25rem; + --tblr-tooltip-margin: ; + --tblr-tooltip-font-size: 0.765625rem; + --tblr-tooltip-color: #ffffff; + --tblr-tooltip-bg: #000000; + --tblr-tooltip-border-radius: 4px; + --tblr-tooltip-opacity: 0.9; + --tblr-tooltip-arrow-width: 0.8rem; + --tblr-tooltip-arrow-height: 0.4rem; + z-index: var(--tblr-tooltip-zindex); display: block; - margin: 0; + padding: var(--tblr-tooltip-arrow-height); + margin: var(--tblr-tooltip-margin); font-family: var(--tblr-font-sans-serif); font-style: normal; font-weight: 400; @@ -5239,21 +6888,20 @@ textarea.form-control-lg { text-transform: none; letter-spacing: normal; word-break: normal; - word-spacing: normal; white-space: normal; + word-spacing: normal; line-break: auto; - font-size: 0.765625rem; + font-size: var(--tblr-tooltip-font-size); word-wrap: break-word; opacity: 0; } .tooltip.show { - opacity: 0.9; + opacity: var(--tblr-tooltip-opacity); } .tooltip .tooltip-arrow { - position: absolute; display: block; - width: 0.8rem; - height: 0.4rem; + width: var(--tblr-tooltip-arrow-width); + height: var(--tblr-tooltip-arrow-height); } .tooltip .tooltip-arrow::before { position: absolute; @@ -5262,74 +6910,83 @@ textarea.form-control-lg { border-style: solid; } -.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=top] { - padding: 0.4rem 0; -} .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { bottom: 0; } .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { top: -1px; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000000; + border-width: var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--tblr-tooltip-bg); } -.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=right] { - padding: 0 0.4rem; -} +/* rtl:begin:ignore */ .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { left: 0; - width: 0.4rem; - height: 0.8rem; + width: var(--tblr-tooltip-arrow-height); + height: var(--tblr-tooltip-arrow-width); } .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { right: -1px; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000000; + border-width: calc(var(--tblr-tooltip-arrow-width) * 0.5) var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--tblr-tooltip-bg); } -.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=bottom] { - padding: 0.4rem 0; -} +/* rtl:end:ignore */ .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { top: 0; } .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { bottom: -1px; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000000; + border-width: 0 calc(var(--tblr-tooltip-arrow-width) * 0.5) var(--tblr-tooltip-arrow-height); + border-bottom-color: var(--tblr-tooltip-bg); } -.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=left] { - padding: 0 0.4rem; -} +/* rtl:begin:ignore */ .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { right: 0; - width: 0.4rem; - height: 0.8rem; + width: var(--tblr-tooltip-arrow-height); + height: var(--tblr-tooltip-arrow-width); } .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { left: -1px; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000000; + border-width: calc(var(--tblr-tooltip-arrow-width) * 0.5) 0 calc(var(--tblr-tooltip-arrow-width) * 0.5) var(--tblr-tooltip-arrow-height); + border-left-color: var(--tblr-tooltip-bg); } +/* rtl:end:ignore */ .tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #ffffff; + max-width: var(--tblr-tooltip-max-width); + padding: var(--tblr-tooltip-padding-y) var(--tblr-tooltip-padding-x); + color: var(--tblr-tooltip-color); text-align: center; - background-color: #000000; - border-radius: 4px; + background-color: var(--tblr-tooltip-bg); + border-radius: var(--tblr-tooltip-border-radius); } .popover { - position: absolute; - top: 0; - left: 0 /* rtl:ignore */; - z-index: 1070; + --tblr-popover-zindex: 1070; + --tblr-popover-max-width: 276px; + --tblr-popover-font-size: 0.765625rem; + --tblr-popover-bg: #ffffff; + --tblr-popover-border-width: 1px; + --tblr-popover-border-color: #e6e7e9; + --tblr-popover-border-radius: 8px; + --tblr-popover-inner-border-radius: 7px; + --tblr-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --tblr-popover-header-padding-x: 1rem; + --tblr-popover-header-padding-y: 0.5rem; + --tblr-popover-header-font-size: 0.875rem; + --tblr-popover-header-color: var(--tblr-heading-color); + --tblr-popover-header-bg: #f0f0f0; + --tblr-popover-body-padding-x: 1rem; + --tblr-popover-body-padding-y: 1rem; + --tblr-popover-body-color: #1e293b; + --tblr-popover-arrow-width: 1rem; + --tblr-popover-arrow-height: 0.5rem; + --tblr-popover-arrow-border: var(--tblr-popover-border-color); + z-index: var(--tblr-popover-zindex); display: block; - max-width: 276px; + max-width: var(--tblr-popover-max-width); font-family: var(--tblr-font-sans-serif); font-style: normal; font-weight: 400; @@ -5341,21 +6998,20 @@ textarea.form-control-lg { text-transform: none; letter-spacing: normal; word-break: normal; - word-spacing: normal; white-space: normal; + word-spacing: normal; line-break: auto; - font-size: 0.765625rem; + font-size: var(--tblr-popover-font-size); word-wrap: break-word; - background-color: #ffffff; + background-color: var(--tblr-popover-bg); background-clip: padding-box; - border: 1px solid #e6e7e9; - border-radius: 8px; + border: var(--tblr-popover-border-width) solid var(--tblr-popover-border-color); + border-radius: var(--tblr-popover-border-radius); } .popover .popover-arrow { - position: absolute; display: block; - width: 1rem; - height: 0.5rem; + width: var(--tblr-popover-arrow-width); + height: var(--tblr-popover-arrow-height); } .popover .popover-arrow::before, .popover .popover-arrow::after { position: absolute; @@ -5363,94 +7019,104 @@ textarea.form-control-lg { content: ""; border-color: transparent; border-style: solid; + border-width: 0; } .bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { - bottom: calc(-0.5rem - 1px); + bottom: calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width)); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * 0.5) 0; } .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { bottom: 0; - border-width: 0.5rem 0.5rem 0; - border-top-color: #e6e7e9; + border-top-color: var(--tblr-popover-arrow-border); } .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { - bottom: 1px; - border-width: 0.5rem 0.5rem 0; - border-top-color: #ffffff; + bottom: var(--tblr-popover-border-width); + border-top-color: var(--tblr-popover-bg); } +/* rtl:begin:ignore */ .bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { - left: calc(-0.5rem - 1px); - width: 0.5rem; - height: 1rem; + left: calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width)); + width: var(--tblr-popover-arrow-height); + height: var(--tblr-popover-arrow-width); +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--tblr-popover-arrow-width) * 0.5) var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * 0.5) 0; } .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { left: 0; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: #e6e7e9; + border-right-color: var(--tblr-popover-arrow-border); } .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { - left: 1px; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: #ffffff; + left: var(--tblr-popover-border-width); + border-right-color: var(--tblr-popover-bg); } +/* rtl:end:ignore */ .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { - top: calc(-0.5rem - 1px); + top: calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--tblr-popover-arrow-width) * 0.5) var(--tblr-popover-arrow-height); } .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { top: 0; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: #e6e7e9; + border-bottom-color: var(--tblr-popover-arrow-border); } .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { - top: 1px; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: #ffffff; + top: var(--tblr-popover-border-width); + border-bottom-color: var(--tblr-popover-bg); } .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { position: absolute; top: 0; left: 50%; display: block; - width: 1rem; - margin-left: -0.5rem; + width: var(--tblr-popover-arrow-width); + margin-left: calc(var(--tblr-popover-arrow-width) * -0.5); content: ""; - border-bottom: 1px solid #f0f0f0; + border-bottom: var(--tblr-popover-border-width) solid var(--tblr-popover-header-bg); } +/* rtl:begin:ignore */ .bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { - right: calc(-0.5rem - 1px); - width: 0.5rem; - height: 1rem; + right: calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width)); + width: var(--tblr-popover-arrow-height); + height: var(--tblr-popover-arrow-width); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--tblr-popover-arrow-width) * 0.5) 0 calc(var(--tblr-popover-arrow-width) * 0.5) var(--tblr-popover-arrow-height); } .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { right: 0; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: #e6e7e9; + border-left-color: var(--tblr-popover-arrow-border); } .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { - right: 1px; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: #ffffff; + right: var(--tblr-popover-border-width); + border-left-color: var(--tblr-popover-bg); } +/* rtl:end:ignore */ .popover-header { - padding: 0.5rem 1rem; + padding: var(--tblr-popover-header-padding-y) var(--tblr-popover-header-padding-x); margin-bottom: 0; - font-size: 0.875rem; - background-color: #f0f0f0; - border-bottom: 1px solid #e6e7e9; - border-top-left-radius: 7px; - border-top-right-radius: 7px; + font-size: var(--tblr-popover-header-font-size); + color: var(--tblr-popover-header-color); + background-color: var(--tblr-popover-header-bg); + border-bottom: var(--tblr-popover-border-width) solid var(--tblr-popover-border-color); + border-top-left-radius: var(--tblr-popover-inner-border-radius); + border-top-right-radius: var(--tblr-popover-inner-border-radius); } .popover-header:empty { display: none; } .popover-body { - padding: 1rem 1rem; - color: #1e293b; + padding: var(--tblr-popover-body-padding-y) var(--tblr-popover-body-padding-x); + color: var(--tblr-popover-body-color); } .carousel { @@ -5660,6 +7326,17 @@ textarea.form-control-lg { color: #000000; } +.spinner-grow, +.spinner-border { + display: inline-block; + width: var(--tblr-spinner-width); + height: var(--tblr-spinner-height); + vertical-align: var(--tblr-spinner-vertical-align); + border-radius: 50%; + -webkit-animation: var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name); + animation: var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name); +} + @-webkit-keyframes spinner-border { to { transform: rotate(360deg) /* rtl:ignore */; @@ -5672,21 +7349,20 @@ textarea.form-control-lg { } } .spinner-border { - display: inline-block; - width: 1.5rem; - height: 1.5rem; - vertical-align: -0.125em; - border: 2px solid currentColor; + --tblr-spinner-width: 1.5rem; + --tblr-spinner-height: 1.5rem; + --tblr-spinner-vertical-align: -0.125em; + --tblr-spinner-border-width: 2px; + --tblr-spinner-animation-speed: 0.75s; + --tblr-spinner-animation-name: spinner-border; + border: var(--tblr-spinner-border-width) solid currentcolor; border-right-color: transparent; - border-radius: 50%; - -webkit-animation: 0.75s linear infinite spinner-border; - animation: 0.75s linear infinite spinner-border; } .spinner-border-sm { - width: 1rem; - height: 1rem; - border-width: 1px; + --tblr-spinner-width: 1rem; + --tblr-spinner-height: 1rem; + --tblr-spinner-border-width: 0.2em; } @-webkit-keyframes spinner-grow { @@ -5709,29 +7385,478 @@ textarea.form-control-lg { } } .spinner-grow { - display: inline-block; - width: 1.5rem; - height: 1.5rem; - vertical-align: -0.125em; - background-color: currentColor; - border-radius: 50%; + --tblr-spinner-width: 1.5rem; + --tblr-spinner-height: 1.5rem; + --tblr-spinner-vertical-align: -0.125em; + --tblr-spinner-animation-speed: 0.75s; + --tblr-spinner-animation-name: spinner-grow; + background-color: currentcolor; opacity: 0; - -webkit-animation: 0.75s linear infinite spinner-grow; - animation: 0.75s linear infinite spinner-grow; } .spinner-grow-sm { - width: 1rem; - height: 1rem; + --tblr-spinner-width: 1rem; + --tblr-spinner-height: 1rem; } @media (prefers-reduced-motion: reduce) { .spinner-border, .spinner-grow { - -webkit-animation-duration: 1.5s; - animation-duration: 1.5s; + --tblr-spinner-animation-speed: 1.5s; } } +.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --tblr-offcanvas-width: 400px; + --tblr-offcanvas-height: 30vh; + --tblr-offcanvas-padding-x: 1.5rem; + --tblr-offcanvas-padding-y: 1.5rem; + --tblr-offcanvas-color: ; + --tblr-offcanvas-bg: #fafbfc; + --tblr-offcanvas-border-width: 1px; + --tblr-offcanvas-border-color: rgba(98, 105, 118, 0.16); + --tblr-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); +} + +@media (max-width: 575.98px) { + .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-sm { + transition: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; + } +} +@media (min-width: 576px) { + .offcanvas-sm { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-sm .offcanvas-header { + display: none; + } + .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .offcanvas-md { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-md { + transition: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; + } +} +@media (min-width: 768px) { + .offcanvas-md { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-md .offcanvas-header { + display: none; + } + .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-lg { + transition: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; + } +} +@media (min-width: 992px) { + .offcanvas-lg { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-lg .offcanvas-header { + display: none; + } + .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xl { + transition: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; + } +} +@media (min-width: 1200px) { + .offcanvas-xl { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xl .offcanvas-header { + display: none; + } + .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xxl { + transition: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; + } +} +@media (min-width: 1400px) { + .offcanvas-xxl { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xxl .offcanvas-header { + display: none; + } + .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + .offcanvas { position: fixed; bottom: 0; @@ -5739,8 +7864,9 @@ textarea.form-control-lg { display: flex; flex-direction: column; max-width: 100%; + color: var(--tblr-offcanvas-color); visibility: hidden; - background-color: #fafbfc; + background-color: var(--tblr-offcanvas-bg); background-clip: padding-box; outline: 0; transition: transform 0.3s ease-in-out; @@ -5750,6 +7876,43 @@ textarea.form-control-lg { transition: none; } } +.offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); +} +.offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); +} +.offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); +} +.offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); +} +.offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; +} .offcanvas-backdrop { position: fixed; @@ -5771,13 +7934,13 @@ textarea.form-control-lg { display: flex; align-items: center; justify-content: space-between; - padding: 1.5rem 1.5rem; + padding: var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x); } .offcanvas-header .btn-close { - padding: 0.75rem 0.75rem; - margin-top: -0.75rem; - margin-right: -0.75rem; - margin-bottom: -0.75rem; + padding: calc(var(--tblr-offcanvas-padding-y) * 0.5) calc(var(--tblr-offcanvas-padding-x) * 0.5); + margin-top: calc(var(--tblr-offcanvas-padding-y) * -0.5); + margin-right: calc(var(--tblr-offcanvas-padding-x) * -0.5); + margin-bottom: calc(var(--tblr-offcanvas-padding-y) * -0.5); } .offcanvas-title { @@ -5787,55 +7950,16 @@ textarea.form-control-lg { .offcanvas-body { flex-grow: 1; - padding: 1.5rem 1.5rem; + padding: var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x); overflow-y: auto; } -.offcanvas-start { - top: 0; - left: 0; - width: 400px; - border-right: 1px solid rgba(98, 105, 118, 0.16); - transform: translateX(-100%); -} - -.offcanvas-end { - top: 0; - right: 0; - width: 400px; - border-left: 1px solid rgba(98, 105, 118, 0.16); - transform: translateX(100%); -} - -.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: 30vh; - max-height: 100%; - border-bottom: 1px solid rgba(98, 105, 118, 0.16); - transform: translateY(-100%); -} - -.offcanvas-bottom { - right: 0; - left: 0; - height: 30vh; - max-height: 100%; - border-top: 1px solid rgba(98, 105, 118, 0.16); - transform: translateY(100%); -} - -.offcanvas.show { - transform: none; -} - .placeholder { display: inline-block; min-height: 1em; vertical-align: middle; cursor: wait; - background-color: currentColor; + background-color: currentcolor; opacity: 0.2; } .placeholder.btn::before { @@ -5899,67 +8023,436 @@ textarea.form-control-lg { content: ""; } +.text-bg-primary { + color: #fafbfc !important; + background-color: RGBA(32, 107, 196, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-secondary { + color: #fafbfc !important; + background-color: RGBA(98, 105, 118, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-success { + color: #fafbfc !important; + background-color: RGBA(47, 179, 68, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-info { + color: #fafbfc !important; + background-color: RGBA(66, 153, 225, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-warning { + color: #fafbfc !important; + background-color: RGBA(247, 103, 7, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-danger { + color: #fafbfc !important; + background-color: RGBA(214, 57, 57, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-light { + color: #1e293b !important; + background-color: RGBA(250, 251, 252, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-dark { + color: #fafbfc !important; + background-color: RGBA(30, 41, 59, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-muted { + color: #fafbfc !important; + background-color: RGBA(98, 105, 118, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-blue { + color: #fafbfc !important; + background-color: RGBA(32, 107, 196, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-azure { + color: #fafbfc !important; + background-color: RGBA(66, 153, 225, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-indigo { + color: #fafbfc !important; + background-color: RGBA(66, 99, 235, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-purple { + color: #fafbfc !important; + background-color: RGBA(174, 62, 201, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-pink { + color: #fafbfc !important; + background-color: RGBA(214, 51, 108, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-red { + color: #fafbfc !important; + background-color: RGBA(214, 57, 57, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-orange { + color: #fafbfc !important; + background-color: RGBA(247, 103, 7, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-yellow { + color: #fafbfc !important; + background-color: RGBA(245, 159, 0, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-lime { + color: #fafbfc !important; + background-color: RGBA(116, 184, 22, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-green { + color: #fafbfc !important; + background-color: RGBA(47, 179, 68, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-teal { + color: #fafbfc !important; + background-color: RGBA(12, 166, 120, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-cyan { + color: #fafbfc !important; + background-color: RGBA(23, 162, 184, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-facebook { + color: #fafbfc !important; + background-color: RGBA(59, 89, 152, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-twitter { + color: #fafbfc !important; + background-color: RGBA(29, 161, 242, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-linkedin { + color: #fafbfc !important; + background-color: RGBA(10, 102, 194, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-google { + color: #fafbfc !important; + background-color: RGBA(220, 78, 65, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-youtube { + color: #fafbfc !important; + background-color: RGBA(255, 0, 0, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-vimeo { + color: #fafbfc !important; + background-color: RGBA(26, 183, 234, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-dribbble { + color: #fafbfc !important; + background-color: RGBA(234, 76, 137, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-github { + color: #fafbfc !important; + background-color: RGBA(24, 23, 23, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-instagram { + color: #fafbfc !important; + background-color: RGBA(228, 64, 95, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-pinterest { + color: #fafbfc !important; + background-color: RGBA(189, 8, 28, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-vk { + color: #fafbfc !important; + background-color: RGBA(99, 131, 168, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-rss { + color: #fafbfc !important; + background-color: RGBA(255, 165, 0, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-flickr { + color: #fafbfc !important; + background-color: RGBA(0, 99, 220, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-bitbucket { + color: #fafbfc !important; + background-color: RGBA(0, 82, 204, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-tabler { + color: #fafbfc !important; + background-color: RGBA(32, 107, 196, var(--tblr-bg-opacity, 1)) !important; +} + .link-primary { - color: #206bc4; + color: #206bc4 !important; } .link-primary:hover, .link-primary:focus { - color: #1a569d; + color: #1a569d !important; } .link-secondary { - color: #626976; + color: #626976 !important; } .link-secondary:hover, .link-secondary:focus { - color: #4e545e; + color: #4e545e !important; } .link-success { - color: #2fb344; + color: #2fb344 !important; } .link-success:hover, .link-success:focus { - color: #268f36; + color: #268f36 !important; } .link-info { - color: #4299e1; + color: #4299e1 !important; } .link-info:hover, .link-info:focus { - color: #357ab4; + color: #357ab4 !important; } .link-warning { - color: #f76707; + color: #f76707 !important; } .link-warning:hover, .link-warning:focus { - color: #c65206; + color: #c65206 !important; } .link-danger { - color: #d63939; + color: #d63939 !important; } .link-danger:hover, .link-danger:focus { - color: #ab2e2e; + color: #ab2e2e !important; } .link-light { - color: #fafbfc; + color: #fafbfc !important; } .link-light:hover, .link-light:focus { - color: #fbfcfd; + color: #fbfcfd !important; } .link-dark { - color: #1e293b; + color: #1e293b !important; } .link-dark:hover, .link-dark:focus { - color: #18212f; + color: #18212f !important; } .link-muted { - color: #626976; + color: #626976 !important; } .link-muted:hover, .link-muted:focus { - color: #4e545e; + color: #4e545e !important; +} + +.link-blue { + color: #206bc4 !important; +} +.link-blue:hover, .link-blue:focus { + color: #1a569d !important; +} + +.link-azure { + color: #4299e1 !important; +} +.link-azure:hover, .link-azure:focus { + color: #357ab4 !important; +} + +.link-indigo { + color: #4263eb !important; +} +.link-indigo:hover, .link-indigo:focus { + color: #354fbc !important; +} + +.link-purple { + color: #ae3ec9 !important; +} +.link-purple:hover, .link-purple:focus { + color: #8b32a1 !important; +} + +.link-pink { + color: #d6336c !important; +} +.link-pink:hover, .link-pink:focus { + color: #ab2956 !important; +} + +.link-red { + color: #d63939 !important; +} +.link-red:hover, .link-red:focus { + color: #ab2e2e !important; +} + +.link-orange { + color: #f76707 !important; +} +.link-orange:hover, .link-orange:focus { + color: #c65206 !important; +} + +.link-yellow { + color: #f59f00 !important; +} +.link-yellow:hover, .link-yellow:focus { + color: #c47f00 !important; +} + +.link-lime { + color: #74b816 !important; +} +.link-lime:hover, .link-lime:focus { + color: #5d9312 !important; +} + +.link-green { + color: #2fb344 !important; +} +.link-green:hover, .link-green:focus { + color: #268f36 !important; +} + +.link-teal { + color: #0ca678 !important; +} +.link-teal:hover, .link-teal:focus { + color: #0a8560 !important; +} + +.link-cyan { + color: #17a2b8 !important; +} +.link-cyan:hover, .link-cyan:focus { + color: #128293 !important; +} + +.link-facebook { + color: #3b5998 !important; +} +.link-facebook:hover, .link-facebook:focus { + color: #2f477a !important; +} + +.link-twitter { + color: #1da1f2 !important; +} +.link-twitter:hover, .link-twitter:focus { + color: #1781c2 !important; +} + +.link-linkedin { + color: #0a66c2 !important; +} +.link-linkedin:hover, .link-linkedin:focus { + color: #08529b !important; +} + +.link-google { + color: #dc4e41 !important; +} +.link-google:hover, .link-google:focus { + color: #b03e34 !important; +} + +.link-youtube { + color: #ff0000 !important; +} +.link-youtube:hover, .link-youtube:focus { + color: #cc0000 !important; +} + +.link-vimeo { + color: #1ab7ea !important; +} +.link-vimeo:hover, .link-vimeo:focus { + color: #1592bb !important; +} + +.link-dribbble { + color: #ea4c89 !important; +} +.link-dribbble:hover, .link-dribbble:focus { + color: #bb3d6e !important; +} + +.link-github { + color: #181717 !important; +} +.link-github:hover, .link-github:focus { + color: #131212 !important; +} + +.link-instagram { + color: #e4405f !important; +} +.link-instagram:hover, .link-instagram:focus { + color: #b6334c !important; +} + +.link-pinterest { + color: #bd081c !important; +} +.link-pinterest:hover, .link-pinterest:focus { + color: #970616 !important; +} + +.link-vk { + color: #6383a8 !important; +} +.link-vk:hover, .link-vk:focus { + color: #4f6986 !important; +} + +.link-rss { + color: #ffa500 !important; +} +.link-rss:hover, .link-rss:focus { + color: #cc8400 !important; +} + +.link-flickr { + color: #0063dc !important; +} +.link-flickr:hover, .link-flickr:focus { + color: #004fb0 !important; +} + +.link-bitbucket { + color: #0052cc !important; +} +.link-bitbucket:hover, .link-bitbucket:focus { + color: #0042a3 !important; +} + +.link-tabler { + color: #206bc4 !important; +} +.link-tabler:hover, .link-tabler:focus { + color: #1a569d !important; } .ratio { @@ -6030,6 +8523,13 @@ textarea.form-control-lg { z-index: 1020; } +.sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; +} + @media (min-width: 576px) { .sticky-sm-top { position: -webkit-sticky; @@ -6037,6 +8537,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } @media (min-width: 768px) { .sticky-md-top { @@ -6045,6 +8551,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } @media (min-width: 992px) { .sticky-lg-top { @@ -6053,6 +8565,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } @media (min-width: 1200px) { .sticky-xl-top { @@ -6061,6 +8579,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } @media (min-width: 1400px) { .sticky-xxl-top { @@ -6069,6 +8593,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } .hstack { display: flex; @@ -6118,7 +8648,7 @@ textarea.form-control-lg { align-self: stretch; width: 1px; min-height: 1em; - background-color: currentColor; + background-color: currentcolor; opacity: 0.16; } @@ -6392,63 +8922,228 @@ textarea.form-control-lg { } .border-primary { - border-color: #206bc4 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-primary-rgb), var(--tblr-border-opacity)) !important; } .border-secondary { - border-color: #626976 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-secondary-rgb), var(--tblr-border-opacity)) !important; } .border-success { - border-color: #2fb344 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-success-rgb), var(--tblr-border-opacity)) !important; } .border-info { - border-color: #4299e1 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-info-rgb), var(--tblr-border-opacity)) !important; } .border-warning { - border-color: #f76707 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-warning-rgb), var(--tblr-border-opacity)) !important; } .border-danger { - border-color: #d63939 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-danger-rgb), var(--tblr-border-opacity)) !important; } .border-light { - border-color: #fafbfc !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-light-rgb), var(--tblr-border-opacity)) !important; } .border-dark { - border-color: #1e293b !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-dark-rgb), var(--tblr-border-opacity)) !important; } .border-muted { - border-color: #626976 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-muted-rgb), var(--tblr-border-opacity)) !important; +} + +.border-blue { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-blue-rgb), var(--tblr-border-opacity)) !important; +} + +.border-azure { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-azure-rgb), var(--tblr-border-opacity)) !important; +} + +.border-indigo { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-indigo-rgb), var(--tblr-border-opacity)) !important; +} + +.border-purple { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-purple-rgb), var(--tblr-border-opacity)) !important; +} + +.border-pink { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-pink-rgb), var(--tblr-border-opacity)) !important; +} + +.border-red { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-red-rgb), var(--tblr-border-opacity)) !important; +} + +.border-orange { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-orange-rgb), var(--tblr-border-opacity)) !important; +} + +.border-yellow { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-yellow-rgb), var(--tblr-border-opacity)) !important; +} + +.border-lime { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-lime-rgb), var(--tblr-border-opacity)) !important; +} + +.border-green { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-green-rgb), var(--tblr-border-opacity)) !important; +} + +.border-teal { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-teal-rgb), var(--tblr-border-opacity)) !important; +} + +.border-cyan { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-cyan-rgb), var(--tblr-border-opacity)) !important; +} + +.border-facebook { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-facebook-rgb), var(--tblr-border-opacity)) !important; +} + +.border-twitter { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-twitter-rgb), var(--tblr-border-opacity)) !important; +} + +.border-linkedin { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-linkedin-rgb), var(--tblr-border-opacity)) !important; +} + +.border-google { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-google-rgb), var(--tblr-border-opacity)) !important; +} + +.border-youtube { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-youtube-rgb), var(--tblr-border-opacity)) !important; +} + +.border-vimeo { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-vimeo-rgb), var(--tblr-border-opacity)) !important; +} + +.border-dribbble { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-dribbble-rgb), var(--tblr-border-opacity)) !important; +} + +.border-github { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-github-rgb), var(--tblr-border-opacity)) !important; +} + +.border-instagram { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-instagram-rgb), var(--tblr-border-opacity)) !important; +} + +.border-pinterest { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-pinterest-rgb), var(--tblr-border-opacity)) !important; +} + +.border-vk { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-vk-rgb), var(--tblr-border-opacity)) !important; +} + +.border-rss { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-rss-rgb), var(--tblr-border-opacity)) !important; +} + +.border-flickr { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-flickr-rgb), var(--tblr-border-opacity)) !important; +} + +.border-bitbucket { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-border-opacity)) !important; +} + +.border-tabler { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-tabler-rgb), var(--tblr-border-opacity)) !important; } .border-white { - border-color: #ffffff !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-white-rgb), var(--tblr-border-opacity)) !important; } .border-1 { - border-width: 1px !important; + --tblr-border-width: 1px; } .border-2 { - border-width: 2px !important; + --tblr-border-width: 2px; } .border-3 { - border-width: 3px !important; + --tblr-border-width: 3px; } .border-4 { - border-width: 4px !important; + --tblr-border-width: 4px; } .border-5 { - border-width: 5px !important; + --tblr-border-width: 5px; +} + +.border-opacity-10 { + --tblr-border-opacity: 0.1; +} + +.border-opacity-25 { + --tblr-border-opacity: 0.25; +} + +.border-opacity-50 { + --tblr-border-opacity: 0.5; +} + +.border-opacity-75 { + --tblr-border-opacity: 0.75; +} + +.border-opacity-100 { + --tblr-border-opacity: 1; } .w-0 { @@ -6479,10 +9174,18 @@ textarea.form-control-lg { width: 25% !important; } +.w-33 { + width: 33.33333% !important; +} + .w-50 { width: 50% !important; } +.w-66 { + width: 66.66666% !important; +} + .w-75 { width: 75% !important; } @@ -6535,10 +9238,18 @@ textarea.form-control-lg { height: 25% !important; } +.h-33 { + height: 33.33333% !important; +} + .h-50 { height: 50% !important; } +.h-66 { + height: 66.66666% !important; +} + .h-75 { height: 75% !important; } @@ -6611,30 +9322,6 @@ textarea.form-control-lg { flex-wrap: wrap-reverse !important; } -.gap-0 { - gap: 0 !important; -} - -.gap-1 { - gap: 0.25rem !important; -} - -.gap-2 { - gap: 0.5rem !important; -} - -.gap-3 { - gap: 1rem !important; -} - -.gap-4 { - gap: 2rem !important; -} - -.gap-5 { - gap: 4rem !important; -} - .justify-content-start { justify-content: flex-start !important; } @@ -7149,6 +9836,30 @@ textarea.form-control-lg { padding-left: 4rem !important; } +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 2rem !important; +} + +.gap-5 { + gap: 4rem !important; +} + .font-monospace { font-family: var(--tblr-font-monospace) !important; } @@ -7201,6 +9912,10 @@ textarea.form-control-lg { font-weight: 600 !important; } +.fw-semibold { + font-weight: 600 !important; +} + .fw-bolder { font-weight: bolder !important; } @@ -7317,6 +10032,141 @@ textarea.form-control-lg { color: #626976 !important; } +.text-blue { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-blue-rgb), var(--tblr-text-opacity)) !important; +} + +.text-azure { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-azure-rgb), var(--tblr-text-opacity)) !important; +} + +.text-indigo { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-indigo-rgb), var(--tblr-text-opacity)) !important; +} + +.text-purple { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-purple-rgb), var(--tblr-text-opacity)) !important; +} + +.text-pink { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-pink-rgb), var(--tblr-text-opacity)) !important; +} + +.text-red { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-red-rgb), var(--tblr-text-opacity)) !important; +} + +.text-orange { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-orange-rgb), var(--tblr-text-opacity)) !important; +} + +.text-yellow { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-yellow-rgb), var(--tblr-text-opacity)) !important; +} + +.text-lime { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-lime-rgb), var(--tblr-text-opacity)) !important; +} + +.text-green { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-green-rgb), var(--tblr-text-opacity)) !important; +} + +.text-teal { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-teal-rgb), var(--tblr-text-opacity)) !important; +} + +.text-cyan { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-cyan-rgb), var(--tblr-text-opacity)) !important; +} + +.text-facebook { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-facebook-rgb), var(--tblr-text-opacity)) !important; +} + +.text-twitter { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-twitter-rgb), var(--tblr-text-opacity)) !important; +} + +.text-linkedin { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-linkedin-rgb), var(--tblr-text-opacity)) !important; +} + +.text-google { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-google-rgb), var(--tblr-text-opacity)) !important; +} + +.text-youtube { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-youtube-rgb), var(--tblr-text-opacity)) !important; +} + +.text-vimeo { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-vimeo-rgb), var(--tblr-text-opacity)) !important; +} + +.text-dribbble { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-dribbble-rgb), var(--tblr-text-opacity)) !important; +} + +.text-github { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-github-rgb), var(--tblr-text-opacity)) !important; +} + +.text-instagram { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-instagram-rgb), var(--tblr-text-opacity)) !important; +} + +.text-pinterest { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-pinterest-rgb), var(--tblr-text-opacity)) !important; +} + +.text-vk { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-vk-rgb), var(--tblr-text-opacity)) !important; +} + +.text-rss { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-rss-rgb), var(--tblr-text-opacity)) !important; +} + +.text-flickr { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-flickr-rgb), var(--tblr-text-opacity)) !important; +} + +.text-bitbucket { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-text-opacity)) !important; +} + +.text-tabler { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-tabler-rgb), var(--tblr-text-opacity)) !important; +} + .text-black { --tblr-text-opacity: 1; color: rgba(var(--tblr-black-rgb), var(--tblr-text-opacity)) !important; @@ -7408,6 +10258,141 @@ textarea.form-control-lg { background-color: rgba(var(--tblr-muted-rgb), var(--tblr-bg-opacity)) !important; } +.bg-blue { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-blue-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-azure { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-azure-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-indigo { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-indigo-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-purple { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-purple-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-pink { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-pink-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-red { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-red-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-orange { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-orange-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-yellow { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-yellow-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-lime { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-lime-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-green { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-green-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-teal { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-teal-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-cyan { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-cyan-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-facebook { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-facebook-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-twitter { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-twitter-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-linkedin { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-linkedin-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-google { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-google-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-youtube { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-youtube-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-vimeo { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-vimeo-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-dribbble { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-dribbble-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-github { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-github-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-instagram { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-instagram-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-pinterest { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-pinterest-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-vk { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-vk-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-rss { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-rss-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-flickr { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-flickr-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-bitbucket { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-tabler { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-tabler-rgb), var(--tblr-bg-opacity)) !important; +} + .bg-black { --tblr-bg-opacity: 1; background-color: rgba(var(--tblr-black-rgb), var(--tblr-bg-opacity)) !important; @@ -7481,7 +10466,7 @@ textarea.form-control-lg { } .rounded { - border-radius: 4px !important; + border-radius: var(--tblr-border-radius) !important; } .rounded-0 { @@ -7489,15 +10474,23 @@ textarea.form-control-lg { } .rounded-1 { - border-radius: 2px !important; + border-radius: var(--tblr-border-radius-sm) !important; } .rounded-2 { - border-radius: 4px !important; + border-radius: var(--tblr-border-radius) !important; } .rounded-3 { - border-radius: 8px !important; + border-radius: var(--tblr-border-radius-lg) !important; +} + +.rounded-4 { + border-radius: var(--tblr-border-radius-xl) !important; +} + +.rounded-5 { + border-radius: var(--tblr-border-radius-2xl) !important; } .rounded-circle { @@ -7505,27 +10498,27 @@ textarea.form-control-lg { } .rounded-pill { - border-radius: 100rem !important; + border-radius: var(--tblr-border-radius-pill) !important; } .rounded-top { - border-top-left-radius: 4px !important; - border-top-right-radius: 4px !important; + border-top-left-radius: var(--tblr-border-radius) !important; + border-top-right-radius: var(--tblr-border-radius) !important; } .rounded-end { - border-top-right-radius: 4px !important; - border-bottom-right-radius: 4px !important; + border-top-right-radius: var(--tblr-border-radius) !important; + border-bottom-right-radius: var(--tblr-border-radius) !important; } .rounded-bottom { - border-bottom-right-radius: 4px !important; - border-bottom-left-radius: 4px !important; + border-bottom-right-radius: var(--tblr-border-radius) !important; + border-bottom-left-radius: var(--tblr-border-radius) !important; } .rounded-start { - border-bottom-left-radius: 4px !important; - border-top-left-radius: 4px !important; + border-bottom-left-radius: var(--tblr-border-radius) !important; + border-top-left-radius: var(--tblr-border-radius) !important; } .visible { @@ -7684,663 +10677,505 @@ textarea.form-control-lg { .float-sm-start { float: left !important; } - .float-sm-end { float: right !important; } - .float-sm-none { float: none !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-block { display: block !important; } - .d-sm-grid { display: grid !important; } - .d-sm-table { display: table !important; } - .d-sm-table-row { display: table-row !important; } - .d-sm-table-cell { display: table-cell !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline-flex { display: inline-flex !important; } - .d-sm-none { display: none !important; } - .flex-sm-fill { flex: 1 1 auto !important; } - .flex-sm-row { flex-direction: row !important; } - .flex-sm-column { flex-direction: column !important; } - .flex-sm-row-reverse { flex-direction: row-reverse !important; } - .flex-sm-column-reverse { flex-direction: column-reverse !important; } - .flex-sm-grow-0 { flex-grow: 0 !important; } - .flex-sm-grow-1 { flex-grow: 1 !important; } - .flex-sm-shrink-0 { flex-shrink: 0 !important; } - .flex-sm-shrink-1 { flex-shrink: 1 !important; } - .flex-sm-wrap { flex-wrap: wrap !important; } - .flex-sm-nowrap { flex-wrap: nowrap !important; } - .flex-sm-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-sm-0 { - gap: 0 !important; - } - - .gap-sm-1 { - gap: 0.25rem !important; - } - - .gap-sm-2 { - gap: 0.5rem !important; - } - - .gap-sm-3 { - gap: 1rem !important; - } - - .gap-sm-4 { - gap: 2rem !important; - } - - .gap-sm-5 { - gap: 4rem !important; - } - .justify-content-sm-start { justify-content: flex-start !important; } - .justify-content-sm-end { justify-content: flex-end !important; } - .justify-content-sm-center { justify-content: center !important; } - .justify-content-sm-between { justify-content: space-between !important; } - .justify-content-sm-around { justify-content: space-around !important; } - .justify-content-sm-evenly { justify-content: space-evenly !important; } - .align-items-sm-start { align-items: flex-start !important; } - .align-items-sm-end { align-items: flex-end !important; } - .align-items-sm-center { align-items: center !important; } - .align-items-sm-baseline { align-items: baseline !important; } - .align-items-sm-stretch { align-items: stretch !important; } - .align-content-sm-start { align-content: flex-start !important; } - .align-content-sm-end { align-content: flex-end !important; } - .align-content-sm-center { align-content: center !important; } - .align-content-sm-between { align-content: space-between !important; } - .align-content-sm-around { align-content: space-around !important; } - .align-content-sm-stretch { align-content: stretch !important; } - .align-self-sm-auto { align-self: auto !important; } - .align-self-sm-start { align-self: flex-start !important; } - .align-self-sm-end { align-self: flex-end !important; } - .align-self-sm-center { align-self: center !important; } - .align-self-sm-baseline { align-self: baseline !important; } - .align-self-sm-stretch { align-self: stretch !important; } - .order-sm-first { order: -1 !important; } - .order-sm-0 { order: 0 !important; } - .order-sm-1 { order: 1 !important; } - .order-sm-2 { order: 2 !important; } - .order-sm-3 { order: 3 !important; } - .order-sm-4 { order: 4 !important; } - .order-sm-5 { order: 5 !important; } - .order-sm-last { order: 6 !important; } - .m-sm-0 { margin: 0 !important; } - .m-sm-1 { margin: 0.25rem !important; } - .m-sm-2 { margin: 0.5rem !important; } - .m-sm-3 { margin: 1rem !important; } - .m-sm-4 { margin: 2rem !important; } - .m-sm-5 { margin: 4rem !important; } - .m-sm-auto { margin: auto !important; } - .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } - .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .mx-sm-3 { margin-right: 1rem !important; margin-left: 1rem !important; } - .mx-sm-4 { margin-right: 2rem !important; margin-left: 2rem !important; } - .mx-sm-5 { margin-right: 4rem !important; margin-left: 4rem !important; } - .mx-sm-auto { margin-right: auto !important; margin-left: auto !important; } - .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-sm-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-sm-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-sm-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-sm-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-sm-0 { margin-top: 0 !important; } - .mt-sm-1 { margin-top: 0.25rem !important; } - .mt-sm-2 { margin-top: 0.5rem !important; } - .mt-sm-3 { margin-top: 1rem !important; } - .mt-sm-4 { margin-top: 2rem !important; } - .mt-sm-5 { margin-top: 4rem !important; } - .mt-sm-auto { margin-top: auto !important; } - .me-sm-0 { margin-right: 0 !important; } - .me-sm-1 { margin-right: 0.25rem !important; } - .me-sm-2 { margin-right: 0.5rem !important; } - .me-sm-3 { margin-right: 1rem !important; } - .me-sm-4 { margin-right: 2rem !important; } - .me-sm-5 { margin-right: 4rem !important; } - .me-sm-auto { margin-right: auto !important; } - .mb-sm-0 { margin-bottom: 0 !important; } - .mb-sm-1 { margin-bottom: 0.25rem !important; } - .mb-sm-2 { margin-bottom: 0.5rem !important; } - .mb-sm-3 { margin-bottom: 1rem !important; } - .mb-sm-4 { margin-bottom: 2rem !important; } - .mb-sm-5 { margin-bottom: 4rem !important; } - .mb-sm-auto { margin-bottom: auto !important; } - .ms-sm-0 { margin-left: 0 !important; } - .ms-sm-1 { margin-left: 0.25rem !important; } - .ms-sm-2 { margin-left: 0.5rem !important; } - .ms-sm-3 { margin-left: 1rem !important; } - .ms-sm-4 { margin-left: 2rem !important; } - .ms-sm-5 { margin-left: 4rem !important; } - .ms-sm-auto { margin-left: auto !important; } - .p-sm-0 { padding: 0 !important; } - .p-sm-1 { padding: 0.25rem !important; } - .p-sm-2 { padding: 0.5rem !important; } - .p-sm-3 { padding: 1rem !important; } - .p-sm-4 { padding: 2rem !important; } - .p-sm-5 { padding: 4rem !important; } - .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } - .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .px-sm-3 { padding-right: 1rem !important; padding-left: 1rem !important; } - .px-sm-4 { padding-right: 2rem !important; padding-left: 2rem !important; } - .px-sm-5 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-sm-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-sm-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-sm-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-sm-0 { padding-top: 0 !important; } - .pt-sm-1 { padding-top: 0.25rem !important; } - .pt-sm-2 { padding-top: 0.5rem !important; } - .pt-sm-3 { padding-top: 1rem !important; } - .pt-sm-4 { padding-top: 2rem !important; } - .pt-sm-5 { padding-top: 4rem !important; } - .pe-sm-0 { padding-right: 0 !important; } - .pe-sm-1 { padding-right: 0.25rem !important; } - .pe-sm-2 { padding-right: 0.5rem !important; } - .pe-sm-3 { padding-right: 1rem !important; } - .pe-sm-4 { padding-right: 2rem !important; } - .pe-sm-5 { padding-right: 4rem !important; } - .pb-sm-0 { padding-bottom: 0 !important; } - .pb-sm-1 { padding-bottom: 0.25rem !important; } - .pb-sm-2 { padding-bottom: 0.5rem !important; } - .pb-sm-3 { padding-bottom: 1rem !important; } - .pb-sm-4 { padding-bottom: 2rem !important; } - .pb-sm-5 { padding-bottom: 4rem !important; } - .ps-sm-0 { padding-left: 0 !important; } - .ps-sm-1 { padding-left: 0.25rem !important; } - .ps-sm-2 { padding-left: 0.5rem !important; } - .ps-sm-3 { padding-left: 1rem !important; } - .ps-sm-4 { padding-left: 2rem !important; } - .ps-sm-5 { padding-left: 4rem !important; } - + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 2rem !important; + } + .gap-sm-5 { + gap: 4rem !important; + } .text-sm-start { text-align: left !important; } - .text-sm-end { text-align: right !important; } - .text-sm-center { text-align: center !important; } - .columns-sm-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-sm-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-sm-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -8350,663 +11185,505 @@ textarea.form-control-lg { .float-md-start { float: left !important; } - .float-md-end { float: right !important; } - .float-md-none { float: none !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-block { display: block !important; } - .d-md-grid { display: grid !important; } - .d-md-table { display: table !important; } - .d-md-table-row { display: table-row !important; } - .d-md-table-cell { display: table-cell !important; } - .d-md-flex { display: flex !important; } - .d-md-inline-flex { display: inline-flex !important; } - .d-md-none { display: none !important; } - .flex-md-fill { flex: 1 1 auto !important; } - .flex-md-row { flex-direction: row !important; } - .flex-md-column { flex-direction: column !important; } - .flex-md-row-reverse { flex-direction: row-reverse !important; } - .flex-md-column-reverse { flex-direction: column-reverse !important; } - .flex-md-grow-0 { flex-grow: 0 !important; } - .flex-md-grow-1 { flex-grow: 1 !important; } - .flex-md-shrink-0 { flex-shrink: 0 !important; } - .flex-md-shrink-1 { flex-shrink: 1 !important; } - .flex-md-wrap { flex-wrap: wrap !important; } - .flex-md-nowrap { flex-wrap: nowrap !important; } - .flex-md-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-md-0 { - gap: 0 !important; - } - - .gap-md-1 { - gap: 0.25rem !important; - } - - .gap-md-2 { - gap: 0.5rem !important; - } - - .gap-md-3 { - gap: 1rem !important; - } - - .gap-md-4 { - gap: 2rem !important; - } - - .gap-md-5 { - gap: 4rem !important; - } - .justify-content-md-start { justify-content: flex-start !important; } - .justify-content-md-end { justify-content: flex-end !important; } - .justify-content-md-center { justify-content: center !important; } - .justify-content-md-between { justify-content: space-between !important; } - .justify-content-md-around { justify-content: space-around !important; } - .justify-content-md-evenly { justify-content: space-evenly !important; } - .align-items-md-start { align-items: flex-start !important; } - .align-items-md-end { align-items: flex-end !important; } - .align-items-md-center { align-items: center !important; } - .align-items-md-baseline { align-items: baseline !important; } - .align-items-md-stretch { align-items: stretch !important; } - .align-content-md-start { align-content: flex-start !important; } - .align-content-md-end { align-content: flex-end !important; } - .align-content-md-center { align-content: center !important; } - .align-content-md-between { align-content: space-between !important; } - .align-content-md-around { align-content: space-around !important; } - .align-content-md-stretch { align-content: stretch !important; } - .align-self-md-auto { align-self: auto !important; } - .align-self-md-start { align-self: flex-start !important; } - .align-self-md-end { align-self: flex-end !important; } - .align-self-md-center { align-self: center !important; } - .align-self-md-baseline { align-self: baseline !important; } - .align-self-md-stretch { align-self: stretch !important; } - .order-md-first { order: -1 !important; } - .order-md-0 { order: 0 !important; } - .order-md-1 { order: 1 !important; } - .order-md-2 { order: 2 !important; } - .order-md-3 { order: 3 !important; } - .order-md-4 { order: 4 !important; } - .order-md-5 { order: 5 !important; } - .order-md-last { order: 6 !important; } - .m-md-0 { margin: 0 !important; } - .m-md-1 { margin: 0.25rem !important; } - .m-md-2 { margin: 0.5rem !important; } - .m-md-3 { margin: 1rem !important; } - .m-md-4 { margin: 2rem !important; } - .m-md-5 { margin: 4rem !important; } - .m-md-auto { margin: auto !important; } - .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } - .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .mx-md-3 { margin-right: 1rem !important; margin-left: 1rem !important; } - .mx-md-4 { margin-right: 2rem !important; margin-left: 2rem !important; } - .mx-md-5 { margin-right: 4rem !important; margin-left: 4rem !important; } - .mx-md-auto { margin-right: auto !important; margin-left: auto !important; } - .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-md-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-md-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-md-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-md-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-md-0 { margin-top: 0 !important; } - .mt-md-1 { margin-top: 0.25rem !important; } - .mt-md-2 { margin-top: 0.5rem !important; } - .mt-md-3 { margin-top: 1rem !important; } - .mt-md-4 { margin-top: 2rem !important; } - .mt-md-5 { margin-top: 4rem !important; } - .mt-md-auto { margin-top: auto !important; } - .me-md-0 { margin-right: 0 !important; } - .me-md-1 { margin-right: 0.25rem !important; } - .me-md-2 { margin-right: 0.5rem !important; } - .me-md-3 { margin-right: 1rem !important; } - .me-md-4 { margin-right: 2rem !important; } - .me-md-5 { margin-right: 4rem !important; } - .me-md-auto { margin-right: auto !important; } - .mb-md-0 { margin-bottom: 0 !important; } - .mb-md-1 { margin-bottom: 0.25rem !important; } - .mb-md-2 { margin-bottom: 0.5rem !important; } - .mb-md-3 { margin-bottom: 1rem !important; } - .mb-md-4 { margin-bottom: 2rem !important; } - .mb-md-5 { margin-bottom: 4rem !important; } - .mb-md-auto { margin-bottom: auto !important; } - .ms-md-0 { margin-left: 0 !important; } - .ms-md-1 { margin-left: 0.25rem !important; } - .ms-md-2 { margin-left: 0.5rem !important; } - .ms-md-3 { margin-left: 1rem !important; } - .ms-md-4 { margin-left: 2rem !important; } - .ms-md-5 { margin-left: 4rem !important; } - .ms-md-auto { margin-left: auto !important; } - .p-md-0 { padding: 0 !important; } - .p-md-1 { padding: 0.25rem !important; } - .p-md-2 { padding: 0.5rem !important; } - .p-md-3 { padding: 1rem !important; } - .p-md-4 { padding: 2rem !important; } - .p-md-5 { padding: 4rem !important; } - .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } - .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .px-md-3 { padding-right: 1rem !important; padding-left: 1rem !important; } - .px-md-4 { padding-right: 2rem !important; padding-left: 2rem !important; } - .px-md-5 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-md-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-md-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-md-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-md-0 { padding-top: 0 !important; } - .pt-md-1 { padding-top: 0.25rem !important; } - .pt-md-2 { padding-top: 0.5rem !important; } - .pt-md-3 { padding-top: 1rem !important; } - .pt-md-4 { padding-top: 2rem !important; } - .pt-md-5 { padding-top: 4rem !important; } - .pe-md-0 { padding-right: 0 !important; } - .pe-md-1 { padding-right: 0.25rem !important; } - .pe-md-2 { padding-right: 0.5rem !important; } - .pe-md-3 { padding-right: 1rem !important; } - .pe-md-4 { padding-right: 2rem !important; } - .pe-md-5 { padding-right: 4rem !important; } - .pb-md-0 { padding-bottom: 0 !important; } - .pb-md-1 { padding-bottom: 0.25rem !important; } - .pb-md-2 { padding-bottom: 0.5rem !important; } - .pb-md-3 { padding-bottom: 1rem !important; } - .pb-md-4 { padding-bottom: 2rem !important; } - .pb-md-5 { padding-bottom: 4rem !important; } - .ps-md-0 { padding-left: 0 !important; } - .ps-md-1 { padding-left: 0.25rem !important; } - .ps-md-2 { padding-left: 0.5rem !important; } - .ps-md-3 { padding-left: 1rem !important; } - .ps-md-4 { padding-left: 2rem !important; } - .ps-md-5 { padding-left: 4rem !important; } - + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 2rem !important; + } + .gap-md-5 { + gap: 4rem !important; + } .text-md-start { text-align: left !important; } - .text-md-end { text-align: right !important; } - .text-md-center { text-align: center !important; } - .columns-md-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-md-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-md-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -9016,663 +11693,505 @@ textarea.form-control-lg { .float-lg-start { float: left !important; } - .float-lg-end { float: right !important; } - .float-lg-none { float: none !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-block { display: block !important; } - .d-lg-grid { display: grid !important; } - .d-lg-table { display: table !important; } - .d-lg-table-row { display: table-row !important; } - .d-lg-table-cell { display: table-cell !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline-flex { display: inline-flex !important; } - .d-lg-none { display: none !important; } - .flex-lg-fill { flex: 1 1 auto !important; } - .flex-lg-row { flex-direction: row !important; } - .flex-lg-column { flex-direction: column !important; } - .flex-lg-row-reverse { flex-direction: row-reverse !important; } - .flex-lg-column-reverse { flex-direction: column-reverse !important; } - .flex-lg-grow-0 { flex-grow: 0 !important; } - .flex-lg-grow-1 { flex-grow: 1 !important; } - .flex-lg-shrink-0 { flex-shrink: 0 !important; } - .flex-lg-shrink-1 { flex-shrink: 1 !important; } - .flex-lg-wrap { flex-wrap: wrap !important; } - .flex-lg-nowrap { flex-wrap: nowrap !important; } - .flex-lg-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-lg-0 { - gap: 0 !important; - } - - .gap-lg-1 { - gap: 0.25rem !important; - } - - .gap-lg-2 { - gap: 0.5rem !important; - } - - .gap-lg-3 { - gap: 1rem !important; - } - - .gap-lg-4 { - gap: 2rem !important; - } - - .gap-lg-5 { - gap: 4rem !important; - } - .justify-content-lg-start { justify-content: flex-start !important; } - .justify-content-lg-end { justify-content: flex-end !important; } - .justify-content-lg-center { justify-content: center !important; } - .justify-content-lg-between { justify-content: space-between !important; } - .justify-content-lg-around { justify-content: space-around !important; } - .justify-content-lg-evenly { justify-content: space-evenly !important; } - .align-items-lg-start { align-items: flex-start !important; } - .align-items-lg-end { align-items: flex-end !important; } - .align-items-lg-center { align-items: center !important; } - .align-items-lg-baseline { align-items: baseline !important; } - .align-items-lg-stretch { align-items: stretch !important; } - .align-content-lg-start { align-content: flex-start !important; } - .align-content-lg-end { align-content: flex-end !important; } - .align-content-lg-center { align-content: center !important; } - .align-content-lg-between { align-content: space-between !important; } - .align-content-lg-around { align-content: space-around !important; } - .align-content-lg-stretch { align-content: stretch !important; } - .align-self-lg-auto { align-self: auto !important; } - .align-self-lg-start { align-self: flex-start !important; } - .align-self-lg-end { align-self: flex-end !important; } - .align-self-lg-center { align-self: center !important; } - .align-self-lg-baseline { align-self: baseline !important; } - .align-self-lg-stretch { align-self: stretch !important; } - .order-lg-first { order: -1 !important; } - .order-lg-0 { order: 0 !important; } - .order-lg-1 { order: 1 !important; } - .order-lg-2 { order: 2 !important; } - .order-lg-3 { order: 3 !important; } - .order-lg-4 { order: 4 !important; } - .order-lg-5 { order: 5 !important; } - .order-lg-last { order: 6 !important; } - .m-lg-0 { margin: 0 !important; } - .m-lg-1 { margin: 0.25rem !important; } - .m-lg-2 { margin: 0.5rem !important; } - .m-lg-3 { margin: 1rem !important; } - .m-lg-4 { margin: 2rem !important; } - .m-lg-5 { margin: 4rem !important; } - .m-lg-auto { margin: auto !important; } - .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } - .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .mx-lg-3 { margin-right: 1rem !important; margin-left: 1rem !important; } - .mx-lg-4 { margin-right: 2rem !important; margin-left: 2rem !important; } - .mx-lg-5 { margin-right: 4rem !important; margin-left: 4rem !important; } - .mx-lg-auto { margin-right: auto !important; margin-left: auto !important; } - .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-lg-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-lg-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-lg-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-lg-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-lg-0 { margin-top: 0 !important; } - .mt-lg-1 { margin-top: 0.25rem !important; } - .mt-lg-2 { margin-top: 0.5rem !important; } - .mt-lg-3 { margin-top: 1rem !important; } - .mt-lg-4 { margin-top: 2rem !important; } - .mt-lg-5 { margin-top: 4rem !important; } - .mt-lg-auto { margin-top: auto !important; } - .me-lg-0 { margin-right: 0 !important; } - .me-lg-1 { margin-right: 0.25rem !important; } - .me-lg-2 { margin-right: 0.5rem !important; } - .me-lg-3 { margin-right: 1rem !important; } - .me-lg-4 { margin-right: 2rem !important; } - .me-lg-5 { margin-right: 4rem !important; } - .me-lg-auto { margin-right: auto !important; } - .mb-lg-0 { margin-bottom: 0 !important; } - .mb-lg-1 { margin-bottom: 0.25rem !important; } - .mb-lg-2 { margin-bottom: 0.5rem !important; } - .mb-lg-3 { margin-bottom: 1rem !important; } - .mb-lg-4 { margin-bottom: 2rem !important; } - .mb-lg-5 { margin-bottom: 4rem !important; } - .mb-lg-auto { margin-bottom: auto !important; } - .ms-lg-0 { margin-left: 0 !important; } - .ms-lg-1 { margin-left: 0.25rem !important; } - .ms-lg-2 { margin-left: 0.5rem !important; } - .ms-lg-3 { margin-left: 1rem !important; } - .ms-lg-4 { margin-left: 2rem !important; } - .ms-lg-5 { margin-left: 4rem !important; } - .ms-lg-auto { margin-left: auto !important; } - .p-lg-0 { padding: 0 !important; } - .p-lg-1 { padding: 0.25rem !important; } - .p-lg-2 { padding: 0.5rem !important; } - .p-lg-3 { padding: 1rem !important; } - .p-lg-4 { padding: 2rem !important; } - .p-lg-5 { padding: 4rem !important; } - .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } - .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .px-lg-3 { padding-right: 1rem !important; padding-left: 1rem !important; } - .px-lg-4 { padding-right: 2rem !important; padding-left: 2rem !important; } - .px-lg-5 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-lg-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-lg-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-lg-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-lg-0 { padding-top: 0 !important; } - .pt-lg-1 { padding-top: 0.25rem !important; } - .pt-lg-2 { padding-top: 0.5rem !important; } - .pt-lg-3 { padding-top: 1rem !important; } - .pt-lg-4 { padding-top: 2rem !important; } - .pt-lg-5 { padding-top: 4rem !important; } - .pe-lg-0 { padding-right: 0 !important; } - .pe-lg-1 { padding-right: 0.25rem !important; } - .pe-lg-2 { padding-right: 0.5rem !important; } - .pe-lg-3 { padding-right: 1rem !important; } - .pe-lg-4 { padding-right: 2rem !important; } - .pe-lg-5 { padding-right: 4rem !important; } - .pb-lg-0 { padding-bottom: 0 !important; } - .pb-lg-1 { padding-bottom: 0.25rem !important; } - .pb-lg-2 { padding-bottom: 0.5rem !important; } - .pb-lg-3 { padding-bottom: 1rem !important; } - .pb-lg-4 { padding-bottom: 2rem !important; } - .pb-lg-5 { padding-bottom: 4rem !important; } - .ps-lg-0 { padding-left: 0 !important; } - .ps-lg-1 { padding-left: 0.25rem !important; } - .ps-lg-2 { padding-left: 0.5rem !important; } - .ps-lg-3 { padding-left: 1rem !important; } - .ps-lg-4 { padding-left: 2rem !important; } - .ps-lg-5 { padding-left: 4rem !important; } - + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 2rem !important; + } + .gap-lg-5 { + gap: 4rem !important; + } .text-lg-start { text-align: left !important; } - .text-lg-end { text-align: right !important; } - .text-lg-center { text-align: center !important; } - .columns-lg-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-lg-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-lg-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -9682,663 +12201,505 @@ textarea.form-control-lg { .float-xl-start { float: left !important; } - .float-xl-end { float: right !important; } - .float-xl-none { float: none !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-block { display: block !important; } - .d-xl-grid { display: grid !important; } - .d-xl-table { display: table !important; } - .d-xl-table-row { display: table-row !important; } - .d-xl-table-cell { display: table-cell !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline-flex { display: inline-flex !important; } - .d-xl-none { display: none !important; } - .flex-xl-fill { flex: 1 1 auto !important; } - .flex-xl-row { flex-direction: row !important; } - .flex-xl-column { flex-direction: column !important; } - .flex-xl-row-reverse { flex-direction: row-reverse !important; } - .flex-xl-column-reverse { flex-direction: column-reverse !important; } - .flex-xl-grow-0 { flex-grow: 0 !important; } - .flex-xl-grow-1 { flex-grow: 1 !important; } - .flex-xl-shrink-0 { flex-shrink: 0 !important; } - .flex-xl-shrink-1 { flex-shrink: 1 !important; } - .flex-xl-wrap { flex-wrap: wrap !important; } - .flex-xl-nowrap { flex-wrap: nowrap !important; } - .flex-xl-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-xl-0 { - gap: 0 !important; - } - - .gap-xl-1 { - gap: 0.25rem !important; - } - - .gap-xl-2 { - gap: 0.5rem !important; - } - - .gap-xl-3 { - gap: 1rem !important; - } - - .gap-xl-4 { - gap: 2rem !important; - } - - .gap-xl-5 { - gap: 4rem !important; - } - .justify-content-xl-start { justify-content: flex-start !important; } - .justify-content-xl-end { justify-content: flex-end !important; } - .justify-content-xl-center { justify-content: center !important; } - .justify-content-xl-between { justify-content: space-between !important; } - .justify-content-xl-around { justify-content: space-around !important; } - .justify-content-xl-evenly { justify-content: space-evenly !important; } - .align-items-xl-start { align-items: flex-start !important; } - .align-items-xl-end { align-items: flex-end !important; } - .align-items-xl-center { align-items: center !important; } - .align-items-xl-baseline { align-items: baseline !important; } - .align-items-xl-stretch { align-items: stretch !important; } - .align-content-xl-start { align-content: flex-start !important; } - .align-content-xl-end { align-content: flex-end !important; } - .align-content-xl-center { align-content: center !important; } - .align-content-xl-between { align-content: space-between !important; } - .align-content-xl-around { align-content: space-around !important; } - .align-content-xl-stretch { align-content: stretch !important; } - .align-self-xl-auto { align-self: auto !important; } - .align-self-xl-start { align-self: flex-start !important; } - .align-self-xl-end { align-self: flex-end !important; } - .align-self-xl-center { align-self: center !important; } - .align-self-xl-baseline { align-self: baseline !important; } - .align-self-xl-stretch { align-self: stretch !important; } - .order-xl-first { order: -1 !important; } - .order-xl-0 { order: 0 !important; } - .order-xl-1 { order: 1 !important; } - .order-xl-2 { order: 2 !important; } - .order-xl-3 { order: 3 !important; } - .order-xl-4 { order: 4 !important; } - .order-xl-5 { order: 5 !important; } - .order-xl-last { order: 6 !important; } - .m-xl-0 { margin: 0 !important; } - .m-xl-1 { margin: 0.25rem !important; } - .m-xl-2 { margin: 0.5rem !important; } - .m-xl-3 { margin: 1rem !important; } - .m-xl-4 { margin: 2rem !important; } - .m-xl-5 { margin: 4rem !important; } - .m-xl-auto { margin: auto !important; } - .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } - .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .mx-xl-3 { margin-right: 1rem !important; margin-left: 1rem !important; } - .mx-xl-4 { margin-right: 2rem !important; margin-left: 2rem !important; } - .mx-xl-5 { margin-right: 4rem !important; margin-left: 4rem !important; } - .mx-xl-auto { margin-right: auto !important; margin-left: auto !important; } - .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-xl-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-xl-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-xl-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-xl-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-xl-0 { margin-top: 0 !important; } - .mt-xl-1 { margin-top: 0.25rem !important; } - .mt-xl-2 { margin-top: 0.5rem !important; } - .mt-xl-3 { margin-top: 1rem !important; } - .mt-xl-4 { margin-top: 2rem !important; } - .mt-xl-5 { margin-top: 4rem !important; } - .mt-xl-auto { margin-top: auto !important; } - .me-xl-0 { margin-right: 0 !important; } - .me-xl-1 { margin-right: 0.25rem !important; } - .me-xl-2 { margin-right: 0.5rem !important; } - .me-xl-3 { margin-right: 1rem !important; } - .me-xl-4 { margin-right: 2rem !important; } - .me-xl-5 { margin-right: 4rem !important; } - .me-xl-auto { margin-right: auto !important; } - .mb-xl-0 { margin-bottom: 0 !important; } - .mb-xl-1 { margin-bottom: 0.25rem !important; } - .mb-xl-2 { margin-bottom: 0.5rem !important; } - .mb-xl-3 { margin-bottom: 1rem !important; } - .mb-xl-4 { margin-bottom: 2rem !important; } - .mb-xl-5 { margin-bottom: 4rem !important; } - .mb-xl-auto { margin-bottom: auto !important; } - .ms-xl-0 { margin-left: 0 !important; } - .ms-xl-1 { margin-left: 0.25rem !important; } - .ms-xl-2 { margin-left: 0.5rem !important; } - .ms-xl-3 { margin-left: 1rem !important; } - .ms-xl-4 { margin-left: 2rem !important; } - .ms-xl-5 { margin-left: 4rem !important; } - .ms-xl-auto { margin-left: auto !important; } - .p-xl-0 { padding: 0 !important; } - .p-xl-1 { padding: 0.25rem !important; } - .p-xl-2 { padding: 0.5rem !important; } - .p-xl-3 { padding: 1rem !important; } - .p-xl-4 { padding: 2rem !important; } - .p-xl-5 { padding: 4rem !important; } - .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } - .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .px-xl-3 { padding-right: 1rem !important; padding-left: 1rem !important; } - .px-xl-4 { padding-right: 2rem !important; padding-left: 2rem !important; } - .px-xl-5 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-xl-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-xl-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-xl-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-xl-0 { padding-top: 0 !important; } - .pt-xl-1 { padding-top: 0.25rem !important; } - .pt-xl-2 { padding-top: 0.5rem !important; } - .pt-xl-3 { padding-top: 1rem !important; } - .pt-xl-4 { padding-top: 2rem !important; } - .pt-xl-5 { padding-top: 4rem !important; } - .pe-xl-0 { padding-right: 0 !important; } - .pe-xl-1 { padding-right: 0.25rem !important; } - .pe-xl-2 { padding-right: 0.5rem !important; } - .pe-xl-3 { padding-right: 1rem !important; } - .pe-xl-4 { padding-right: 2rem !important; } - .pe-xl-5 { padding-right: 4rem !important; } - .pb-xl-0 { padding-bottom: 0 !important; } - .pb-xl-1 { padding-bottom: 0.25rem !important; } - .pb-xl-2 { padding-bottom: 0.5rem !important; } - .pb-xl-3 { padding-bottom: 1rem !important; } - .pb-xl-4 { padding-bottom: 2rem !important; } - .pb-xl-5 { padding-bottom: 4rem !important; } - .ps-xl-0 { padding-left: 0 !important; } - .ps-xl-1 { padding-left: 0.25rem !important; } - .ps-xl-2 { padding-left: 0.5rem !important; } - .ps-xl-3 { padding-left: 1rem !important; } - .ps-xl-4 { padding-left: 2rem !important; } - .ps-xl-5 { padding-left: 4rem !important; } - + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 2rem !important; + } + .gap-xl-5 { + gap: 4rem !important; + } .text-xl-start { text-align: left !important; } - .text-xl-end { text-align: right !important; } - .text-xl-center { text-align: center !important; } - .columns-xl-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-xl-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-xl-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -10348,663 +12709,505 @@ textarea.form-control-lg { .float-xxl-start { float: left !important; } - .float-xxl-end { float: right !important; } - .float-xxl-none { float: none !important; } - .d-xxl-inline { display: inline !important; } - .d-xxl-inline-block { display: inline-block !important; } - .d-xxl-block { display: block !important; } - .d-xxl-grid { display: grid !important; } - .d-xxl-table { display: table !important; } - .d-xxl-table-row { display: table-row !important; } - .d-xxl-table-cell { display: table-cell !important; } - .d-xxl-flex { display: flex !important; } - .d-xxl-inline-flex { display: inline-flex !important; } - .d-xxl-none { display: none !important; } - .flex-xxl-fill { flex: 1 1 auto !important; } - .flex-xxl-row { flex-direction: row !important; } - .flex-xxl-column { flex-direction: column !important; } - .flex-xxl-row-reverse { flex-direction: row-reverse !important; } - .flex-xxl-column-reverse { flex-direction: column-reverse !important; } - .flex-xxl-grow-0 { flex-grow: 0 !important; } - .flex-xxl-grow-1 { flex-grow: 1 !important; } - .flex-xxl-shrink-0 { flex-shrink: 0 !important; } - .flex-xxl-shrink-1 { flex-shrink: 1 !important; } - .flex-xxl-wrap { flex-wrap: wrap !important; } - .flex-xxl-nowrap { flex-wrap: nowrap !important; } - .flex-xxl-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-xxl-0 { - gap: 0 !important; - } - - .gap-xxl-1 { - gap: 0.25rem !important; - } - - .gap-xxl-2 { - gap: 0.5rem !important; - } - - .gap-xxl-3 { - gap: 1rem !important; - } - - .gap-xxl-4 { - gap: 2rem !important; - } - - .gap-xxl-5 { - gap: 4rem !important; - } - .justify-content-xxl-start { justify-content: flex-start !important; } - .justify-content-xxl-end { justify-content: flex-end !important; } - .justify-content-xxl-center { justify-content: center !important; } - .justify-content-xxl-between { justify-content: space-between !important; } - .justify-content-xxl-around { justify-content: space-around !important; } - .justify-content-xxl-evenly { justify-content: space-evenly !important; } - .align-items-xxl-start { align-items: flex-start !important; } - .align-items-xxl-end { align-items: flex-end !important; } - .align-items-xxl-center { align-items: center !important; } - .align-items-xxl-baseline { align-items: baseline !important; } - .align-items-xxl-stretch { align-items: stretch !important; } - .align-content-xxl-start { align-content: flex-start !important; } - .align-content-xxl-end { align-content: flex-end !important; } - .align-content-xxl-center { align-content: center !important; } - .align-content-xxl-between { align-content: space-between !important; } - .align-content-xxl-around { align-content: space-around !important; } - .align-content-xxl-stretch { align-content: stretch !important; } - .align-self-xxl-auto { align-self: auto !important; } - .align-self-xxl-start { align-self: flex-start !important; } - .align-self-xxl-end { align-self: flex-end !important; } - .align-self-xxl-center { align-self: center !important; } - .align-self-xxl-baseline { align-self: baseline !important; } - .align-self-xxl-stretch { align-self: stretch !important; } - .order-xxl-first { order: -1 !important; } - .order-xxl-0 { order: 0 !important; } - .order-xxl-1 { order: 1 !important; } - .order-xxl-2 { order: 2 !important; } - .order-xxl-3 { order: 3 !important; } - .order-xxl-4 { order: 4 !important; } - .order-xxl-5 { order: 5 !important; } - .order-xxl-last { order: 6 !important; } - .m-xxl-0 { margin: 0 !important; } - .m-xxl-1 { margin: 0.25rem !important; } - .m-xxl-2 { margin: 0.5rem !important; } - .m-xxl-3 { margin: 1rem !important; } - .m-xxl-4 { margin: 2rem !important; } - .m-xxl-5 { margin: 4rem !important; } - .m-xxl-auto { margin: auto !important; } - .mx-xxl-0 { margin-right: 0 !important; margin-left: 0 !important; } - .mx-xxl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .mx-xxl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .mx-xxl-3 { margin-right: 1rem !important; margin-left: 1rem !important; } - .mx-xxl-4 { margin-right: 2rem !important; margin-left: 2rem !important; } - .mx-xxl-5 { margin-right: 4rem !important; margin-left: 4rem !important; } - .mx-xxl-auto { margin-right: auto !important; margin-left: auto !important; } - .my-xxl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-xxl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-xxl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-xxl-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-xxl-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-xxl-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-xxl-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-xxl-0 { margin-top: 0 !important; } - .mt-xxl-1 { margin-top: 0.25rem !important; } - .mt-xxl-2 { margin-top: 0.5rem !important; } - .mt-xxl-3 { margin-top: 1rem !important; } - .mt-xxl-4 { margin-top: 2rem !important; } - .mt-xxl-5 { margin-top: 4rem !important; } - .mt-xxl-auto { margin-top: auto !important; } - .me-xxl-0 { margin-right: 0 !important; } - .me-xxl-1 { margin-right: 0.25rem !important; } - .me-xxl-2 { margin-right: 0.5rem !important; } - .me-xxl-3 { margin-right: 1rem !important; } - .me-xxl-4 { margin-right: 2rem !important; } - .me-xxl-5 { margin-right: 4rem !important; } - .me-xxl-auto { margin-right: auto !important; } - .mb-xxl-0 { margin-bottom: 0 !important; } - .mb-xxl-1 { margin-bottom: 0.25rem !important; } - .mb-xxl-2 { margin-bottom: 0.5rem !important; } - .mb-xxl-3 { margin-bottom: 1rem !important; } - .mb-xxl-4 { margin-bottom: 2rem !important; } - .mb-xxl-5 { margin-bottom: 4rem !important; } - .mb-xxl-auto { margin-bottom: auto !important; } - .ms-xxl-0 { margin-left: 0 !important; } - .ms-xxl-1 { margin-left: 0.25rem !important; } - .ms-xxl-2 { margin-left: 0.5rem !important; } - .ms-xxl-3 { margin-left: 1rem !important; } - .ms-xxl-4 { margin-left: 2rem !important; } - .ms-xxl-5 { margin-left: 4rem !important; } - .ms-xxl-auto { margin-left: auto !important; } - .p-xxl-0 { padding: 0 !important; } - .p-xxl-1 { padding: 0.25rem !important; } - .p-xxl-2 { padding: 0.5rem !important; } - .p-xxl-3 { padding: 1rem !important; } - .p-xxl-4 { padding: 2rem !important; } - .p-xxl-5 { padding: 4rem !important; } - .px-xxl-0 { padding-right: 0 !important; padding-left: 0 !important; } - .px-xxl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .px-xxl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .px-xxl-3 { padding-right: 1rem !important; padding-left: 1rem !important; } - .px-xxl-4 { padding-right: 2rem !important; padding-left: 2rem !important; } - .px-xxl-5 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xxl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-xxl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-xxl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-xxl-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-xxl-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-xxl-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-xxl-0 { padding-top: 0 !important; } - .pt-xxl-1 { padding-top: 0.25rem !important; } - .pt-xxl-2 { padding-top: 0.5rem !important; } - .pt-xxl-3 { padding-top: 1rem !important; } - .pt-xxl-4 { padding-top: 2rem !important; } - .pt-xxl-5 { padding-top: 4rem !important; } - .pe-xxl-0 { padding-right: 0 !important; } - .pe-xxl-1 { padding-right: 0.25rem !important; } - .pe-xxl-2 { padding-right: 0.5rem !important; } - .pe-xxl-3 { padding-right: 1rem !important; } - .pe-xxl-4 { padding-right: 2rem !important; } - .pe-xxl-5 { padding-right: 4rem !important; } - .pb-xxl-0 { padding-bottom: 0 !important; } - .pb-xxl-1 { padding-bottom: 0.25rem !important; } - .pb-xxl-2 { padding-bottom: 0.5rem !important; } - .pb-xxl-3 { padding-bottom: 1rem !important; } - .pb-xxl-4 { padding-bottom: 2rem !important; } - .pb-xxl-5 { padding-bottom: 4rem !important; } - .ps-xxl-0 { padding-left: 0 !important; } - .ps-xxl-1 { padding-left: 0.25rem !important; } - .ps-xxl-2 { padding-left: 0.5rem !important; } - .ps-xxl-3 { padding-left: 1rem !important; } - .ps-xxl-4 { padding-left: 2rem !important; } - .ps-xxl-5 { padding-left: 4rem !important; } - + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 2rem !important; + } + .gap-xxl-5 { + gap: 4rem !important; + } .text-xxl-start { text-align: left !important; } - .text-xxl-end { text-align: right !important; } - .text-xxl-center { text-align: center !important; } - .columns-xxl-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-xxl-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-xxl-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -11014,39 +13217,30 @@ textarea.form-control-lg { .d-print-inline { display: inline !important; } - .d-print-inline-block { display: inline-block !important; } - .d-print-block { display: block !important; } - .d-print-grid { display: grid !important; } - .d-print-table { display: table !important; } - .d-print-table-row { display: table-row !important; } - .d-print-table-cell { display: table-cell !important; } - .d-print-flex { display: flex !important; } - .d-print-inline-flex { display: inline-flex !important; } - .d-print-none { display: none !important; } @@ -11054,6 +13248,78 @@ textarea.form-control-lg { :root { font-size: 16px; height: 100%; + --tblr-primary: #206bc4; + --tblr-secondary: #626976; + --tblr-success: #2fb344; + --tblr-info: #4299e1; + --tblr-warning: #f76707; + --tblr-danger: #d63939; + --tblr-light: #fafbfc; + --tblr-dark: #1e293b; + --tblr-muted: #626976; + --tblr-blue: #206bc4; + --tblr-azure: #4299e1; + --tblr-indigo: #4263eb; + --tblr-purple: #ae3ec9; + --tblr-pink: #d6336c; + --tblr-red: #d63939; + --tblr-orange: #f76707; + --tblr-yellow: #f59f00; + --tblr-lime: #74b816; + --tblr-green: #2fb344; + --tblr-teal: #0ca678; + --tblr-cyan: #17a2b8; + --tblr-facebook: #3b5998; + --tblr-twitter: #1da1f2; + --tblr-linkedin: #0a66c2; + --tblr-google: #dc4e41; + --tblr-youtube: #ff0000; + --tblr-vimeo: #1ab7ea; + --tblr-dribbble: #ea4c89; + --tblr-github: #181717; + --tblr-instagram: #e4405f; + --tblr-pinterest: #bd081c; + --tblr-vk: #6383a8; + --tblr-rss: #ffa500; + --tblr-flickr: #0063dc; + --tblr-bitbucket: #0052cc; + --tblr-tabler: #206bc4; + --tblr-primary-rgb: 32, 107, 196; + --tblr-secondary-rgb: 98, 105, 118; + --tblr-success-rgb: 47, 179, 68; + --tblr-info-rgb: 66, 153, 225; + --tblr-warning-rgb: 247, 103, 7; + --tblr-danger-rgb: 214, 57, 57; + --tblr-light-rgb: 250, 251, 252; + --tblr-dark-rgb: 30, 41, 59; + --tblr-muted-rgb: 98, 105, 118; + --tblr-blue-rgb: 32, 107, 196; + --tblr-azure-rgb: 66, 153, 225; + --tblr-indigo-rgb: 66, 99, 235; + --tblr-purple-rgb: 174, 62, 201; + --tblr-pink-rgb: 214, 51, 108; + --tblr-red-rgb: 214, 57, 57; + --tblr-orange-rgb: 247, 103, 7; + --tblr-yellow-rgb: 245, 159, 0; + --tblr-lime-rgb: 116, 184, 22; + --tblr-green-rgb: 47, 179, 68; + --tblr-teal-rgb: 12, 166, 120; + --tblr-cyan-rgb: 23, 162, 184; + --tblr-facebook-rgb: 59, 89, 152; + --tblr-twitter-rgb: 29, 161, 242; + --tblr-linkedin-rgb: 10, 102, 194; + --tblr-google-rgb: 220, 78, 65; + --tblr-youtube-rgb: 255, 0, 0; + --tblr-vimeo-rgb: 26, 183, 234; + --tblr-dribbble-rgb: 234, 76, 137; + --tblr-github-rgb: 24, 23, 23; + --tblr-instagram-rgb: 228, 64, 95; + --tblr-pinterest-rgb: 189, 8, 28; + --tblr-vk-rgb: 99, 131, 168; + --tblr-rss-rgb: 255, 165, 0; + --tblr-flickr-rgb: 0, 99, 220; + --tblr-bitbucket-rgb: 0, 82, 204; + --tblr-tabler-rgb: 32, 107, 196; --tblr-card-bg: #ffffff; --tblr-card-bg-rgb: 255, 255, 255; --tblr-border-color: #e6e7e9; @@ -11150,7 +13416,7 @@ Navbar align-items: stretch; min-height: 3.5rem; background: transparent; - color: rgba(30, 41, 59, 0.7); + color: #1e293b; } .navbar-collapse .navbar { flex-grow: 1; @@ -11183,9 +13449,6 @@ Navbar .navbar::-webkit-scrollbar-corner { background: transparent; } -.navbar .text-muted { - color: rgba(30, 41, 59, 0.7) !important; -} .navbar .navbar-brand { color: #1e293b; } @@ -11194,7 +13457,7 @@ Navbar opacity: 0.8; } .navbar .navbar-nav .nav-link { - color: rgba(30, 41, 59, 0.7); + color: #1e293b; } .navbar .navbar-nav .nav-link:hover, .navbar .navbar-nav .nav-link:focus { color: #1e293b; @@ -11213,12 +13476,12 @@ Navbar border-color: transparent; } .navbar .navbar-text { - color: rgba(30, 41, 59, 0.7); + color: #1e293b; } .navbar .navbar-text a, .navbar .navbar-text a:hover, .navbar .navbar-text a:focus { - color: rgba(30, 41, 59, 0.7); + color: #1e293b; } @media not print { .theme-dark .navbar { @@ -11250,9 +13513,6 @@ Navbar .theme-dark .navbar::-webkit-scrollbar-corner { background: transparent; } - .theme-dark .navbar .text-muted { - color: rgba(255, 255, 255, 0.7) !important; - } .theme-dark .navbar .navbar-brand { color: #ffffff; } @@ -11360,9 +13620,6 @@ Navbar .theme-dark-auto .navbar::-webkit-scrollbar-corner { background: transparent; } - .theme-dark-auto .navbar .text-muted { - color: rgba(255, 255, 255, 0.7) !important; - } .theme-dark-auto .navbar .navbar-brand { color: #ffffff; } @@ -11485,13 +13742,14 @@ Navbar .navbar-expand-sm .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-sm .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-expand-sm .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-sm .navbar-collapse .dropdown-menu-columns { @@ -11511,14 +13769,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-expand-sm .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -11579,13 +13837,14 @@ Navbar .navbar-expand-md .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-md .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-expand-md .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-md .navbar-collapse .dropdown-menu-columns { @@ -11605,14 +13864,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-expand-md .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -11673,13 +13932,14 @@ Navbar .navbar-expand-lg .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-lg .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-expand-lg .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-lg .navbar-collapse .dropdown-menu-columns { @@ -11699,14 +13959,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-expand-lg .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -11767,13 +14027,14 @@ Navbar .navbar-expand-xl .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-xl .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-expand-xl .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-xl .navbar-collapse .dropdown-menu-columns { @@ -11793,14 +14054,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-expand-xl .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -11861,13 +14122,14 @@ Navbar .navbar-expand-xxl .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-xxl .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-xxl .navbar-collapse .dropdown-menu-columns { @@ -11887,14 +14149,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-expand-xxl .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -11954,13 +14216,14 @@ Navbar .navbar-expand .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-expand .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand .navbar-collapse .dropdown-menu-columns { @@ -11980,14 +14243,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-expand .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -12050,7 +14313,6 @@ Navbar brand } .navbar-brand-image { - display: block; height: 2rem; width: auto; } @@ -12161,9 +14423,6 @@ Navbar dark .navbar-dark::-webkit-scrollbar-corner { background: transparent; } -.navbar-dark .text-muted { - color: rgba(255, 255, 255, 0.7) !important; -} .navbar-dark .navbar-brand { color: #ffffff; } @@ -12325,6 +14584,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 576px) { @@ -12349,13 +14609,14 @@ Navbar vertical .navbar-vertical.navbar-expand-sm .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu-columns { @@ -12375,14 +14636,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -12448,6 +14709,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 768px) { @@ -12472,13 +14734,14 @@ Navbar vertical .navbar-vertical.navbar-expand-md .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu-columns { @@ -12498,14 +14761,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -12571,6 +14834,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 992px) { @@ -12595,13 +14859,14 @@ Navbar vertical .navbar-vertical.navbar-expand-lg .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu-columns { @@ -12621,14 +14886,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -12694,6 +14959,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 1200px) { @@ -12718,13 +14984,14 @@ Navbar vertical .navbar-vertical.navbar-expand-xl .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu-columns { @@ -12744,14 +15011,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -12817,6 +15084,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 1400px) { @@ -12841,13 +15109,14 @@ Navbar vertical .navbar-vertical.navbar-expand-xxl .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns { @@ -12867,14 +15136,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -12929,6 +15198,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } .navbar-vertical.navbar-expand ~ .page { padding-left: 15rem; @@ -12947,13 +15217,14 @@ Navbar vertical .navbar-vertical.navbar-expand .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand .navbar-collapse .navbar-nav { - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-left: 0; + margin-right: 0; } .navbar-vertical.navbar-expand .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu-columns { @@ -12973,14 +15244,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-left: 3.25rem; + padding-left: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 4.75rem; + padding-left: 4rem; } .navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-left: 6.25rem; + padding-left: 5.5rem; } .navbar-vertical.navbar-expand .navbar-collapse .dropdown-toggle:after { margin-left: auto; @@ -13197,6 +15468,9 @@ body:not(.theme-dark) .hide-theme-light { background-color: #1e293b; color: inherit; } + .theme-dark .bg-light { + background-color: #1b2434 !important; + } .theme-dark .card { border-color: transparent; } @@ -13340,6 +15614,9 @@ body:not(.theme-dark) .hide-theme-light { background-color: #1e293b; color: inherit; } + .theme-dark-auto .bg-light { + background-color: #1b2434 !important; + } .theme-dark-auto .card { border-color: transparent; } @@ -13447,6 +15724,10 @@ body:not(.theme-dark) .hide-theme-light { } } } +.accordion { + --tblr-accordion-color: var(--tblr-body-color); +} + .accordion-button:focus:not(:focus-visible) { outline: none; box-shadow: none; @@ -13527,6 +15808,114 @@ body:not(.theme-dark) .hide-theme-light { --tblr-alert-color: #626976; } +.alert-blue { + --tblr-alert-color: #206bc4; +} + +.alert-azure { + --tblr-alert-color: #4299e1; +} + +.alert-indigo { + --tblr-alert-color: #4263eb; +} + +.alert-purple { + --tblr-alert-color: #ae3ec9; +} + +.alert-pink { + --tblr-alert-color: #d6336c; +} + +.alert-red { + --tblr-alert-color: #d63939; +} + +.alert-orange { + --tblr-alert-color: #f76707; +} + +.alert-yellow { + --tblr-alert-color: #f59f00; +} + +.alert-lime { + --tblr-alert-color: #74b816; +} + +.alert-green { + --tblr-alert-color: #2fb344; +} + +.alert-teal { + --tblr-alert-color: #0ca678; +} + +.alert-cyan { + --tblr-alert-color: #17a2b8; +} + +.alert-facebook { + --tblr-alert-color: #3b5998; +} + +.alert-twitter { + --tblr-alert-color: #1da1f2; +} + +.alert-linkedin { + --tblr-alert-color: #0a66c2; +} + +.alert-google { + --tblr-alert-color: #dc4e41; +} + +.alert-youtube { + --tblr-alert-color: #ff0000; +} + +.alert-vimeo { + --tblr-alert-color: #1ab7ea; +} + +.alert-dribbble { + --tblr-alert-color: #ea4c89; +} + +.alert-github { + --tblr-alert-color: #181717; +} + +.alert-instagram { + --tblr-alert-color: #e4405f; +} + +.alert-pinterest { + --tblr-alert-color: #bd081c; +} + +.alert-vk { + --tblr-alert-color: #6383a8; +} + +.alert-rss { + --tblr-alert-color: #ffa500; +} + +.alert-flickr { + --tblr-alert-color: #0063dc; +} + +.alert-bitbucket { + --tblr-alert-color: #0052cc; +} + +.alert-tabler { + --tblr-alert-color: #206bc4; +} + .alert-icon { color: var(--tblr-alert-color); width: 1.5rem !important; @@ -13780,77 +16169,34 @@ a.badge { } .btn { - --tblr-btn-color-text-rgb: var(--tblr-body-color-rgb); + --tblr-btn-icon-size: 1.25rem; + --tblr-btn-color: var(--tblr-color-text); + --tblr-btn-border-color: var(--tblr-border-color); display: inline-flex; align-items: center; justify-content: center; - border-color: var(--tblr-border-color); white-space: nowrap; - background-color: var(--tblr-btn-color, var(--tblr-card-bg)); - color: var(--tblr-btn-color-text); -} -.btn:hover { - color: var(--tblr-btn-color-text); - border-color: rgba(var(--tblr-btn-color-text-rgb), 0.48); -} -.btn:focus:not([disabled]):not(.disabled) { - border-color: var(--tblr-btn-color, #206bc4); -} -.btn:disabled, .btn.disabled { - cursor: not-allowed; } .btn .icon { - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - margin: 0 0.5rem 0 -0.25rem; + width: var(--tblr-btn-icon-size); + height: var(--tblr-btn-icon-size); + min-width: var(--tblr-btn-icon-size); + margin: 0 calc(var(--tblr-btn-padding-x) / 2) 0 calc(var(--tblr-btn-padding-x) / -4); vertical-align: bottom; color: inherit; } .btn .avatar { - width: 1.25rem; - height: 1.25rem; - vertical-align: text-top; - margin: 0 0.5rem 0 -0.25rem; + width: var(--tblr-btn-icon-size); + height: var(--tblr-btn-icon-size); + margin: 0 calc(var(--tblr-btn-padding-x) / 2) 0 calc(var(--tblr-btn-padding-x) / -4); } .btn .icon-right { - margin: 0 -0.25rem 0 0.5rem; + margin: 0 calc(var(--tblr-btn-padding-x) / -4) 0 calc(var(--tblr-btn-padding-x) / 2); } .btn .badge { top: auto; } -.btn-tabler, .btn-bitbucket, .btn-flickr, .btn-rss, .btn-vk, .btn-pinterest, .btn-instagram, .btn-github, .btn-dribbble, .btn-vimeo, .btn-youtube, .btn-google, .btn-linkedin, .btn-twitter, .btn-facebook, .btn-cyan, .btn-teal, .btn-green, .btn-lime, .btn-yellow, .btn-orange, .btn-red, .btn-pink, .btn-purple, .btn-indigo, .btn-azure, .btn-blue, .btn-muted, .btn-dark, .btn-light, .btn-danger, .btn-warning, .btn-info, .btn-success, .btn-secondary, .btn-primary { - border-color: rgba(98, 105, 118, 0.24); -} -.btn-tabler:hover, .btn-bitbucket:hover, .btn-flickr:hover, .btn-rss:hover, .btn-vk:hover, .btn-pinterest:hover, .btn-instagram:hover, .btn-github:hover, .btn-dribbble:hover, .btn-vimeo:hover, .btn-youtube:hover, .btn-google:hover, .btn-linkedin:hover, .btn-twitter:hover, .btn-facebook:hover, .btn-cyan:hover, .btn-teal:hover, .btn-green:hover, .btn-lime:hover, .btn-yellow:hover, .btn-orange:hover, .btn-red:hover, .btn-pink:hover, .btn-purple:hover, .btn-indigo:hover, .btn-azure:hover, .btn-blue:hover, .btn-muted:hover, .btn-dark:hover, .btn-light:hover, .btn-danger:hover, .btn-warning:hover, .btn-info:hover, .btn-success:hover, .btn-secondary:hover, .btn-primary:hover { - color: var(--tblr-btn-color-text); - background: var(--tblr-btn-color-interactive); - border-color: var(--tblr-btn-color); -} - -.btn-outline-tabler, .btn-outline-bitbucket, .btn-outline-flickr, .btn-outline-rss, .btn-outline-vk, .btn-outline-pinterest, .btn-outline-instagram, .btn-outline-github, .btn-outline-dribbble, .btn-outline-vimeo, .btn-outline-youtube, .btn-outline-google, .btn-outline-linkedin, .btn-outline-twitter, .btn-outline-facebook, .btn-outline-cyan, .btn-outline-teal, .btn-outline-green, .btn-outline-lime, .btn-outline-yellow, .btn-outline-orange, .btn-outline-red, .btn-outline-pink, .btn-outline-purple, .btn-outline-indigo, .btn-outline-azure, .btn-outline-blue, .btn-outline-muted, .btn-outline-dark, .btn-outline-light, .btn-outline-danger, .btn-outline-warning, .btn-outline-info, .btn-outline-success, .btn-outline-secondary, .btn-outline-primary { - background-color: transparent; - color: var(--tblr-btn-color); - border-color: var(--tblr-btn-color); -} -.btn-outline-tabler:hover, .btn-outline-bitbucket:hover, .btn-outline-flickr:hover, .btn-outline-rss:hover, .btn-outline-vk:hover, .btn-outline-pinterest:hover, .btn-outline-instagram:hover, .btn-outline-github:hover, .btn-outline-dribbble:hover, .btn-outline-vimeo:hover, .btn-outline-youtube:hover, .btn-outline-google:hover, .btn-outline-linkedin:hover, .btn-outline-twitter:hover, .btn-outline-facebook:hover, .btn-outline-cyan:hover, .btn-outline-teal:hover, .btn-outline-green:hover, .btn-outline-lime:hover, .btn-outline-yellow:hover, .btn-outline-orange:hover, .btn-outline-red:hover, .btn-outline-pink:hover, .btn-outline-purple:hover, .btn-outline-indigo:hover, .btn-outline-azure:hover, .btn-outline-blue:hover, .btn-outline-muted:hover, .btn-outline-dark:hover, .btn-outline-light:hover, .btn-outline-danger:hover, .btn-outline-warning:hover, .btn-outline-info:hover, .btn-outline-success:hover, .btn-outline-secondary:hover, .btn-outline-primary:hover { - background-color: var(--tblr-btn-color); - color: var(--tblr-btn-color-text); - border-color: var(--tblr-btn-color); -} - -.btn-ghost-tabler, .btn-ghost-bitbucket, .btn-ghost-flickr, .btn-ghost-rss, .btn-ghost-vk, .btn-ghost-pinterest, .btn-ghost-instagram, .btn-ghost-github, .btn-ghost-dribbble, .btn-ghost-vimeo, .btn-ghost-youtube, .btn-ghost-google, .btn-ghost-linkedin, .btn-ghost-twitter, .btn-ghost-facebook, .btn-ghost-cyan, .btn-ghost-teal, .btn-ghost-green, .btn-ghost-lime, .btn-ghost-yellow, .btn-ghost-orange, .btn-ghost-red, .btn-ghost-pink, .btn-ghost-purple, .btn-ghost-indigo, .btn-ghost-azure, .btn-ghost-blue, .btn-ghost-muted, .btn-ghost-dark, .btn-ghost-light, .btn-ghost-danger, .btn-ghost-warning, .btn-ghost-info, .btn-ghost-success, .btn-ghost-secondary, .btn-ghost-primary { - background: transparent; - color: var(--tblr-btn-color); - border-color: transparent; -} -.btn-ghost-tabler:hover, .btn-ghost-bitbucket:hover, .btn-ghost-flickr:hover, .btn-ghost-rss:hover, .btn-ghost-vk:hover, .btn-ghost-pinterest:hover, .btn-ghost-instagram:hover, .btn-ghost-github:hover, .btn-ghost-dribbble:hover, .btn-ghost-vimeo:hover, .btn-ghost-youtube:hover, .btn-ghost-google:hover, .btn-ghost-linkedin:hover, .btn-ghost-twitter:hover, .btn-ghost-facebook:hover, .btn-ghost-cyan:hover, .btn-ghost-teal:hover, .btn-ghost-green:hover, .btn-ghost-lime:hover, .btn-ghost-yellow:hover, .btn-ghost-orange:hover, .btn-ghost-red:hover, .btn-ghost-pink:hover, .btn-ghost-purple:hover, .btn-ghost-indigo:hover, .btn-ghost-azure:hover, .btn-ghost-blue:hover, .btn-ghost-muted:hover, .btn-ghost-dark:hover, .btn-ghost-light:hover, .btn-ghost-danger:hover, .btn-ghost-warning:hover, .btn-ghost-info:hover, .btn-ghost-success:hover, .btn-ghost-secondary:hover, .btn-ghost-primary:hover { - background-color: var(--tblr-btn-color); - color: var(--tblr-btn-color-text); - border-color: var(--tblr-btn-color); -} - .btn-link { color: #206bc4; background-color: transparent; @@ -13864,8 +16210,811 @@ a.badge { border-color: transparent; } -.btn-lg svg.icon, .btn-group-lg > .btn svg.icon { - stroke-width: 2; +.btn-white { + --tblr-btn-bg: var(--tblr-card-bg); + --tblr-btn-hover-bg: var(--tblr-card-bg); +} + +.btn-primary { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-secondary { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-success { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-info { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-warning { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-danger { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-light { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #1e293b; +} + +.btn-dark { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-muted { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-blue { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-azure { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-indigo { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-purple { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-pink { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-red { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-orange { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-yellow { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-lime { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-green { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-teal { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-cyan { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-facebook { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-twitter { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-linkedin { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-google { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-youtube { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-vimeo { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-dribbble { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-github { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-instagram { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-pinterest { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-vk { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-rss { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-flickr { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-bitbucket { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-tabler { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-ghost-primary { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-secondary { + --tblr-btn-color: #626976; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #626976; + --tblr-btn-hover-border-color: #626976; + --tblr-btn-focus-shadow-rgb: 98, 105, 118; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #626976; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #626976; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-success { + --tblr-btn-color: #2fb344; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #2fb344; + --tblr-btn-hover-border-color: #2fb344; + --tblr-btn-focus-shadow-rgb: 47, 179, 68; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2fb344; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #2fb344; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-info { + --tblr-btn-color: #4299e1; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4299e1; + --tblr-btn-hover-border-color: #4299e1; + --tblr-btn-focus-shadow-rgb: 66, 153, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4299e1; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4299e1; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-warning { + --tblr-btn-color: #f76707; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f76707; + --tblr-btn-hover-border-color: #f76707; + --tblr-btn-focus-shadow-rgb: 247, 103, 7; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f76707; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f76707; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-danger { + --tblr-btn-color: #d63939; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d63939; + --tblr-btn-hover-border-color: #d63939; + --tblr-btn-focus-shadow-rgb: 214, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d63939; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d63939; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-light { + --tblr-btn-color: #fafbfc; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #1e293b; + --tblr-btn-hover-bg: #fafbfc; + --tblr-btn-hover-border-color: #fafbfc; + --tblr-btn-focus-shadow-rgb: 250, 251, 252; + --tblr-btn-active-color: #1e293b; + --tblr-btn-active-bg: #fafbfc; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-dark { + --tblr-btn-color: #1e293b; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1e293b; + --tblr-btn-hover-border-color: #1e293b; + --tblr-btn-focus-shadow-rgb: 30, 41, 59; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1e293b; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1e293b; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-muted { + --tblr-btn-color: #626976; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #626976; + --tblr-btn-hover-border-color: #626976; + --tblr-btn-focus-shadow-rgb: 98, 105, 118; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #626976; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #626976; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-blue { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-azure { + --tblr-btn-color: #4299e1; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4299e1; + --tblr-btn-hover-border-color: #4299e1; + --tblr-btn-focus-shadow-rgb: 66, 153, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4299e1; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4299e1; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-indigo { + --tblr-btn-color: #4263eb; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4263eb; + --tblr-btn-hover-border-color: #4263eb; + --tblr-btn-focus-shadow-rgb: 66, 99, 235; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4263eb; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4263eb; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-purple { + --tblr-btn-color: #ae3ec9; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ae3ec9; + --tblr-btn-hover-border-color: #ae3ec9; + --tblr-btn-focus-shadow-rgb: 174, 62, 201; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ae3ec9; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ae3ec9; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-pink { + --tblr-btn-color: #d6336c; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d6336c; + --tblr-btn-hover-border-color: #d6336c; + --tblr-btn-focus-shadow-rgb: 214, 51, 108; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d6336c; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d6336c; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-red { + --tblr-btn-color: #d63939; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d63939; + --tblr-btn-hover-border-color: #d63939; + --tblr-btn-focus-shadow-rgb: 214, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d63939; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d63939; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-orange { + --tblr-btn-color: #f76707; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f76707; + --tblr-btn-hover-border-color: #f76707; + --tblr-btn-focus-shadow-rgb: 247, 103, 7; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f76707; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f76707; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-yellow { + --tblr-btn-color: #f59f00; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f59f00; + --tblr-btn-hover-border-color: #f59f00; + --tblr-btn-focus-shadow-rgb: 245, 159, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f59f00; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f59f00; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-lime { + --tblr-btn-color: #74b816; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #74b816; + --tblr-btn-hover-border-color: #74b816; + --tblr-btn-focus-shadow-rgb: 116, 184, 22; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #74b816; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #74b816; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-green { + --tblr-btn-color: #2fb344; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #2fb344; + --tblr-btn-hover-border-color: #2fb344; + --tblr-btn-focus-shadow-rgb: 47, 179, 68; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2fb344; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #2fb344; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-teal { + --tblr-btn-color: #0ca678; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0ca678; + --tblr-btn-hover-border-color: #0ca678; + --tblr-btn-focus-shadow-rgb: 12, 166, 120; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0ca678; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0ca678; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-cyan { + --tblr-btn-color: #17a2b8; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #17a2b8; + --tblr-btn-hover-border-color: #17a2b8; + --tblr-btn-focus-shadow-rgb: 23, 162, 184; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #17a2b8; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #17a2b8; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-facebook { + --tblr-btn-color: #3b5998; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3b5998; + --tblr-btn-hover-border-color: #3b5998; + --tblr-btn-focus-shadow-rgb: 59, 89, 152; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #3b5998; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #3b5998; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-twitter { + --tblr-btn-color: #1da1f2; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1da1f2; + --tblr-btn-hover-border-color: #1da1f2; + --tblr-btn-focus-shadow-rgb: 29, 161, 242; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1da1f2; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1da1f2; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-linkedin { + --tblr-btn-color: #0a66c2; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0a66c2; + --tblr-btn-hover-border-color: #0a66c2; + --tblr-btn-focus-shadow-rgb: 10, 102, 194; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0a66c2; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0a66c2; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-google { + --tblr-btn-color: #dc4e41; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #dc4e41; + --tblr-btn-hover-border-color: #dc4e41; + --tblr-btn-focus-shadow-rgb: 220, 78, 65; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #dc4e41; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #dc4e41; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-youtube { + --tblr-btn-color: #ff0000; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ff0000; + --tblr-btn-hover-border-color: #ff0000; + --tblr-btn-focus-shadow-rgb: 255, 0, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ff0000; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ff0000; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-vimeo { + --tblr-btn-color: #1ab7ea; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1ab7ea; + --tblr-btn-hover-border-color: #1ab7ea; + --tblr-btn-focus-shadow-rgb: 26, 183, 234; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1ab7ea; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1ab7ea; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-dribbble { + --tblr-btn-color: #ea4c89; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ea4c89; + --tblr-btn-hover-border-color: #ea4c89; + --tblr-btn-focus-shadow-rgb: 234, 76, 137; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ea4c89; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ea4c89; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-github { + --tblr-btn-color: #181717; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #181717; + --tblr-btn-hover-border-color: #181717; + --tblr-btn-focus-shadow-rgb: 24, 23, 23; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #181717; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #181717; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-instagram { + --tblr-btn-color: #e4405f; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #e4405f; + --tblr-btn-hover-border-color: #e4405f; + --tblr-btn-focus-shadow-rgb: 228, 64, 95; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #e4405f; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #e4405f; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-pinterest { + --tblr-btn-color: #bd081c; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #bd081c; + --tblr-btn-hover-border-color: #bd081c; + --tblr-btn-focus-shadow-rgb: 189, 8, 28; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #bd081c; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #bd081c; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-vk { + --tblr-btn-color: #6383a8; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #6383a8; + --tblr-btn-hover-border-color: #6383a8; + --tblr-btn-focus-shadow-rgb: 99, 131, 168; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #6383a8; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #6383a8; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-rss { + --tblr-btn-color: #ffa500; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ffa500; + --tblr-btn-hover-border-color: #ffa500; + --tblr-btn-focus-shadow-rgb: 255, 165, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ffa500; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ffa500; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-flickr { + --tblr-btn-color: #0063dc; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0063dc; + --tblr-btn-hover-border-color: #0063dc; + --tblr-btn-focus-shadow-rgb: 0, 99, 220; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0063dc; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0063dc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-bitbucket { + --tblr-btn-color: #0052cc; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0052cc; + --tblr-btn-hover-border-color: #0052cc; + --tblr-btn-focus-shadow-rgb: 0, 82, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0052cc; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0052cc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-tabler { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-sm, .btn-group-sm > .btn { + --tblr-btn-line-height: 1.5; + --tblr-btn-icon-size: .75rem; +} + +.btn-lg, .btn-group-lg > .btn { + --tblr-btn-line-height: 1.5; + --tblr-btn-icon-size: 2rem; } .btn-pill { @@ -13877,20 +17026,20 @@ a.badge { padding: 0.375rem 15px; } -.btn-icon { - min-width: calc(2.125rem + 2px); -} -.btn-icon.btn-sm, .btn-group-sm > .btn-icon.btn { - min-width: calc(1.3214285715rem + 2px); -} -.btn-icon .icon { - margin: 0 -1em; -} - .btn-square { border-radius: 0; } +.btn-icon { + min-width: calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2); + min-height: calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2); + padding-left: 0; + padding-right: 0; +} +.btn-icon .icon { + margin: calc(-1 * var(--tblr-btn-padding-x)); +} + .btn-list { display: flex; flex-wrap: wrap; @@ -13915,311 +17064,26 @@ a.badge { text-shadow: none !important; pointer-events: none; } +.btn-loading > * { + opacity: 0; +} .btn-loading:after { content: ""; display: inline-block; vertical-align: text-bottom; - border: 1px solid currentColor; + border: 2px solid currentColor; border-right-color: transparent; border-radius: 100rem; - color: #ffffff; + color: var(--tblr-btn-color); position: absolute; - width: 1rem; - height: 1rem; - left: calc(50% - 0.5rem); - top: calc(50% - 0.5rem); + width: var(--tblr-btn-icon-size); + height: var(--tblr-btn-icon-size); + left: calc(50% - var(--tblr-btn-icon-size) / 2); + top: calc(50% - var(--tblr-btn-icon-size) / 2); -webkit-animation: spinner-border 0.75s linear infinite; animation: spinner-border 0.75s linear infinite; } -.btn-primary, -.btn-outline-primary, -.btn-ghost-primary { - --tblr-btn-color: #206bc4; - --tblr-btn-color-interactive: #1d60b0; - --tblr-btn-color-text: #fafbfc; -} - -.btn-secondary, -.btn-outline-secondary, -.btn-ghost-secondary { - --tblr-btn-color: #626976; - --tblr-btn-color-interactive: #585f6a; - --tblr-btn-color-text: #fafbfc; -} - -.btn-success, -.btn-outline-success, -.btn-ghost-success { - --tblr-btn-color: #2fb344; - --tblr-btn-color-interactive: #2aa13d; - --tblr-btn-color-text: #fafbfc; -} - -.btn-info, -.btn-outline-info, -.btn-ghost-info { - --tblr-btn-color: #4299e1; - --tblr-btn-color-interactive: #3b8acb; - --tblr-btn-color-text: #fafbfc; -} - -.btn-warning, -.btn-outline-warning, -.btn-ghost-warning { - --tblr-btn-color: #f76707; - --tblr-btn-color-interactive: #de5d06; - --tblr-btn-color-text: #fafbfc; -} - -.btn-danger, -.btn-outline-danger, -.btn-ghost-danger { - --tblr-btn-color: #d63939; - --tblr-btn-color-interactive: #c13333; - --tblr-btn-color-text: #fafbfc; -} - -.btn-light, -.btn-outline-light, -.btn-ghost-light { - --tblr-btn-color: #fafbfc; - --tblr-btn-color-interactive: #e1e2e3; - --tblr-btn-color-text: #1e293b; -} - -.btn-dark, -.btn-outline-dark, -.btn-ghost-dark { - --tblr-btn-color: #1e293b; - --tblr-btn-color-interactive: #1b2535; - --tblr-btn-color-text: #fafbfc; -} - -.btn-muted, -.btn-outline-muted, -.btn-ghost-muted { - --tblr-btn-color: #626976; - --tblr-btn-color-interactive: #585f6a; - --tblr-btn-color-text: #fafbfc; -} - -.btn-blue, -.btn-outline-blue, -.btn-ghost-blue { - --tblr-btn-color: #206bc4; - --tblr-btn-color-interactive: #1d60b0; - --tblr-btn-color-text: #fafbfc; -} - -.btn-azure, -.btn-outline-azure, -.btn-ghost-azure { - --tblr-btn-color: #4299e1; - --tblr-btn-color-interactive: #3b8acb; - --tblr-btn-color-text: #fafbfc; -} - -.btn-indigo, -.btn-outline-indigo, -.btn-ghost-indigo { - --tblr-btn-color: #4263eb; - --tblr-btn-color-interactive: #3b59d4; - --tblr-btn-color-text: #fafbfc; -} - -.btn-purple, -.btn-outline-purple, -.btn-ghost-purple { - --tblr-btn-color: #ae3ec9; - --tblr-btn-color-interactive: #9d38b5; - --tblr-btn-color-text: #fafbfc; -} - -.btn-pink, -.btn-outline-pink, -.btn-ghost-pink { - --tblr-btn-color: #d6336c; - --tblr-btn-color-interactive: #c12e61; - --tblr-btn-color-text: #fafbfc; -} - -.btn-red, -.btn-outline-red, -.btn-ghost-red { - --tblr-btn-color: #d63939; - --tblr-btn-color-interactive: #c13333; - --tblr-btn-color-text: #fafbfc; -} - -.btn-orange, -.btn-outline-orange, -.btn-ghost-orange { - --tblr-btn-color: #f76707; - --tblr-btn-color-interactive: #de5d06; - --tblr-btn-color-text: #fafbfc; -} - -.btn-yellow, -.btn-outline-yellow, -.btn-ghost-yellow { - --tblr-btn-color: #f59f00; - --tblr-btn-color-interactive: #dd8f00; - --tblr-btn-color-text: #fafbfc; -} - -.btn-lime, -.btn-outline-lime, -.btn-ghost-lime { - --tblr-btn-color: #74b816; - --tblr-btn-color-interactive: #68a614; - --tblr-btn-color-text: #fafbfc; -} - -.btn-green, -.btn-outline-green, -.btn-ghost-green { - --tblr-btn-color: #2fb344; - --tblr-btn-color-interactive: #2aa13d; - --tblr-btn-color-text: #fafbfc; -} - -.btn-teal, -.btn-outline-teal, -.btn-ghost-teal { - --tblr-btn-color: #0ca678; - --tblr-btn-color-interactive: #0b956c; - --tblr-btn-color-text: #fafbfc; -} - -.btn-cyan, -.btn-outline-cyan, -.btn-ghost-cyan { - --tblr-btn-color: #17a2b8; - --tblr-btn-color-interactive: #1592a6; - --tblr-btn-color-text: #fafbfc; -} - -.btn-facebook, -.btn-outline-facebook, -.btn-ghost-facebook { - --tblr-btn-color: #3b5998; - --tblr-btn-color-interactive: #355089; - --tblr-btn-color-text: #fafbfc; -} - -.btn-twitter, -.btn-outline-twitter, -.btn-ghost-twitter { - --tblr-btn-color: #1da1f2; - --tblr-btn-color-interactive: #1a91da; - --tblr-btn-color-text: #fafbfc; -} - -.btn-linkedin, -.btn-outline-linkedin, -.btn-ghost-linkedin { - --tblr-btn-color: #0a66c2; - --tblr-btn-color-interactive: #095caf; - --tblr-btn-color-text: #fafbfc; -} - -.btn-google, -.btn-outline-google, -.btn-ghost-google { - --tblr-btn-color: #dc4e41; - --tblr-btn-color-interactive: #c6463b; - --tblr-btn-color-text: #fafbfc; -} - -.btn-youtube, -.btn-outline-youtube, -.btn-ghost-youtube { - --tblr-btn-color: #ff0000; - --tblr-btn-color-interactive: #e60000; - --tblr-btn-color-text: #fafbfc; -} - -.btn-vimeo, -.btn-outline-vimeo, -.btn-ghost-vimeo { - --tblr-btn-color: #1ab7ea; - --tblr-btn-color-interactive: #17a5d3; - --tblr-btn-color-text: #fafbfc; -} - -.btn-dribbble, -.btn-outline-dribbble, -.btn-ghost-dribbble { - --tblr-btn-color: #ea4c89; - --tblr-btn-color-interactive: #d3447b; - --tblr-btn-color-text: #fafbfc; -} - -.btn-github, -.btn-outline-github, -.btn-ghost-github { - --tblr-btn-color: #181717; - --tblr-btn-color-interactive: #161515; - --tblr-btn-color-text: #fafbfc; -} - -.btn-instagram, -.btn-outline-instagram, -.btn-ghost-instagram { - --tblr-btn-color: #e4405f; - --tblr-btn-color-interactive: #cd3a56; - --tblr-btn-color-text: #fafbfc; -} - -.btn-pinterest, -.btn-outline-pinterest, -.btn-ghost-pinterest { - --tblr-btn-color: #bd081c; - --tblr-btn-color-interactive: #aa0719; - --tblr-btn-color-text: #fafbfc; -} - -.btn-vk, -.btn-outline-vk, -.btn-ghost-vk { - --tblr-btn-color: #6383a8; - --tblr-btn-color-interactive: #597697; - --tblr-btn-color-text: #fafbfc; -} - -.btn-rss, -.btn-outline-rss, -.btn-ghost-rss { - --tblr-btn-color: #ffa500; - --tblr-btn-color-interactive: #e69500; - --tblr-btn-color-text: #fafbfc; -} - -.btn-flickr, -.btn-outline-flickr, -.btn-ghost-flickr { - --tblr-btn-color: #0063dc; - --tblr-btn-color-interactive: #0059c6; - --tblr-btn-color-text: #fafbfc; -} - -.btn-bitbucket, -.btn-outline-bitbucket, -.btn-ghost-bitbucket { - --tblr-btn-color: #0052cc; - --tblr-btn-color-interactive: #004ab8; - --tblr-btn-color-text: #fafbfc; -} - -.btn-tabler, -.btn-outline-tabler, -.btn-ghost-tabler { - --tblr-btn-color: #206bc4; - --tblr-btn-color-interactive: #1d60b0; - --tblr-btn-color-text: #fafbfc; -} - .btn-action { padding: 0; border: 0; @@ -14468,8 +17332,8 @@ a.card:hover { } .card-stamp-icon { - background: #626976; - color: #ffffff; + background: var(--tblr-muted); + color: var(--tblr-card-bg); display: flex; align-items: center; justify-content: center; @@ -14804,17 +17668,37 @@ Card table .card-table tr td:first-child, .card-table tr th:first-child { padding-left: 1.25rem; + border-left: 0; } .card-table tr td:last-child, .card-table tr th:last-child { padding-right: 1.25rem; + border-right: 0; } -.card-table thead tr:first-child td, -.card-table thead tr:first-child th { +.card-table thead tr:first-child, +.card-table tbody tr:first-child, +.card-table tfoot tr:first-child { border-top: 0; } +.card-table thead tr:first-child td, +.card-table thead tr:first-child th, +.card-table tbody tr:first-child td, +.card-table tbody tr:first-child th, +.card-table tfoot tr:first-child td, +.card-table tfoot tr:first-child th { + border-top: 0; +} +.card-table thead tr:last-child, +.card-table tbody tr:last-child, +.card-table tfoot tr:last-child { + border-bottom: 0; +} +.card-table thead tr:last-child td, +.card-table thead tr:last-child th, .card-table tbody tr:last-child td, -.card-table tbody tr:last-child th { +.card-table tbody tr:last-child th, +.card-table tfoot tr:last-child td, +.card-table tfoot tr:last-child th { border-bottom: 0; } .card-body + .card-table { @@ -15051,6 +17935,24 @@ Card list group box-shadow: none; } +.datagrid { + --tblr-datagrid-padding: 1.5rem; + --tblr-datagrid-item-width: 15rem; + display: grid; + grid-gap: var(--tblr-datagrid-padding); + grid-template-columns: repeat(auto-fit, minmax(var(--tblr-datagrid-item-width), 1fr)); +} + +.datagrid-title { + font-size: 0.625rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.04em; + line-height: 1.6; + color: #626976; + margin-bottom: 0.25rem; +} + .empty { display: flex; flex-direction: column; @@ -15136,17 +18038,21 @@ Card list group } .container-tight { + --tblr-gutter-x: 1.5rem; + --tblr-gutter-y: 0; width: 100%; - padding-right: var(--tblr-gutter-x, 1.5rem); - padding-left: var(--tblr-gutter-x, 1.5rem); + padding-right: calc(var(--tblr-gutter-x) * 0.5); + padding-left: calc(var(--tblr-gutter-x) * 0.5); margin-right: auto; margin-left: auto; max-width: 30rem; } .container-narrow { + --tblr-gutter-x: 1.5rem; + --tblr-gutter-y: 0; width: 100%; - padding-right: var(--tblr-gutter-x, 1.5rem); - padding-left: var(--tblr-gutter-x, 1.5rem); + padding-right: calc(var(--tblr-gutter-x) * 0.5); + padding-left: calc(var(--tblr-gutter-x) * 0.5); margin-right: auto; margin-left: auto; max-width: 45rem; @@ -15517,10 +18423,12 @@ textarea[cols] { /** Form label */ +.col-form-label, .form-label { display: block; font-weight: 500; } +.col-form-label.required:after, .form-label.required:after { content: "*"; margin-left: 0.25rem; @@ -16186,17 +19094,17 @@ Form switch } .list-group-item { - background-color: rgba(27, 125, 241, 0.02); + background-color: inherit; } .list-group-item.active { - background-color: inherit; + background-color: rgba(27, 125, 241, 0.02); border-left-color: #f59f00; border-left-width: 2px; } .list-group-item:active, .list-group-item:focus, .list-group-item:hover { - background-color: inherit; + background-color: rgba(27, 125, 241, 0.02); } .list-group-item.disabled, .list-group-item:disabled { @@ -17270,12 +20178,13 @@ a.step-item:hover { } } .status { + --tblr-status-height: 1.5rem; --tblr-status-color: #626976; --tblr-status-color-rgb: 98, 105, 118; display: inline-flex; align-items: center; - height: 2rem; - padding: 0.5rem 0.75rem; + height: var(--tblr-status-height); + padding: 0.25rem 0.75rem; gap: 0.5rem; color: var(--tblr-status-color); background: rgba(var(--tblr-status-color-rgb), 0.1); @@ -17817,7 +20726,7 @@ a.step-item:hover { } .table-mobile td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17851,7 +20760,7 @@ a.step-item:hover { } .table-mobile-sm td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17886,7 +20795,7 @@ a.step-item:hover { } .table-mobile-md td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17921,7 +20830,7 @@ a.step-item:hover { } .table-mobile-lg td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17956,7 +20865,7 @@ a.step-item:hover { } .table-mobile-xl td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17991,7 +20900,7 @@ a.step-item:hover { } .table-mobile-xxl td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -18024,8 +20933,8 @@ a.step-item:hover { width: 100%; text-align: inherit; transition: color 0.3s; - margin: -0.5rem -0.5rem; - padding: 0.5rem 0.5rem; + margin: -0.5rem -0.75rem; + padding: 0.5rem 0.75rem; } @media (prefers-reduced-motion: reduce) { .table-sort { @@ -18105,6 +21014,114 @@ a.step-item:hover { --tblr-toast-color: #626976; } +.toast-blue { + --tblr-toast-color: #206bc4; +} + +.toast-azure { + --tblr-toast-color: #4299e1; +} + +.toast-indigo { + --tblr-toast-color: #4263eb; +} + +.toast-purple { + --tblr-toast-color: #ae3ec9; +} + +.toast-pink { + --tblr-toast-color: #d6336c; +} + +.toast-red { + --tblr-toast-color: #d63939; +} + +.toast-orange { + --tblr-toast-color: #f76707; +} + +.toast-yellow { + --tblr-toast-color: #f59f00; +} + +.toast-lime { + --tblr-toast-color: #74b816; +} + +.toast-green { + --tblr-toast-color: #2fb344; +} + +.toast-teal { + --tblr-toast-color: #0ca678; +} + +.toast-cyan { + --tblr-toast-color: #17a2b8; +} + +.toast-facebook { + --tblr-toast-color: #3b5998; +} + +.toast-twitter { + --tblr-toast-color: #1da1f2; +} + +.toast-linkedin { + --tblr-toast-color: #0a66c2; +} + +.toast-google { + --tblr-toast-color: #dc4e41; +} + +.toast-youtube { + --tblr-toast-color: #ff0000; +} + +.toast-vimeo { + --tblr-toast-color: #1ab7ea; +} + +.toast-dribbble { + --tblr-toast-color: #ea4c89; +} + +.toast-github { + --tblr-toast-color: #181717; +} + +.toast-instagram { + --tblr-toast-color: #e4405f; +} + +.toast-pinterest { + --tblr-toast-color: #bd081c; +} + +.toast-vk { + --tblr-toast-color: #6383a8; +} + +.toast-rss { + --tblr-toast-color: #ffa500; +} + +.toast-flickr { + --tblr-toast-color: #0063dc; +} + +.toast-bitbucket { + --tblr-toast-color: #0052cc; +} + +.toast-tabler { + --tblr-toast-color: #206bc4; +} + .toolbar { display: flex; flex-wrap: nowrap; @@ -18135,7 +21152,6 @@ Hr text } .hr-text:after, .hr-text:before { flex: 1 1 auto; - height: 1px; background-color: currentColor; opacity: 0.16; } @@ -18443,12 +21459,8 @@ Chart sparkline } .bg-primary { - color: #ffffff !important; - background: #206bc4 !important; -} - -.text-primary { - color: #206bc4 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-primary-rgb), var(--tblr-bg-opacity)) !important; } .bg-primary-lt { @@ -18457,12 +21469,8 @@ Chart sparkline } .bg-secondary { - color: #ffffff !important; - background: #626976 !important; -} - -.text-secondary { - color: #626976 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-secondary-rgb), var(--tblr-bg-opacity)) !important; } .bg-secondary-lt { @@ -18471,12 +21479,8 @@ Chart sparkline } .bg-success { - color: #ffffff !important; - background: #2fb344 !important; -} - -.text-success { - color: #2fb344 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-success-rgb), var(--tblr-bg-opacity)) !important; } .bg-success-lt { @@ -18485,12 +21489,8 @@ Chart sparkline } .bg-info { - color: #ffffff !important; - background: #4299e1 !important; -} - -.text-info { - color: #4299e1 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-info-rgb), var(--tblr-bg-opacity)) !important; } .bg-info-lt { @@ -18499,12 +21499,8 @@ Chart sparkline } .bg-warning { - color: #ffffff !important; - background: #f76707 !important; -} - -.text-warning { - color: #f76707 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-warning-rgb), var(--tblr-bg-opacity)) !important; } .bg-warning-lt { @@ -18513,12 +21509,8 @@ Chart sparkline } .bg-danger { - color: #ffffff !important; - background: #d63939 !important; -} - -.text-danger { - color: #d63939 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-danger-rgb), var(--tblr-bg-opacity)) !important; } .bg-danger-lt { @@ -18527,12 +21519,8 @@ Chart sparkline } .bg-light { - color: #ffffff !important; - background: #fafbfc !important; -} - -.text-light { - color: #fafbfc !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-light-rgb), var(--tblr-bg-opacity)) !important; } .bg-light-lt { @@ -18541,12 +21529,8 @@ Chart sparkline } .bg-dark { - color: #ffffff !important; - background: #1e293b !important; -} - -.text-dark { - color: #1e293b !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-dark-rgb), var(--tblr-bg-opacity)) !important; } .bg-dark-lt { @@ -18555,12 +21539,8 @@ Chart sparkline } .bg-muted { - color: #ffffff !important; - background: #626976 !important; -} - -.text-muted { - color: #626976 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-muted-rgb), var(--tblr-bg-opacity)) !important; } .bg-muted-lt { @@ -18569,12 +21549,8 @@ Chart sparkline } .bg-blue { - color: #ffffff !important; - background: #206bc4 !important; -} - -.text-blue { - color: #206bc4 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-blue-rgb), var(--tblr-bg-opacity)) !important; } .bg-blue-lt { @@ -18583,12 +21559,8 @@ Chart sparkline } .bg-azure { - color: #ffffff !important; - background: #4299e1 !important; -} - -.text-azure { - color: #4299e1 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-azure-rgb), var(--tblr-bg-opacity)) !important; } .bg-azure-lt { @@ -18597,12 +21569,8 @@ Chart sparkline } .bg-indigo { - color: #ffffff !important; - background: #4263eb !important; -} - -.text-indigo { - color: #4263eb !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-indigo-rgb), var(--tblr-bg-opacity)) !important; } .bg-indigo-lt { @@ -18611,12 +21579,8 @@ Chart sparkline } .bg-purple { - color: #ffffff !important; - background: #ae3ec9 !important; -} - -.text-purple { - color: #ae3ec9 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-purple-rgb), var(--tblr-bg-opacity)) !important; } .bg-purple-lt { @@ -18625,12 +21589,8 @@ Chart sparkline } .bg-pink { - color: #ffffff !important; - background: #d6336c !important; -} - -.text-pink { - color: #d6336c !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-pink-rgb), var(--tblr-bg-opacity)) !important; } .bg-pink-lt { @@ -18639,12 +21599,8 @@ Chart sparkline } .bg-red { - color: #ffffff !important; - background: #d63939 !important; -} - -.text-red { - color: #d63939 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-red-rgb), var(--tblr-bg-opacity)) !important; } .bg-red-lt { @@ -18653,12 +21609,8 @@ Chart sparkline } .bg-orange { - color: #ffffff !important; - background: #f76707 !important; -} - -.text-orange { - color: #f76707 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-orange-rgb), var(--tblr-bg-opacity)) !important; } .bg-orange-lt { @@ -18667,12 +21619,8 @@ Chart sparkline } .bg-yellow { - color: #ffffff !important; - background: #f59f00 !important; -} - -.text-yellow { - color: #f59f00 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-yellow-rgb), var(--tblr-bg-opacity)) !important; } .bg-yellow-lt { @@ -18681,12 +21629,8 @@ Chart sparkline } .bg-lime { - color: #ffffff !important; - background: #74b816 !important; -} - -.text-lime { - color: #74b816 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-lime-rgb), var(--tblr-bg-opacity)) !important; } .bg-lime-lt { @@ -18695,12 +21639,8 @@ Chart sparkline } .bg-green { - color: #ffffff !important; - background: #2fb344 !important; -} - -.text-green { - color: #2fb344 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-green-rgb), var(--tblr-bg-opacity)) !important; } .bg-green-lt { @@ -18709,12 +21649,8 @@ Chart sparkline } .bg-teal { - color: #ffffff !important; - background: #0ca678 !important; -} - -.text-teal { - color: #0ca678 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-teal-rgb), var(--tblr-bg-opacity)) !important; } .bg-teal-lt { @@ -18723,12 +21659,8 @@ Chart sparkline } .bg-cyan { - color: #ffffff !important; - background: #17a2b8 !important; -} - -.text-cyan { - color: #17a2b8 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-cyan-rgb), var(--tblr-bg-opacity)) !important; } .bg-cyan-lt { @@ -18737,12 +21669,8 @@ Chart sparkline } .bg-facebook { - color: #ffffff !important; - background: #3b5998 !important; -} - -.text-facebook { - color: #3b5998 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-facebook-rgb), var(--tblr-bg-opacity)) !important; } .bg-facebook-lt { @@ -18751,12 +21679,8 @@ Chart sparkline } .bg-twitter { - color: #ffffff !important; - background: #1da1f2 !important; -} - -.text-twitter { - color: #1da1f2 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-twitter-rgb), var(--tblr-bg-opacity)) !important; } .bg-twitter-lt { @@ -18765,12 +21689,8 @@ Chart sparkline } .bg-linkedin { - color: #ffffff !important; - background: #0a66c2 !important; -} - -.text-linkedin { - color: #0a66c2 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-linkedin-rgb), var(--tblr-bg-opacity)) !important; } .bg-linkedin-lt { @@ -18779,12 +21699,8 @@ Chart sparkline } .bg-google { - color: #ffffff !important; - background: #dc4e41 !important; -} - -.text-google { - color: #dc4e41 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-google-rgb), var(--tblr-bg-opacity)) !important; } .bg-google-lt { @@ -18793,12 +21709,8 @@ Chart sparkline } .bg-youtube { - color: #ffffff !important; - background: #ff0000 !important; -} - -.text-youtube { - color: #ff0000 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-youtube-rgb), var(--tblr-bg-opacity)) !important; } .bg-youtube-lt { @@ -18807,12 +21719,8 @@ Chart sparkline } .bg-vimeo { - color: #ffffff !important; - background: #1ab7ea !important; -} - -.text-vimeo { - color: #1ab7ea !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-vimeo-rgb), var(--tblr-bg-opacity)) !important; } .bg-vimeo-lt { @@ -18821,12 +21729,8 @@ Chart sparkline } .bg-dribbble { - color: #ffffff !important; - background: #ea4c89 !important; -} - -.text-dribbble { - color: #ea4c89 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-dribbble-rgb), var(--tblr-bg-opacity)) !important; } .bg-dribbble-lt { @@ -18835,12 +21739,8 @@ Chart sparkline } .bg-github { - color: #ffffff !important; - background: #181717 !important; -} - -.text-github { - color: #181717 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-github-rgb), var(--tblr-bg-opacity)) !important; } .bg-github-lt { @@ -18849,12 +21749,8 @@ Chart sparkline } .bg-instagram { - color: #ffffff !important; - background: #e4405f !important; -} - -.text-instagram { - color: #e4405f !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-instagram-rgb), var(--tblr-bg-opacity)) !important; } .bg-instagram-lt { @@ -18863,12 +21759,8 @@ Chart sparkline } .bg-pinterest { - color: #ffffff !important; - background: #bd081c !important; -} - -.text-pinterest { - color: #bd081c !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-pinterest-rgb), var(--tblr-bg-opacity)) !important; } .bg-pinterest-lt { @@ -18877,12 +21769,8 @@ Chart sparkline } .bg-vk { - color: #ffffff !important; - background: #6383a8 !important; -} - -.text-vk { - color: #6383a8 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-vk-rgb), var(--tblr-bg-opacity)) !important; } .bg-vk-lt { @@ -18891,12 +21779,8 @@ Chart sparkline } .bg-rss { - color: #ffffff !important; - background: #ffa500 !important; -} - -.text-rss { - color: #ffa500 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-rss-rgb), var(--tblr-bg-opacity)) !important; } .bg-rss-lt { @@ -18905,12 +21789,8 @@ Chart sparkline } .bg-flickr { - color: #ffffff !important; - background: #0063dc !important; -} - -.text-flickr { - color: #0063dc !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-flickr-rgb), var(--tblr-bg-opacity)) !important; } .bg-flickr-lt { @@ -18919,12 +21799,8 @@ Chart sparkline } .bg-bitbucket { - color: #ffffff !important; - background: #0052cc !important; -} - -.text-bitbucket { - color: #0052cc !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-bg-opacity)) !important; } .bg-bitbucket-lt { @@ -18933,12 +21809,8 @@ Chart sparkline } .bg-tabler { - color: #ffffff !important; - background: #206bc4 !important; -} - -.text-tabler { - color: #206bc4 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-tabler-rgb), var(--tblr-bg-opacity)) !important; } .bg-tabler-lt { @@ -18946,6 +21818,150 @@ Chart sparkline background: rgba(32, 107, 196, 0.05) !important; } +.text-primary { + color: var(--tblr-primary) !important; +} + +.text-secondary { + color: var(--tblr-secondary) !important; +} + +.text-success { + color: var(--tblr-success) !important; +} + +.text-info { + color: var(--tblr-info) !important; +} + +.text-warning { + color: var(--tblr-warning) !important; +} + +.text-danger { + color: var(--tblr-danger) !important; +} + +.text-light { + color: var(--tblr-light) !important; +} + +.text-dark { + color: var(--tblr-dark) !important; +} + +.text-muted { + color: var(--tblr-muted) !important; +} + +.text-blue { + color: var(--tblr-blue) !important; +} + +.text-azure { + color: var(--tblr-azure) !important; +} + +.text-indigo { + color: var(--tblr-indigo) !important; +} + +.text-purple { + color: var(--tblr-purple) !important; +} + +.text-pink { + color: var(--tblr-pink) !important; +} + +.text-red { + color: var(--tblr-red) !important; +} + +.text-orange { + color: var(--tblr-orange) !important; +} + +.text-yellow { + color: var(--tblr-yellow) !important; +} + +.text-lime { + color: var(--tblr-lime) !important; +} + +.text-green { + color: var(--tblr-green) !important; +} + +.text-teal { + color: var(--tblr-teal) !important; +} + +.text-cyan { + color: var(--tblr-cyan) !important; +} + +.text-facebook { + color: var(--tblr-facebook) !important; +} + +.text-twitter { + color: var(--tblr-twitter) !important; +} + +.text-linkedin { + color: var(--tblr-linkedin) !important; +} + +.text-google { + color: var(--tblr-google) !important; +} + +.text-youtube { + color: var(--tblr-youtube) !important; +} + +.text-vimeo { + color: var(--tblr-vimeo) !important; +} + +.text-dribbble { + color: var(--tblr-dribbble) !important; +} + +.text-github { + color: var(--tblr-github) !important; +} + +.text-instagram { + color: var(--tblr-instagram) !important; +} + +.text-pinterest { + color: var(--tblr-pinterest) !important; +} + +.text-vk { + color: var(--tblr-vk) !important; +} + +.text-rss { + color: var(--tblr-rss) !important; +} + +.text-flickr { + color: var(--tblr-flickr) !important; +} + +.text-bitbucket { + color: var(--tblr-bitbucket) !important; +} + +.text-tabler { + color: var(--tblr-tabler) !important; +} + /* Scrollable */ diff --git a/demo/dist/css/tabler.min.css b/demo/dist/css/tabler.min.css index 7bbfdc9c0..ea0cf43a1 100644 --- a/demo/dist/css/tabler.min.css +++ b/demo/dist/css/tabler.min.css @@ -1,14 +1,14 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) */ -@charset "UTF-8";:root{--tblr-blue:#206bc4;--tblr-indigo:#4263eb;--tblr-purple:#ae3ec9;--tblr-pink:#d6336c;--tblr-red:#d63939;--tblr-orange:#f76707;--tblr-yellow:#f59f00;--tblr-green:#2fb344;--tblr-teal:#0ca678;--tblr-cyan:#17a2b8;--tblr-white:#ffffff;--tblr-gray:#475569;--tblr-gray-dark:#1e293b;--tblr-gray-100:#f1f5f9;--tblr-gray-200:#e2e8f0;--tblr-gray-300:#cbd5e1;--tblr-gray-400:#94a3b8;--tblr-gray-500:#64748b;--tblr-gray-600:#475569;--tblr-gray-700:#334155;--tblr-gray-800:#1e293b;--tblr-gray-900:#0f172a;--tblr-primary:#206bc4;--tblr-secondary:#626976;--tblr-success:#2fb344;--tblr-info:#4299e1;--tblr-warning:#f76707;--tblr-danger:#d63939;--tblr-light:#fafbfc;--tblr-dark:#1e293b;--tblr-muted:#626976;--tblr-primary-rgb:32,107,196;--tblr-secondary-rgb:98,105,118;--tblr-success-rgb:47,179,68;--tblr-info-rgb:66,153,225;--tblr-warning-rgb:247,103,7;--tblr-danger-rgb:214,57,57;--tblr-light-rgb:250,251,252;--tblr-dark-rgb:30,41,59;--tblr-muted-rgb:98,105,118;--tblr-white-rgb:255,255,255;--tblr-black-rgb:0,0,0;--tblr-body-color-rgb:30,41,59;--tblr-body-bg-rgb:245,247,251;--tblr-font-sans-serif:-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;--tblr-font-monospace:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--tblr-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--tblr-body-font-family:var(--tblr-font-sans-serif);--tblr-body-font-size:0.875rem;--tblr-body-font-weight:400;--tblr-body-line-height:1.4285714286;--tblr-body-color:#1e293b;--tblr-body-bg:#f5f7fb}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--tblr-body-font-family);font-size:var(--tblr-body-font-size);font-weight:var(--tblr-body-font-weight);line-height:var(--tblr-body-line-height);color:var(--tblr-body-color);text-align:var(--tblr-body-text-align);background-color:var(--tblr-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.hr,hr{margin:2rem 0;color:inherit;background-color:currentColor;border:0;opacity:.16}.hr:not([size]),hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:600;line-height:1.2}.h1,h1{font-size:1.5rem}.h2,h2{font-size:1.25rem}.h3,h3{font-size:1rem}.h4,h4{font-size:.875rem}.h5,h5{font-size:.75rem}.h6,h6{font-size:.625rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:85.71428571%}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#206bc4;text-decoration:none}a:hover{color:#1a569d;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--tblr-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:85.71428571%}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:85.71428571%;color:#4b5462;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:85.71428571%;color:#fff;background-color:#0f172a;border-radius:2px}kbd kbd{padding:0;font-size:1em;font-weight:600}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#626976;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:.875rem;font-weight:400}.display-1{font-size:5rem;font-weight:300;line-height:1.2}.display-2{font-size:4.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}.display-5{font-size:3rem;font-weight:300;line-height:1.2}.display-6{font-size:2.5rem;font-weight:300;line-height:1.2}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:85.71428571%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:.875rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:85.71428571%;color:#475569}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#f5f7fb;border:1px solid #cbd5e1;border-radius:4px;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:85.71428571%;color:#475569}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--tblr-gutter-x,1.5rem);padding-left:var(--tblr-gutter-x,1.5rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--tblr-gutter-x:1rem;--tblr-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--tblr-gutter-y));margin-right:calc(-.5 * var(--tblr-gutter-x));margin-left:calc(-.5 * var(--tblr-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-top:var(--tblr-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--tblr-gutter-x:0}.g-0,.gy-0{--tblr-gutter-y:0}.g-1,.gx-1{--tblr-gutter-x:0.25rem}.g-1,.gy-1{--tblr-gutter-y:0.25rem}.g-2,.gx-2{--tblr-gutter-x:0.5rem}.g-2,.gy-2{--tblr-gutter-y:0.5rem}.g-3,.gx-3{--tblr-gutter-x:1rem}.g-3,.gy-3{--tblr-gutter-y:1rem}.g-4,.gx-4{--tblr-gutter-x:2rem}.g-4,.gy-4{--tblr-gutter-y:2rem}.g-5,.gx-5{--tblr-gutter-x:4rem}.g-5,.gy-5{--tblr-gutter-y:4rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--tblr-gutter-x:0}.g-sm-0,.gy-sm-0{--tblr-gutter-y:0}.g-sm-1,.gx-sm-1{--tblr-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--tblr-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--tblr-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--tblr-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--tblr-gutter-x:1rem}.g-sm-3,.gy-sm-3{--tblr-gutter-y:1rem}.g-sm-4,.gx-sm-4{--tblr-gutter-x:2rem}.g-sm-4,.gy-sm-4{--tblr-gutter-y:2rem}.g-sm-5,.gx-sm-5{--tblr-gutter-x:4rem}.g-sm-5,.gy-sm-5{--tblr-gutter-y:4rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--tblr-gutter-x:0}.g-md-0,.gy-md-0{--tblr-gutter-y:0}.g-md-1,.gx-md-1{--tblr-gutter-x:0.25rem}.g-md-1,.gy-md-1{--tblr-gutter-y:0.25rem}.g-md-2,.gx-md-2{--tblr-gutter-x:0.5rem}.g-md-2,.gy-md-2{--tblr-gutter-y:0.5rem}.g-md-3,.gx-md-3{--tblr-gutter-x:1rem}.g-md-3,.gy-md-3{--tblr-gutter-y:1rem}.g-md-4,.gx-md-4{--tblr-gutter-x:2rem}.g-md-4,.gy-md-4{--tblr-gutter-y:2rem}.g-md-5,.gx-md-5{--tblr-gutter-x:4rem}.g-md-5,.gy-md-5{--tblr-gutter-y:4rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--tblr-gutter-x:0}.g-lg-0,.gy-lg-0{--tblr-gutter-y:0}.g-lg-1,.gx-lg-1{--tblr-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--tblr-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--tblr-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--tblr-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--tblr-gutter-x:1rem}.g-lg-3,.gy-lg-3{--tblr-gutter-y:1rem}.g-lg-4,.gx-lg-4{--tblr-gutter-x:2rem}.g-lg-4,.gy-lg-4{--tblr-gutter-y:2rem}.g-lg-5,.gx-lg-5{--tblr-gutter-x:4rem}.g-lg-5,.gy-lg-5{--tblr-gutter-y:4rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--tblr-gutter-x:0}.g-xl-0,.gy-xl-0{--tblr-gutter-y:0}.g-xl-1,.gx-xl-1{--tblr-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--tblr-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--tblr-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--tblr-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--tblr-gutter-x:1rem}.g-xl-3,.gy-xl-3{--tblr-gutter-y:1rem}.g-xl-4,.gx-xl-4{--tblr-gutter-x:2rem}.g-xl-4,.gy-xl-4{--tblr-gutter-y:2rem}.g-xl-5,.gx-xl-5{--tblr-gutter-x:4rem}.g-xl-5,.gy-xl-5{--tblr-gutter-y:4rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--tblr-gutter-x:0}.g-xxl-0,.gy-xxl-0{--tblr-gutter-y:0}.g-xxl-1,.gx-xxl-1{--tblr-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--tblr-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--tblr-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--tblr-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--tblr-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--tblr-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--tblr-gutter-x:2rem}.g-xxl-4,.gy-xxl-4{--tblr-gutter-y:2rem}.g-xxl-5,.gx-xxl-5{--tblr-gutter-x:4rem}.g-xxl-5,.gy-xxl-5{--tblr-gutter-y:4rem}}.markdown>table,.table{--tblr-table-bg:transparent;--tblr-table-accent-bg:transparent;--tblr-table-striped-color:inherit;--tblr-table-striped-bg:var(--tblr-border-color-light);--tblr-table-active-color:inherit;--tblr-table-active-bg:rgba(0, 0, 0, 0.1);--tblr-table-hover-color:inherit;--tblr-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:inherit;vertical-align:top;border-color:rgba(98,105,118,.16)}.markdown>table>:not(caption)>*>*,.table>:not(caption)>*>*{padding:.75rem .5rem;background-color:var(--tblr-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--tblr-table-accent-bg)}.markdown>table>tbody,.table>tbody{vertical-align:inherit}.markdown>table>thead,.table>thead{vertical-align:bottom}.markdown>table>:not(:first-child),.table>:not(:first-child){border-top:2px solid rgba(98,105,118,.16)}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.markdown>table>:not(caption)>*,.table-bordered>:not(caption)>*{border-width:1px 0}.markdown>table>:not(caption)>*>*,.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(even)>*{--tblr-table-accent-bg:var(--tblr-table-striped-bg);color:var(--tblr-table-striped-color)}.table-active{--tblr-table-accent-bg:var(--tblr-table-active-bg);color:var(--tblr-table-active-color)}.table-hover>tbody>tr:hover>*{--tblr-table-accent-bg:var(--tblr-table-hover-bg);color:var(--tblr-table-hover-color)}.table-primary{--tblr-table-bg:#d2e1f3;--tblr-table-striped-bg:#c9d8ea;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c0cfe1;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#c5d3e5;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#c0cfe1}.table-secondary{--tblr-table-bg:#e0e1e4;--tblr-table-striped-bg:#d6d8dc;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#cdcfd3;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#d1d3d7;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#cdcfd3}.table-success{--tblr-table-bg:#d5f0da;--tblr-table-striped-bg:#cce6d2;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c3dcca;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#c7e1ce;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#c3dcca}.table-info{--tblr-table-bg:#d9ebf9;--tblr-table-striped-bg:#d0e1f0;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c6d8e6;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#cbdceb;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#c6d8e6}.table-warning{--tblr-table-bg:#fde1cd;--tblr-table-striped-bg:#f2d8c6;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e7cfbe;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#ecd3c2;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#e7cfbe}.table-danger{--tblr-table-bg:#f7d7d7;--tblr-table-striped-bg:#eccecf;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e1c6c7;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#e7cacb;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#e1c6c7}.table-light{--tblr-table-bg:#fafbfc;--tblr-table-striped-bg:#eff1f2;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e4e6e9;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#eaebee;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#e4e6e9}.table-dark{--tblr-table-bg:#1e293b;--tblr-table-striped-bg:#293445;--tblr-table-striped-color:#fafbfc;--tblr-table-active-bg:#343e4e;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#2f3949;--tblr-table-hover-color:#fafbfc;color:#fafbfc;border-color:#343e4e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem;font-size:.875rem;font-weight:500}.col-form-label{padding-top:calc(.4375rem + 1px);padding-bottom:calc(.4375rem + 1px);margin-bottom:0;font-size:inherit;font-weight:500;line-height:1.4285714286}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.125rem + 1px);padding-bottom:calc(.125rem + 1px);font-size:.75rem}.form-text{margin-top:.25rem;font-size:85.71428571%;color:#626976}.form-control{display:block;width:100%;padding:.4375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:inherit;background-color:#fff;background-clip:padding-box;border:1px solid #d9dbde;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:4px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:inherit;background-color:#fff;border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-control::-webkit-date-and-time-value{height:1.4285714286em}.form-control::-webkit-input-placeholder{color:#a5a9b1;opacity:1}.form-control::-moz-placeholder{color:#a5a9b1;opacity:1}.form-control:-ms-input-placeholder{color:#a5a9b1;opacity:1}.form-control::-ms-input-placeholder{color:#a5a9b1;opacity:1}.form-control::placeholder{color:#a5a9b1;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#fafbfc;opacity:1}.form-control::-webkit-file-upload-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#eeeeef}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#eeeeef}.form-control::-webkit-file-upload-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#eeeeef}.form-control-plaintext{display:block;width:100%;padding:.4375rem 0;margin-bottom:0;line-height:1.4285714286;color:#1e293b;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.4285714286em + .25rem + 2px);padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.form-control-sm::-webkit-file-upload-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.4285714286em + 1rem + 2px);padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.form-control-lg::file-selector-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}textarea.form-control{min-height:calc(1.4285714286em + .875rem + 2px)}textarea.form-control-sm{min-height:calc(1.4285714286em + .25rem + 2px)}textarea.form-control-lg{min-height:calc(1.4285714286em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.4375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.4285714286em;border-radius:4px}.form-control-color::-webkit-color-swatch{height:1.4285714286em;border-radius:4px}.form-select{display:block;width:100%;padding:.4375rem 2.25rem .4375rem .75rem;-moz-padding-start:calc(.75rem - 3px);font-size:.875rem;font-weight:400;line-height:1.4285714286;color:inherit;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #d9dbde;border-radius:4px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e2e8f0}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 inherit}.form-select-sm{padding-top:.125rem;padding-bottom:.125rem;padding-left:.5rem;font-size:.75rem;border-radius:2px}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1.5rem;font-size:1.25rem;border-radius:8px}.form-check{display:block;min-height:1.25rem;padding-left:1.5rem;margin-bottom:.5rem}.form-check .form-check-input{float:left;margin-left:-1.5rem}.form-check-input{width:1rem;height:1rem;margin-top:.2142857143rem;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(98,105,118,.24);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:4px}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-check-input:checked{background-color:#206bc4;border-color:rgba(98,105,118,.24)}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#206bc4;border-color:#206bc4;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.7}.form-switch{padding-left:2.5rem}.form-switch .form-check-input{width:2rem;margin-left:-2.5rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23e6e7e9'/%3e%3c/svg%3e");background-position:left center;border-radius:2rem;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2390b5e2'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.25rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.375rem;background-color:#206bc4;border:2px solid var(--tblr-border-color-light);border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bcd3ed}.form-range::-webkit-slider-runnable-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color-light);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#206bc4;border:2px solid var(--tblr-border-color-light);border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#bcd3ed}.form-range::-moz-range-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color-light);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#64748b}.form-range:disabled::-moz-range-thumb{background-color:#64748b}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control::-ms-input-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.4375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:#626976;text-align:center;white-space:nowrap;background-color:#fafbfc;border:1px solid #d9dbde;border-radius:4px}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.71428571%;color:#2fb344}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;color:#fafbfc;background-color:rgba(47,179,68,.9);border-radius:4px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#2fb344;padding-right:calc(1.4285714286em + .875rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.4285714286em + .875rem);background-position:top calc(.3571428572em + .21875rem) right calc(.3571428572em + .21875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#2fb344}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#2fb344}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#2fb344}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#2fb344}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.71428571%;color:#d63939}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;color:#fafbfc;background-color:rgba(214,57,57,.9);border-radius:4px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#d63939;padding-right:calc(1.4285714286em + .875rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.4285714286em + .875rem);background-position:top calc(.3571428572em + .21875rem) right calc(.3571428572em + .21875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#d63939}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#d63939}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#d63939}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#d63939}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:500;line-height:1.4285714286;color:#1e293b;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4375rem 1rem;font-size:.875rem;border-radius:4px;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#1e293b;text-decoration:none}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-link{font-weight:400;color:#206bc4;text-decoration:none}.btn-link:hover{color:#1a569d;text-decoration:underline}.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#475569}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.btn-group-sm>.btn,.btn-sm{padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(-45deg)}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:11rem;padding:.25rem 0;margin:0;font-size:.875rem;color:#1e293b;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(98,105,118,.16);border-radius:4px}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:1px}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:1px}.dropup .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(135deg)}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:1px}.dropend .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(-135deg)}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:1px}.dropstart .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(45deg)}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(98,105,118,.16)}.dropdown-item{display:block;width:100%;padding:.5rem .75rem;clear:both;font-weight:400;color:inherit;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:inherit;text-decoration:none;background-color:rgba(98,105,118,.04)}.dropdown-item.active,.dropdown-item:active{color:#206bc4;text-decoration:none;background-color:rgba(32,107,196,.04)}.dropdown-item.disabled,.dropdown-item:disabled{color:#64748b;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.25rem .75rem;margin-bottom:0;font-size:.765625rem;color:#475569;white-space:nowrap}.dropdown-item-text{display:block;padding:.5rem .75rem;color:inherit}.dropdown-menu-dark{color:#cbd5e1;background-color:#1e293b;border-color:rgba(98,105,118,.16)}.dropdown-menu-dark .dropdown-item{color:#cbd5e1}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#206bc4;background-color:rgba(32,107,196,.04)}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#64748b}.dropdown-menu-dark .dropdown-divider{border-color:rgba(98,105,118,.16)}.dropdown-menu-dark .dropdown-item-text{color:#cbd5e1}.dropdown-menu-dark .dropdown-header{color:#64748b}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem .75rem;color:inherit;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#1a569d;text-decoration:none}.nav-link.disabled{color:#475569;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #cbd5e1}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:4px;border-top-right-radius:4px}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e2e8f0 #e2e8f0 #cbd5e1;isolation:isolate}.nav-tabs .nav-link.disabled{color:#475569;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#334155;background-color:#f5f7fb;border-color:#cbd5e1 #cbd5e1 #f5f7fb}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:4px}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#206bc4;background-color:rgba(32,107,196,.04)}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.25rem;padding-bottom:.25rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.5rem;padding-bottom:.5rem;margin-right:1rem;font-size:1rem;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:0 0;font-size:1rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:4px;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--tblr-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.75rem;padding-left:.75rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.75rem;padding-left:.75rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.75rem;padding-left:.75rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.75rem;padding-left:.75rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.75rem;padding-left:.75rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.75rem;padding-left:.75rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:#1e293b}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:#1e293b}.navbar-light .navbar-nav .nav-link{color:rgba(30,41,59,.7)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(30,41,59,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:#1e293b}.navbar-light .navbar-toggler{color:rgba(30,41,59,.7);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2830, 41, 59, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(30,41,59,.7)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:#1e293b}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.7)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(98,105,118,.16);border-radius:4px}.card>.hr,.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:3px;border-top-right-radius:3px}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1.25rem}.card-title{margin-bottom:1.25rem}.card-subtitle{margin-top:-.625rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:1rem 1.25rem;margin-bottom:0;color:#626976;background-color:#fafbfc;border-bottom:1px solid rgba(98,105,118,.16)}.card-header:first-child{border-radius:3px 3px 0 0}.card-footer{padding:1rem 1.25rem;color:#626976;background-color:#fafbfc;border-top:1px solid rgba(98,105,118,.16)}.card-footer:last-child{border-radius:0 0 3px 3px}.card-header-tabs{margin-right:-.625rem;margin-bottom:-1rem;margin-left:-.625rem;border-bottom:0}.card-header-tabs .nav-link.active{background-color:#fff;border-bottom-color:#fff}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:3px}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:3px;border-top-right-radius:3px}.card-img,.card-img-bottom{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.card-group>.card{margin-bottom:1.5rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:.875rem;color:#1e293b;text-align:left;background-color:transparent;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:inherit;background-color:transparent;box-shadow:inset 0 -1px 0 rgba(98,105,118,.16)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='inherit'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1rem;height:1rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231e293b'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:rgba(98,105,118,.16);outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:transparent;border:1px solid rgba(98,105,118,.16)}.accordion-item:first-of-type{border-top-left-radius:4px;border-top-right-radius:4px}.accordion-item:first-of-type .accordion-button{border-top-left-radius:3px;border-top-right-radius:3px}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#626976;content:var(--tblr-breadcrumb-divider, "/")}.breadcrumb-item.active{color:inherit}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#626976;background-color:transparent;border:0 solid #cbd5e1;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#1a569d;text-decoration:none;background-color:#e2e8f0;border-color:#cbd5e1}.page-link:focus{z-index:3;color:#1a569d;background-color:#e2e8f0;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.page-item:not(:first-child) .page-link{margin-left:0}.page-item.active .page-link{z-index:3;color:#fff;background-color:#206bc4;border-color:#206bc4}.page-item.disabled .page-link{color:rgba(98,105,118,.5);pointer-events:none;background-color:transparent;border-color:#cbd5e1}.page-link{padding:.25rem .25rem}.page-item:first-child .page-link{border-top-left-radius:4px;border-bottom-left-radius:4px}.page-item:last-child .page-link{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.09375rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:8px;border-bottom-left-radius:8px}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:8px;border-bottom-right-radius:8px}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.765625rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:2px;border-bottom-left-radius:2px}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:2px;border-bottom-right-radius:2px}.badge{display:inline-block;padding:.25em .5em;font-size:85.71428571%;font-weight:500;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:4px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:4px}.alert-heading{color:inherit}.alert-link{font-weight:600}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:.5rem}}@keyframes progress-bar-stripes{0%{background-position-x:.5rem}}.progress{display:flex;height:.5rem;overflow:hidden;font-size:.65625rem;background-color:#e6e7e9;border-radius:4px}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#206bc4;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:.5rem .5rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:4px}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:inherit;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:inherit;text-decoration:none;background-color:rgba(98,105,118,.04)}.list-group-item-action:active{color:#1e293b;background-color:#e2e8f0}.list-group-item{position:relative;display:block;padding:1rem 1.25rem;color:#0f172a;background-color:inherit;border:1px solid #e6e7e9}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#475569;pointer-events:none;background-color:inherit}.list-group-item.active{z-index:2;color:inherit;background-color:rgba(32,107,196,.04);border-color:#e6e7e9}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#134076;background-color:#d2e1f3}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#134076;background-color:#bdcbdb}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#134076;border-color:#134076}.list-group-item-secondary{color:#3b3f47;background-color:#e0e1e4}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#3b3f47;background-color:#cacbcd}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#3b3f47;border-color:#3b3f47}.list-group-item-success{color:#1c6b29;background-color:#d5f0da}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#1c6b29;background-color:#c0d8c4}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1c6b29;border-color:#1c6b29}.list-group-item-info{color:#285c87;background-color:#d9ebf9}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#285c87;background-color:#c3d4e0}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#285c87;border-color:#285c87}.list-group-item-warning{color:#943e04;background-color:#fde1cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#943e04;background-color:#e4cbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#943e04;border-color:#943e04}.list-group-item-danger{color:#802222;background-color:#f7d7d7}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#802222;background-color:#dec2c2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#802222;border-color:#802222}.list-group-item-light{color:#969797;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#969797;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#969797;border-color:#969797}.list-group-item-dark{color:#121923;background-color:#d2d4d8}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#121923;background-color:#bdbfc2}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#121923;border-color:#121923}.list-group-item-muted{color:#3b3f47;background-color:#e0e1e4}.list-group-item-muted.list-group-item-action:focus,.list-group-item-muted.list-group-item-action:hover{color:#3b3f47;background-color:#cacbcd}.list-group-item-muted.list-group-item-action.active{color:#fff;background-color:#3b3f47;border-color:#3b3f47}.btn-close{box-sizing:content-box;width:.75rem;height:.75rem;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/.75rem auto no-repeat;border:0;border-radius:4px;opacity:.3}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid #e6e7e9;box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:4px}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:1.5rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#626976;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:3px;border-top-right-radius:3px}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-1rem)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fafbfc;background-clip:padding-box;border:1px solid transparent;border-radius:4px;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#1e293b}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.24}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e6e7e9;border-top-left-radius:3px;border-top-right-radius:3px}.modal-header .btn-close{padding:.75rem .75rem;margin:-.75rem -.75rem -.75rem auto}.modal-title{margin-bottom:0;line-height:1.4285714286}.modal-body{position:relative;flex:1 1 auto;padding:1.5rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:1.125rem;border-top:0 solid #e6e7e9;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.modal-footer>*{margin:.375rem}@media (min-width:576px){.modal-dialog{max-width:540px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:380px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:720px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.765625rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:4px}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.765625rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid #e6e7e9;border-radius:8px}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:#e6e7e9}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:#e6e7e9}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:#e6e7e9}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:#e6e7e9}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;background-color:#f0f0f0;border-bottom:1px solid #e6e7e9;border-top-left-radius:7px;border-top-right-radius:7px}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#1e293b}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:1.5rem;height:1.5rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='15 18 9 12 15 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='9 18 15 12 9 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:1.5rem;height:1.5rem;vertical-align:-.125em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:1px}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:1.5rem;height:1.5rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fafbfc;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#1e293b}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.24}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.5rem}.offcanvas-header .btn-close{padding:.75rem .75rem;margin-top:-.75rem;margin-right:-.75rem;margin-bottom:-.75rem}.offcanvas-title{margin-bottom:0;line-height:1.4285714286}.offcanvas-body{flex-grow:1;padding:1.5rem 1.5rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(98,105,118,.16);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(98,105,118,.16);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(98,105,118,.16);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(98,105,118,.16);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.2}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.1}}@keyframes placeholder-glow{50%{opacity:.1}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#206bc4}.link-primary:focus,.link-primary:hover{color:#1a569d}.link-secondary{color:#626976}.link-secondary:focus,.link-secondary:hover{color:#4e545e}.link-success{color:#2fb344}.link-success:focus,.link-success:hover{color:#268f36}.link-info{color:#4299e1}.link-info:focus,.link-info:hover{color:#357ab4}.link-warning{color:#f76707}.link-warning:focus,.link-warning:hover{color:#c65206}.link-danger{color:#d63939}.link-danger:focus,.link-danger:hover{color:#ab2e2e}.link-light{color:#fafbfc}.link-light:focus,.link-light:hover{color:#fbfcfd}.link-dark{color:#1e293b}.link-dark:focus,.link-dark:hover{color:#18212f}.link-muted{color:#626976}.link-muted:focus,.link-muted:hover{color:#4e545e}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--tblr-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--tblr-aspect-ratio:100%}.ratio-4x3{--tblr-aspect-ratio:75%}.ratio-3x4{--tblr-aspect-ratio:133.3333333333%}.ratio-16x9{--tblr-aspect-ratio:56.25%}.ratio-9x16{--tblr-aspect-ratio:177.7777777778%}.ratio-21x9{--tblr-aspect-ratio:42.8571428571%}.ratio-9x21{--tblr-aspect-ratio:233.3333333333%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.16}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid rgba(98,105,118,.16)!important}.border-wide{border:2px solid rgba(98,105,118,.16)!important}.border-0{border:0!important}.border-top{border-top:1px solid rgba(98,105,118,.16)!important}.border-top-wide{border-top:2px solid rgba(98,105,118,.16)!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid rgba(98,105,118,.16)!important}.border-end-wide{border-right:2px solid rgba(98,105,118,.16)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid rgba(98,105,118,.16)!important}.border-bottom-wide{border-bottom:2px solid rgba(98,105,118,.16)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid rgba(98,105,118,.16)!important}.border-start-wide{border-left:2px solid rgba(98,105,118,.16)!important}.border-start-0{border-left:0!important}.border-primary{border-color:#206bc4!important}.border-secondary{border-color:#626976!important}.border-success{border-color:#2fb344!important}.border-info{border-color:#4299e1!important}.border-warning{border-color:#f76707!important}.border-danger{border-color:#d63939!important}.border-light{border-color:#fafbfc!important}.border-dark{border-color:#1e293b!important}.border-muted{border-color:#626976!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-0{width:0!important}.w-1{width:.25rem!important}.w-2{width:.5rem!important}.w-3{width:1rem!important}.w-4{width:2rem!important}.w-5{width:4rem!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-0{height:0!important}.h-1{height:.25rem!important}.h-2{height:.5rem!important}.h-3{height:1rem!important}.h-4{height:2rem!important}.h-5{height:4rem!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:2rem!important}.gap-5{gap:4rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:2rem!important}.m-5{margin:4rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:2rem!important;margin-left:2rem!important}.mx-5{margin-right:4rem!important;margin-left:4rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:2rem!important}.mt-5{margin-top:4rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:2rem!important}.me-5{margin-right:4rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:2rem!important}.mb-5{margin-bottom:4rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:2rem!important}.ms-5{margin-left:4rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:2rem!important}.p-5{padding:4rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:2rem!important;padding-left:2rem!important}.px-5{padding-right:4rem!important;padding-left:4rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:2rem!important}.pt-5{padding-top:4rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:2rem!important}.pe-5{padding-right:4rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:2rem!important}.pb-5{padding-bottom:4rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:2rem!important}.ps-5{padding-left:4rem!important}.font-monospace{font-family:var(--tblr-font-monospace)!important}.fs-1{font-size:1.5rem!important}.fs-2{font-size:1.25rem!important}.fs-3{font-size:1rem!important}.fs-4{font-size:.875rem!important}.fs-5{font-size:.75rem!important}.fs-6{font-size:.625rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.1428571429!important}.lh-base{line-height:1.4285714286!important}.lh-lg{line-height:1.7142857143!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--tblr-text-opacity:1;color:rgba(var(--tblr-primary-rgb),var(--tblr-text-opacity))!important}.text-secondary{--tblr-text-opacity:1;color:rgba(var(--tblr-secondary-rgb),var(--tblr-text-opacity))!important}.text-success{--tblr-text-opacity:1;color:rgba(var(--tblr-success-rgb),var(--tblr-text-opacity))!important}.text-info{--tblr-text-opacity:1;color:rgba(var(--tblr-info-rgb),var(--tblr-text-opacity))!important}.text-warning{--tblr-text-opacity:1;color:rgba(var(--tblr-warning-rgb),var(--tblr-text-opacity))!important}.text-danger{--tblr-text-opacity:1;color:rgba(var(--tblr-danger-rgb),var(--tblr-text-opacity))!important}.text-light{--tblr-text-opacity:1;color:rgba(var(--tblr-light-rgb),var(--tblr-text-opacity))!important}.text-dark{--tblr-text-opacity:1;color:rgba(var(--tblr-dark-rgb),var(--tblr-text-opacity))!important}.text-muted{--tblr-text-opacity:1;color:#626976!important}.text-black{--tblr-text-opacity:1;color:rgba(var(--tblr-black-rgb),var(--tblr-text-opacity))!important}.text-white{--tblr-text-opacity:1;color:rgba(var(--tblr-white-rgb),var(--tblr-text-opacity))!important}.text-body{--tblr-text-opacity:1;color:rgba(var(--tblr-body-color-rgb),var(--tblr-text-opacity))!important}.text-black-50{--tblr-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--tblr-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--tblr-text-opacity:1;color:inherit!important}.text-opacity-25{--tblr-text-opacity:0.25}.text-opacity-50{--tblr-text-opacity:0.5}.text-opacity-75{--tblr-text-opacity:0.75}.text-opacity-100{--tblr-text-opacity:1}.bg-primary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-primary-rgb),var(--tblr-bg-opacity))!important}.bg-secondary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-secondary-rgb),var(--tblr-bg-opacity))!important}.bg-success{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-success-rgb),var(--tblr-bg-opacity))!important}.bg-info{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-info-rgb),var(--tblr-bg-opacity))!important}.bg-warning{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-warning-rgb),var(--tblr-bg-opacity))!important}.bg-danger{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-danger-rgb),var(--tblr-bg-opacity))!important}.bg-light{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-light-rgb),var(--tblr-bg-opacity))!important}.bg-dark{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dark-rgb),var(--tblr-bg-opacity))!important}.bg-muted{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-muted-rgb),var(--tblr-bg-opacity))!important}.bg-black{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-black-rgb),var(--tblr-bg-opacity))!important}.bg-white{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-white-rgb),var(--tblr-bg-opacity))!important}.bg-body{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-body-bg-rgb),var(--tblr-bg-opacity))!important}.bg-transparent{--tblr-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--tblr-bg-opacity:0.1}.bg-opacity-25{--tblr-bg-opacity:0.25}.bg-opacity-50{--tblr-bg-opacity:0.5}.bg-opacity-75{--tblr-bg-opacity:0.75}.bg-opacity-100{--tblr-bg-opacity:1}.bg-gradient{background-image:var(--tblr-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:4px!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:2px!important}.rounded-2{border-radius:4px!important}.rounded-3{border-radius:8px!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:100rem!important}.rounded-top{border-top-left-radius:4px!important;border-top-right-radius:4px!important}.rounded-end{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.rounded-bottom{border-bottom-right-radius:4px!important;border-bottom-left-radius:4px!important}.rounded-start{border-bottom-left-radius:4px!important;border-top-left-radius:4px!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.object-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-scale-down{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-none{-o-object-fit:none!important;object-fit:none!important}.tracking-tight{letter-spacing:-.05em!important}.tracking-normal{letter-spacing:0!important}.tracking-wide{letter-spacing:.05em!important}.cursor-auto{cursor:auto!important}.cursor-pointer{cursor:pointer!important}.cursor-move{cursor:move!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-zoom-in{cursor:zoom-in!important}.cursor-zoom-out{cursor:zoom-out!important}.cursor-default{cursor:default!important}.cursor-none{cursor:none!important}.cursor-help{cursor:help!important}.cursor-progress{cursor:progress!important}.cursor-wait{cursor:wait!important}.cursor-text{cursor:text!important}.cursor-v-text{cursor:vertical-text!important}.cursor-grab{cursor:-webkit-grab!important;cursor:grab!important}.cursor-grabbing{cursor:-webkit-grabbing!important;cursor:grabbing!important}.border-x{border-left:1px solid rgba(98,105,118,.16)!important;border-right:1px solid rgba(98,105,118,.16)!important}.border-x-wide{border-left:2px solid rgba(98,105,118,.16)!important;border-right:2px solid rgba(98,105,118,.16)!important}.border-x-0{border-left:0!important;border-right:0!important}.border-y{border-top:1px solid rgba(98,105,118,.16)!important;border-bottom:1px solid rgba(98,105,118,.16)!important}.border-y-wide{border-top:2px solid rgba(98,105,118,.16)!important;border-bottom:2px solid rgba(98,105,118,.16)!important}.border-y-0{border-top:0!important;border-bottom:0!important}.columns-2{-moz-columns:2!important;columns:2!important}.columns-3{-moz-columns:3!important;columns:3!important}.columns-4{-moz-columns:4!important;columns:4!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:2rem!important}.gap-sm-5{gap:4rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:2rem!important}.m-sm-5{margin:4rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:2rem!important;margin-left:2rem!important}.mx-sm-5{margin-right:4rem!important;margin-left:4rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-sm-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:2rem!important}.mt-sm-5{margin-top:4rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:2rem!important}.me-sm-5{margin-right:4rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:2rem!important}.mb-sm-5{margin-bottom:4rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:2rem!important}.ms-sm-5{margin-left:4rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:2rem!important}.p-sm-5{padding:4rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:2rem!important;padding-left:2rem!important}.px-sm-5{padding-right:4rem!important;padding-left:4rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-sm-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:2rem!important}.pt-sm-5{padding-top:4rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:2rem!important}.pe-sm-5{padding-right:4rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:2rem!important}.pb-sm-5{padding-bottom:4rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:2rem!important}.ps-sm-5{padding-left:4rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}.columns-sm-2{-moz-columns:2!important;columns:2!important}.columns-sm-3{-moz-columns:3!important;columns:3!important}.columns-sm-4{-moz-columns:4!important;columns:4!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:2rem!important}.gap-md-5{gap:4rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:2rem!important}.m-md-5{margin:4rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:2rem!important;margin-left:2rem!important}.mx-md-5{margin-right:4rem!important;margin-left:4rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-md-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:2rem!important}.mt-md-5{margin-top:4rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:2rem!important}.me-md-5{margin-right:4rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:2rem!important}.mb-md-5{margin-bottom:4rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:2rem!important}.ms-md-5{margin-left:4rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:2rem!important}.p-md-5{padding:4rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:2rem!important;padding-left:2rem!important}.px-md-5{padding-right:4rem!important;padding-left:4rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-md-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:2rem!important}.pt-md-5{padding-top:4rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:2rem!important}.pe-md-5{padding-right:4rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:2rem!important}.pb-md-5{padding-bottom:4rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:2rem!important}.ps-md-5{padding-left:4rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}.columns-md-2{-moz-columns:2!important;columns:2!important}.columns-md-3{-moz-columns:3!important;columns:3!important}.columns-md-4{-moz-columns:4!important;columns:4!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:2rem!important}.gap-lg-5{gap:4rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:2rem!important}.m-lg-5{margin:4rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:2rem!important;margin-left:2rem!important}.mx-lg-5{margin-right:4rem!important;margin-left:4rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-lg-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:2rem!important}.mt-lg-5{margin-top:4rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:2rem!important}.me-lg-5{margin-right:4rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:2rem!important}.mb-lg-5{margin-bottom:4rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:2rem!important}.ms-lg-5{margin-left:4rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:2rem!important}.p-lg-5{padding:4rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:2rem!important;padding-left:2rem!important}.px-lg-5{padding-right:4rem!important;padding-left:4rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-lg-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:2rem!important}.pt-lg-5{padding-top:4rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:2rem!important}.pe-lg-5{padding-right:4rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:2rem!important}.pb-lg-5{padding-bottom:4rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:2rem!important}.ps-lg-5{padding-left:4rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}.columns-lg-2{-moz-columns:2!important;columns:2!important}.columns-lg-3{-moz-columns:3!important;columns:3!important}.columns-lg-4{-moz-columns:4!important;columns:4!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:2rem!important}.gap-xl-5{gap:4rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:2rem!important}.m-xl-5{margin:4rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:2rem!important;margin-left:2rem!important}.mx-xl-5{margin-right:4rem!important;margin-left:4rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-xl-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:2rem!important}.mt-xl-5{margin-top:4rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:2rem!important}.me-xl-5{margin-right:4rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:2rem!important}.mb-xl-5{margin-bottom:4rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:2rem!important}.ms-xl-5{margin-left:4rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:2rem!important}.p-xl-5{padding:4rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:2rem!important;padding-left:2rem!important}.px-xl-5{padding-right:4rem!important;padding-left:4rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-xl-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:2rem!important}.pt-xl-5{padding-top:4rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:2rem!important}.pe-xl-5{padding-right:4rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:2rem!important}.pb-xl-5{padding-bottom:4rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:2rem!important}.ps-xl-5{padding-left:4rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}.columns-xl-2{-moz-columns:2!important;columns:2!important}.columns-xl-3{-moz-columns:3!important;columns:3!important}.columns-xl-4{-moz-columns:4!important;columns:4!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:2rem!important}.gap-xxl-5{gap:4rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:2rem!important}.m-xxl-5{margin:4rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:2rem!important;margin-left:2rem!important}.mx-xxl-5{margin-right:4rem!important;margin-left:4rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-xxl-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:2rem!important}.mt-xxl-5{margin-top:4rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:2rem!important}.me-xxl-5{margin-right:4rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:2rem!important}.mb-xxl-5{margin-bottom:4rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:2rem!important}.ms-xxl-5{margin-left:4rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:2rem!important}.p-xxl-5{padding:4rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:2rem!important;padding-left:2rem!important}.px-xxl-5{padding-right:4rem!important;padding-left:4rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-xxl-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:2rem!important}.pt-xxl-5{padding-top:4rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:2rem!important}.pe-xxl-5{padding-right:4rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:2rem!important}.pb-xxl-5{padding-bottom:4rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:2rem!important}.ps-xxl-5{padding-left:4rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}.columns-xxl-2{-moz-columns:2!important;columns:2!important}.columns-xxl-3{-moz-columns:3!important;columns:3!important}.columns-xxl-4{-moz-columns:4!important;columns:4!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root{font-size:16px;height:100%;--tblr-card-bg:#ffffff;--tblr-card-bg-rgb:255,255,255;--tblr-border-color:#e6e7e9;--tblr-border-color-rgb:230,231,233;--tblr-border-color-light:#f2f3f4;--tblr-border-color-light-rgb:242,243,244}body{overflow-y:scroll;letter-spacing:0;touch-action:manipulation;text-rendering:optimizeLegibility;font-feature-settings:"liga" 0;position:relative;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media print{body{background:0 0}}::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){::-webkit-scrollbar{-webkit-transition:none;transition:none}}::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}::-webkit-scrollbar-corner{background:0 0}.layout-fluid .container,.layout-fluid [class*=" container-"],.layout-fluid [class^=container-]{max-width:100%}.layout-boxed{--tblr-theme-boxed-border-radius:0;--tblr-theme-boxed-width:1320px}@media (min-width:768px){.layout-boxed{background:#1e293b linear-gradient(to right,rgba(255,255,255,.1),transparent) fixed;padding:1rem;--tblr-theme-boxed-border-radius:4px}}.layout-boxed .page{margin:0 auto;max-width:var(--tblr-theme-boxed-width);border-radius:var(--tblr-theme-boxed-border-radius);color:#1e293b}@media (min-width:768px){.layout-boxed .page{border:1px solid var(--tblr-border-color);background:var(--tblr-body-bg)}}.layout-boxed .page>.navbar:first-child{border-top-left-radius:var(--tblr-theme-boxed-border-radius);border-top-right-radius:var(--tblr-theme-boxed-border-radius)}.navbar{align-items:stretch;min-height:3.5rem;background:0 0;color:rgba(30,41,59,.7)}.navbar-collapse .navbar{flex-grow:1}.navbar.collapsing{min-height:0}.navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar::-webkit-scrollbar-corner{background:0 0}.navbar .text-muted{color:rgba(30,41,59,.7)!important}.navbar .navbar-brand{color:#1e293b}.navbar .navbar-brand:focus,.navbar .navbar-brand:hover{color:#1e293b;opacity:.8}.navbar .navbar-nav .nav-link{color:rgba(30,41,59,.7)}.navbar .navbar-nav .nav-link:focus,.navbar .navbar-nav .nav-link:hover{color:#1e293b}.navbar .navbar-nav .nav-link.disabled{color:rgba(30,41,59,.3)}.navbar .navbar-nav .active>.nav-link,.navbar .navbar-nav .nav-link.active,.navbar .navbar-nav .nav-link.show,.navbar .navbar-nav .show>.nav-link{color:#1e293b}.navbar .navbar-toggler{color:#1e293b;border-color:transparent}.navbar .navbar-text{color:rgba(30,41,59,.7)}.navbar .navbar-text a,.navbar .navbar-text a:focus,.navbar .navbar-text a:hover{color:rgba(30,41,59,.7)}@media not print{.theme-dark .navbar{background:#1e293b;color:rgba(255,255,255,.7)}.theme-dark .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.theme-dark .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.theme-dark .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark .navbar .text-muted{color:rgba(255,255,255,.7)!important}.theme-dark .navbar .navbar-brand{color:#fff}.theme-dark .navbar .navbar-brand:focus,.theme-dark .navbar .navbar-brand:hover{color:#fff;opacity:.8}.theme-dark .navbar .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.theme-dark .navbar .navbar-nav .nav-link:focus,.theme-dark .navbar .navbar-nav .nav-link:hover{color:#fff}.theme-dark .navbar .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.theme-dark .navbar .navbar-nav .active>.nav-link,.theme-dark .navbar .navbar-nav .nav-link.active,.theme-dark .navbar .navbar-nav .nav-link.show,.theme-dark .navbar .navbar-nav .show>.nav-link{color:#fff}.theme-dark .navbar .navbar-toggler{color:#fff;border-color:transparent}.theme-dark .navbar .navbar-text{color:rgba(255,255,255,.7)}.theme-dark .navbar .navbar-text a,.theme-dark .navbar .navbar-text a:focus,.theme-dark .navbar .navbar-text a:hover{color:rgba(255,255,255,.7)}.theme-dark .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.theme-dark .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.theme-dark .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark .navbar .input-icon-addon{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.theme-dark .navbar .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::placeholder{color:rgba(250,251,252,.64)}}@media not print{@media (prefers-color-scheme:dark){.theme-dark-auto .navbar{background:#1e293b;color:rgba(255,255,255,.7)}.theme-dark-auto .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}.theme-dark-auto .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark-auto .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark-auto .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark-auto .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark-auto .navbar .text-muted{color:rgba(255,255,255,.7)!important}.theme-dark-auto .navbar .navbar-brand{color:#fff}.theme-dark-auto .navbar .navbar-brand:focus,.theme-dark-auto .navbar .navbar-brand:hover{color:#fff;opacity:.8}.theme-dark-auto .navbar .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar .navbar-nav .nav-link:focus,.theme-dark-auto .navbar .navbar-nav .nav-link:hover{color:#fff}.theme-dark-auto .navbar .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.theme-dark-auto .navbar .navbar-nav .active>.nav-link,.theme-dark-auto .navbar .navbar-nav .nav-link.active,.theme-dark-auto .navbar .navbar-nav .nav-link.show,.theme-dark-auto .navbar .navbar-nav .show>.nav-link{color:#fff}.theme-dark-auto .navbar .navbar-toggler{color:#fff;border-color:transparent}.theme-dark-auto .navbar .navbar-text{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar .navbar-text a,.theme-dark-auto .navbar .navbar-text a:focus,.theme-dark-auto .navbar .navbar-text a:hover{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}.theme-dark-auto .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark-auto .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark-auto .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark-auto .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark-auto .navbar .input-icon-addon{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.theme-dark-auto .navbar .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::placeholder{color:rgba(250,251,252,.64)}}}@media (prefers-color-scheme:dark) and (prefers-reduced-motion:reduce){.theme-dark-auto .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}@media (prefers-color-scheme:dark) and (prefers-reduced-motion:reduce){.theme-dark-auto .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar .dropdown-menu{position:absolute;z-index:1030}.navbar .navbar-nav{min-height:3rem}.navbar .navbar-nav .nav-link{position:relative;min-width:2rem;min-height:2rem;justify-content:center;border-radius:4px}.navbar .navbar-nav .nav-link .badge{position:absolute;top:.375rem;right:.375rem;transform:translate(50%,-50%)}.navbar-nav{margin:0;padding:0}@media (max-width:575.98px){.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-sm .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:576px){.navbar-expand-sm .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-sm .navbar-dark .nav-item.active .nav-link,.navbar-expand-sm.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-sm .navbar-light .nav-item.active,.navbar-expand-sm.navbar-light .nav-item.active{position:relative}.navbar-expand-sm .navbar-light .nav-item.active:after,.navbar-expand-sm.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-sm .navbar-light.navbar-vertical,.navbar-expand-sm.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-sm .navbar-light.navbar-vertical.navbar-right,.navbar-expand-sm.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-sm.navbar-vertical~.navbar,.navbar-expand-sm.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-sm.navbar-vertical.navbar-right~.navbar,.navbar-expand-sm.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}@media (max-width:767.98px){.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-md .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:768px){.navbar-expand-md .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-md .navbar-dark .nav-item.active .nav-link,.navbar-expand-md.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-md .navbar-light .nav-item.active,.navbar-expand-md.navbar-light .nav-item.active{position:relative}.navbar-expand-md .navbar-light .nav-item.active:after,.navbar-expand-md.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-md .navbar-light.navbar-vertical,.navbar-expand-md.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-md .navbar-light.navbar-vertical.navbar-right,.navbar-expand-md.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-md.navbar-vertical~.navbar,.navbar-expand-md.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-md.navbar-vertical.navbar-right~.navbar,.navbar-expand-md.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}@media (max-width:991.98px){.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-lg .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:992px){.navbar-expand-lg .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-lg .navbar-dark .nav-item.active .nav-link,.navbar-expand-lg.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-lg .navbar-light .nav-item.active,.navbar-expand-lg.navbar-light .nav-item.active{position:relative}.navbar-expand-lg .navbar-light .nav-item.active:after,.navbar-expand-lg.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-lg .navbar-light.navbar-vertical,.navbar-expand-lg.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-lg .navbar-light.navbar-vertical.navbar-right,.navbar-expand-lg.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-lg.navbar-vertical~.navbar,.navbar-expand-lg.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-lg.navbar-vertical.navbar-right~.navbar,.navbar-expand-lg.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}@media (max-width:1199.98px){.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-xl .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:1200px){.navbar-expand-xl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xl .navbar-dark .nav-item.active .nav-link,.navbar-expand-xl.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-xl .navbar-light .nav-item.active,.navbar-expand-xl.navbar-light .nav-item.active{position:relative}.navbar-expand-xl .navbar-light .nav-item.active:after,.navbar-expand-xl.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-xl .navbar-light.navbar-vertical,.navbar-expand-xl.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xl .navbar-light.navbar-vertical.navbar-right,.navbar-expand-xl.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xl.navbar-vertical~.navbar,.navbar-expand-xl.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-xl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xl.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}@media (max-width:1399.98px){.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:1400px){.navbar-expand-xxl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xxl .navbar-dark .nav-item.active .nav-link,.navbar-expand-xxl.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-xxl .navbar-light .nav-item.active,.navbar-expand-xxl.navbar-light .nav-item.active{position:relative}.navbar-expand-xxl .navbar-light .nav-item.active:after,.navbar-expand-xxl.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-xxl .navbar-light.navbar-vertical,.navbar-expand-xxl.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xxl .navbar-light.navbar-vertical.navbar-right,.navbar-expand-xxl.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xxl.navbar-vertical~.navbar,.navbar-expand-xxl.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-xxl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xxl.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}.navbar-expand .navbar-collapse{flex-direction:column}.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}.navbar-expand .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand .navbar-dark .nav-item.active .nav-link,.navbar-expand.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand .navbar-light .nav-item.active,.navbar-expand.navbar-light .nav-item.active{position:relative}.navbar-expand .navbar-light .nav-item.active:after,.navbar-expand.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand .navbar-light.navbar-vertical,.navbar-expand.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand .navbar-light.navbar-vertical.navbar-right,.navbar-expand.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand.navbar-vertical~.navbar,.navbar-expand.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand.navbar-vertical.navbar-right~.navbar,.navbar-expand.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}.navbar-brand{display:inline-flex;align-items:center;font-weight:600;margin:0}.navbar-brand-image{display:block;height:2rem;width:auto}.navbar-toggler{border:0;width:2rem;height:2rem;position:relative;display:flex;align-items:center;justify-content:center}.navbar-toggler-icon{height:2px;width:1.25em;background:currentColor;border-radius:10px;transition:top .2s .2s,bottom .2s .2s,transform .2s,opacity 0s .2s;position:relative}@media (prefers-reduced-motion:reduce){.navbar-toggler-icon{transition:none}}.navbar-toggler-icon:after,.navbar-toggler-icon:before{content:"";display:block;height:inherit;width:inherit;border-radius:inherit;background:inherit;position:absolute;left:0;transition:inherit}@media (prefers-reduced-motion:reduce){.navbar-toggler-icon:after,.navbar-toggler-icon:before{transition:none}}.navbar-toggler-icon:before{top:-.45em}.navbar-toggler-icon:after{bottom:-.45em}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transform:rotate(45deg);transition:top .3s,bottom .3s,transform .3s .3s,opacity 0s .3s}@media (prefers-reduced-motion:reduce){.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transition:none}}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:before{top:0;transform:rotate(-90deg)}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:after{bottom:0;opacity:0}.navbar-light{box-shadow:inset 0 -1px 0 0 rgba(98,105,118,.16);background-color:#fff}.navbar-dark{background:#1e293b;color:rgba(255,255,255,.7)}.navbar-dark::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar-dark::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar-dark::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar-dark::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar-dark:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar-dark::-webkit-scrollbar-corner{background:0 0}.navbar-dark .text-muted{color:rgba(255,255,255,.7)!important}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff;opacity:.8}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#fff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:#fff;border-color:transparent}.navbar-dark .navbar-text{color:rgba(255,255,255,.7)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:rgba(255,255,255,.7)}.navbar-dark::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar-dark::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar-dark::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar-dark::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar-dark:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar-dark::-webkit-scrollbar-corner{background:0 0}.navbar-dark .input-icon-addon{color:rgba(250,251,252,.64)}.navbar-dark .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.navbar-dark .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::placeholder{color:rgba(250,251,252,.64)}.navbar-nav{align-items:stretch}.navbar-nav .nav-item{display:flex;flex-direction:column;justify-content:center}.navbar-side{margin:0;display:flex;flex-direction:row;align-items:center;justify-content:space-around}@media (min-width:576px){.navbar-vertical.navbar-expand-sm{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:576px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-sm{transition:none}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.navbar-right{left:auto;right:0}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-collapse{align-items:stretch}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-sm .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm~.page{padding-left:15rem}.navbar-vertical.navbar-expand-sm~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:768px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-md{transition:none}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.navbar-right{left:auto;right:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-collapse{align-items:stretch}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-md .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:768px){.navbar-vertical.navbar-expand-md~.page{padding-left:15rem}.navbar-vertical.navbar-expand-md~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:992px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-lg{transition:none}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.navbar-right{left:auto;right:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-collapse{align-items:stretch}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-lg .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg~.page{padding-left:15rem}.navbar-vertical.navbar-expand-lg~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:1200px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-xl{transition:none}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.navbar-right{left:auto;right:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-collapse{align-items:stretch}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl~.page{padding-left:15rem}.navbar-vertical.navbar-expand-xl~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:1400px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-xxl{transition:none}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl.navbar-right{left:auto;right:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-collapse{align-items:stretch}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xxl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl~.page{padding-left:15rem}.navbar-vertical.navbar-expand-xxl~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}.navbar-vertical.navbar-expand{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}@media (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand{transition:none}}.navbar-vertical.navbar-expand.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}.navbar-vertical.navbar-expand~.page{padding-left:15rem}.navbar-vertical.navbar-expand~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand.navbar-right~.page{padding-left:0;padding-right:15rem}.navbar-vertical.navbar-expand .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav{margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:3.25rem;color:inherit}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4.75rem}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:6.25rem}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}.navbar-overlap:after{content:"";height:9rem;position:absolute;top:100%;left:0;right:0;background:inherit;z-index:-1;box-shadow:inherit}.page{display:flex;flex-direction:column;position:relative;min-height:100vh}.page-center{justify-content:center}.page-wrapper{flex:1;display:flex;flex-direction:column}@media print{.page-wrapper{margin:0!important}}.page-wrapper-full .page-body:first-child{margin:0;border-top:0}.page-body{margin-top:1.25rem;margin-bottom:1.25rem}.page-body-card{background:#fff;border-top:1px solid rgba(98,105,118,.16);padding:1.25rem 0;margin-bottom:0;flex:1}.page-body~.page-body-card{margin-top:0}.page-cover{background:no-repeat center/cover;min-height:9rem}@media (min-width:768px){.page-cover{min-height:12rem}}@media (min-width:992px){.page-cover{min-height:15rem}}.page-cover-overlay{position:relative}.page-cover-overlay:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%)}.page-header{display:flex;flex-wrap:wrap;min-height:2.25rem;flex-direction:column;justify-content:center}.page-wrapper .page-header{margin:1.25rem 0 0}.page-header-border{border-bottom:1px solid rgba(98,105,118,.16);padding-bottom:1.25rem}.page-pretitle{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976}.page-title{margin:0;font-size:1.25rem;line-height:1.4;font-weight:600;color:inherit;display:flex;align-items:center}.page-title svg{width:1.5rem;height:1.5rem;margin-right:.25rem}.page-title-lg{font-size:1.5rem;line-height:1.3333333333}.page-subtitle{margin-top:.25rem;color:#626976}.page-tabs{margin-top:.5rem;position:relative}.page-header-tabs .nav-bordered{border:0}.page-header-tabs+.page-body-card{margin-top:0}.footer{border-top:1px solid #e6e7e9;background-color:#fff;padding:2rem 0;color:#626976;margin-top:auto}.footer-transparent{background-color:transparent;border-top:0}/*! +@charset "UTF-8";:root{--tblr-blue:#206bc4;--tblr-indigo:#4263eb;--tblr-purple:#ae3ec9;--tblr-pink:#d6336c;--tblr-red:#d63939;--tblr-orange:#f76707;--tblr-yellow:#f59f00;--tblr-green:#2fb344;--tblr-teal:#0ca678;--tblr-cyan:#17a2b8;--tblr-black:#000000;--tblr-white:#ffffff;--tblr-gray:#475569;--tblr-gray-dark:#1e293b;--tblr-gray-100:#f1f5f9;--tblr-gray-200:#e2e8f0;--tblr-gray-300:#cbd5e1;--tblr-gray-400:#94a3b8;--tblr-gray-500:#64748b;--tblr-gray-600:#475569;--tblr-gray-700:#334155;--tblr-gray-800:#1e293b;--tblr-gray-900:#0f172a;--tblr-primary:#206bc4;--tblr-secondary:#626976;--tblr-success:#2fb344;--tblr-info:#4299e1;--tblr-warning:#f76707;--tblr-danger:#d63939;--tblr-light:#fafbfc;--tblr-dark:#1e293b;--tblr-muted:#626976;--tblr-blue:#206bc4;--tblr-azure:#4299e1;--tblr-indigo:#4263eb;--tblr-purple:#ae3ec9;--tblr-pink:#d6336c;--tblr-red:#d63939;--tblr-orange:#f76707;--tblr-yellow:#f59f00;--tblr-lime:#74b816;--tblr-green:#2fb344;--tblr-teal:#0ca678;--tblr-cyan:#17a2b8;--tblr-facebook:#3b5998;--tblr-twitter:#1da1f2;--tblr-linkedin:#0a66c2;--tblr-google:#dc4e41;--tblr-youtube:#ff0000;--tblr-vimeo:#1ab7ea;--tblr-dribbble:#ea4c89;--tblr-github:#181717;--tblr-instagram:#e4405f;--tblr-pinterest:#bd081c;--tblr-vk:#6383a8;--tblr-rss:#ffa500;--tblr-flickr:#0063dc;--tblr-bitbucket:#0052cc;--tblr-tabler:#206bc4;--tblr-primary-rgb:32,107,196;--tblr-secondary-rgb:98,105,118;--tblr-success-rgb:47,179,68;--tblr-info-rgb:66,153,225;--tblr-warning-rgb:247,103,7;--tblr-danger-rgb:214,57,57;--tblr-light-rgb:250,251,252;--tblr-dark-rgb:30,41,59;--tblr-muted-rgb:98,105,118;--tblr-blue-rgb:32,107,196;--tblr-azure-rgb:66,153,225;--tblr-indigo-rgb:66,99,235;--tblr-purple-rgb:174,62,201;--tblr-pink-rgb:214,51,108;--tblr-red-rgb:214,57,57;--tblr-orange-rgb:247,103,7;--tblr-yellow-rgb:245,159,0;--tblr-lime-rgb:116,184,22;--tblr-green-rgb:47,179,68;--tblr-teal-rgb:12,166,120;--tblr-cyan-rgb:23,162,184;--tblr-facebook-rgb:59,89,152;--tblr-twitter-rgb:29,161,242;--tblr-linkedin-rgb:10,102,194;--tblr-google-rgb:220,78,65;--tblr-youtube-rgb:255,0,0;--tblr-vimeo-rgb:26,183,234;--tblr-dribbble-rgb:234,76,137;--tblr-github-rgb:24,23,23;--tblr-instagram-rgb:228,64,95;--tblr-pinterest-rgb:189,8,28;--tblr-vk-rgb:99,131,168;--tblr-rss-rgb:255,165,0;--tblr-flickr-rgb:0,99,220;--tblr-bitbucket-rgb:0,82,204;--tblr-tabler-rgb:32,107,196;--tblr-white-rgb:255,255,255;--tblr-black-rgb:0,0,0;--tblr-body-color-rgb:30,41,59;--tblr-body-bg-rgb:245,247,251;--tblr-font-sans-serif:-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;--tblr-font-monospace:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--tblr-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--tblr-body-font-family:var(--tblr-font-sans-serif);--tblr-body-font-size:0.875rem;--tblr-body-font-weight:400;--tblr-body-line-height:1.4285714286;--tblr-body-color:#1e293b;--tblr-body-bg:#f5f7fb;--tblr-border-width:1px;--tblr-border-style:solid;--tblr-border-color:#e6e7e9;--tblr-border-color-translucent:rgba(0, 0, 0, 0.175);--tblr-border-radius:4px;--tblr-border-radius-sm:2px;--tblr-border-radius-lg:8px;--tblr-border-radius-xl:1rem;--tblr-border-radius-2xl:2rem;--tblr-border-radius-pill:100rem;--tblr-link-color:#206bc4;--tblr-link-hover-color:#1a569d;--tblr-code-color:#4b5462;--tblr-highlight-bg:#fdeccc}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--tblr-body-font-family);font-size:var(--tblr-body-font-size);font-weight:var(--tblr-body-font-weight);line-height:var(--tblr-body-line-height);color:var(--tblr-body-color);text-align:var(--tblr-body-text-align);background-color:var(--tblr-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.hr,hr{margin:2rem 0;color:inherit;border:0;border-top:1px solid;opacity:.16}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:600;line-height:1.2}.h1,h1{font-size:1.5rem}.h2,h2{font-size:1.25rem}.h3,h3{font-size:1rem}.h4,h4{font-size:.875rem}.h5,h5{font-size:.75rem}.h6,h6{font-size:.625rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:85.71428571%}.mark,mark{padding:.1875em;background-color:var(--tblr-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--tblr-link-color);text-decoration:none}a:hover{color:var(--tblr-link-hover-color);text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--tblr-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:85.71428571%}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:85.71428571%;color:var(--tblr-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:85.71428571%;color:var(--tblr-body-bg);background-color:var(--tblr-body-color);border-radius:2px}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#626976;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:.875rem;font-weight:400}.display-1{font-size:5rem;font-weight:300;line-height:1.2}.display-2{font-size:4.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}.display-5{font-size:3rem;font-weight:300;line-height:1.2}.display-6{font-size:2rem;font-weight:300;line-height:1.2}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:85.71428571%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:.875rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:85.71428571%;color:#475569}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#f5f7fb;border:1px solid var(--tblr-border-color);border-radius:4px;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:85.71428571%;color:#475569}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--tblr-gutter-x:1.5rem;--tblr-gutter-y:0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--tblr-gutter-x:1rem;--tblr-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--tblr-gutter-y));margin-right:calc(-.5 * var(--tblr-gutter-x));margin-left:calc(-.5 * var(--tblr-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-top:var(--tblr-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--tblr-gutter-x:0}.g-0,.gy-0{--tblr-gutter-y:0}.g-1,.gx-1{--tblr-gutter-x:0.25rem}.g-1,.gy-1{--tblr-gutter-y:0.25rem}.g-2,.gx-2{--tblr-gutter-x:0.5rem}.g-2,.gy-2{--tblr-gutter-y:0.5rem}.g-3,.gx-3{--tblr-gutter-x:1rem}.g-3,.gy-3{--tblr-gutter-y:1rem}.g-4,.gx-4{--tblr-gutter-x:2rem}.g-4,.gy-4{--tblr-gutter-y:2rem}.g-5,.gx-5{--tblr-gutter-x:4rem}.g-5,.gy-5{--tblr-gutter-y:4rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--tblr-gutter-x:0}.g-sm-0,.gy-sm-0{--tblr-gutter-y:0}.g-sm-1,.gx-sm-1{--tblr-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--tblr-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--tblr-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--tblr-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--tblr-gutter-x:1rem}.g-sm-3,.gy-sm-3{--tblr-gutter-y:1rem}.g-sm-4,.gx-sm-4{--tblr-gutter-x:2rem}.g-sm-4,.gy-sm-4{--tblr-gutter-y:2rem}.g-sm-5,.gx-sm-5{--tblr-gutter-x:4rem}.g-sm-5,.gy-sm-5{--tblr-gutter-y:4rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--tblr-gutter-x:0}.g-md-0,.gy-md-0{--tblr-gutter-y:0}.g-md-1,.gx-md-1{--tblr-gutter-x:0.25rem}.g-md-1,.gy-md-1{--tblr-gutter-y:0.25rem}.g-md-2,.gx-md-2{--tblr-gutter-x:0.5rem}.g-md-2,.gy-md-2{--tblr-gutter-y:0.5rem}.g-md-3,.gx-md-3{--tblr-gutter-x:1rem}.g-md-3,.gy-md-3{--tblr-gutter-y:1rem}.g-md-4,.gx-md-4{--tblr-gutter-x:2rem}.g-md-4,.gy-md-4{--tblr-gutter-y:2rem}.g-md-5,.gx-md-5{--tblr-gutter-x:4rem}.g-md-5,.gy-md-5{--tblr-gutter-y:4rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--tblr-gutter-x:0}.g-lg-0,.gy-lg-0{--tblr-gutter-y:0}.g-lg-1,.gx-lg-1{--tblr-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--tblr-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--tblr-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--tblr-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--tblr-gutter-x:1rem}.g-lg-3,.gy-lg-3{--tblr-gutter-y:1rem}.g-lg-4,.gx-lg-4{--tblr-gutter-x:2rem}.g-lg-4,.gy-lg-4{--tblr-gutter-y:2rem}.g-lg-5,.gx-lg-5{--tblr-gutter-x:4rem}.g-lg-5,.gy-lg-5{--tblr-gutter-y:4rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--tblr-gutter-x:0}.g-xl-0,.gy-xl-0{--tblr-gutter-y:0}.g-xl-1,.gx-xl-1{--tblr-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--tblr-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--tblr-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--tblr-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--tblr-gutter-x:1rem}.g-xl-3,.gy-xl-3{--tblr-gutter-y:1rem}.g-xl-4,.gx-xl-4{--tblr-gutter-x:2rem}.g-xl-4,.gy-xl-4{--tblr-gutter-y:2rem}.g-xl-5,.gx-xl-5{--tblr-gutter-x:4rem}.g-xl-5,.gy-xl-5{--tblr-gutter-y:4rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--tblr-gutter-x:0}.g-xxl-0,.gy-xxl-0{--tblr-gutter-y:0}.g-xxl-1,.gx-xxl-1{--tblr-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--tblr-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--tblr-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--tblr-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--tblr-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--tblr-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--tblr-gutter-x:2rem}.g-xxl-4,.gy-xxl-4{--tblr-gutter-y:2rem}.g-xxl-5,.gx-xxl-5{--tblr-gutter-x:4rem}.g-xxl-5,.gy-xxl-5{--tblr-gutter-y:4rem}}.markdown>table,.table{--tblr-table-color:inherit;--tblr-table-bg:transparent;--tblr-table-border-color:rgba(98, 105, 118, 0.16);--tblr-table-accent-bg:transparent;--tblr-table-striped-color:inherit;--tblr-table-striped-bg:var(--tblr-border-color-light);--tblr-table-active-color:inherit;--tblr-table-active-bg:rgba(0, 0, 0, 0.1);--tblr-table-hover-color:inherit;--tblr-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:var(--tblr-table-color);vertical-align:top;border-color:var(--tblr-table-border-color)}.markdown>table>:not(caption)>*>*,.table>:not(caption)>*>*{padding:.75rem .75rem;background-color:var(--tblr-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--tblr-table-accent-bg)}.markdown>table>tbody,.table>tbody{vertical-align:inherit}.markdown>table>thead,.table>thead{vertical-align:bottom}.table-group-divider{border-top:2px solid rgba(98,105,118,.16)}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.markdown>table>:not(caption)>*,.table-bordered>:not(caption)>*{border-width:1px 0}.markdown>table>:not(caption)>*>*,.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(even)>*{--tblr-table-accent-bg:var(--tblr-table-striped-bg);color:var(--tblr-table-striped-color)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--tblr-table-accent-bg:var(--tblr-table-striped-bg);color:var(--tblr-table-striped-color)}.table-active{--tblr-table-accent-bg:var(--tblr-table-active-bg);color:var(--tblr-table-active-color)}.table-hover>tbody>tr:hover>*{--tblr-table-accent-bg:var(--tblr-table-hover-bg);color:var(--tblr-table-hover-color)}.table-primary{--tblr-table-color:#1e293b;--tblr-table-bg:#d2e1f3;--tblr-table-border-color:#c0cfe1;--tblr-table-striped-bg:#c9d8ea;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c0cfe1;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#c5d3e5;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-secondary{--tblr-table-color:#1e293b;--tblr-table-bg:#e0e1e4;--tblr-table-border-color:#cdcfd3;--tblr-table-striped-bg:#d6d8dc;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#cdcfd3;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#d1d3d7;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-success{--tblr-table-color:#1e293b;--tblr-table-bg:#d5f0da;--tblr-table-border-color:#c3dcca;--tblr-table-striped-bg:#cce6d2;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c3dcca;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#c7e1ce;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-info{--tblr-table-color:#1e293b;--tblr-table-bg:#d9ebf9;--tblr-table-border-color:#c6d8e6;--tblr-table-striped-bg:#d0e1f0;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c6d8e6;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#cbdceb;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-warning{--tblr-table-color:#1e293b;--tblr-table-bg:#fde1cd;--tblr-table-border-color:#e7cfbe;--tblr-table-striped-bg:#f2d8c6;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e7cfbe;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#ecd3c2;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-danger{--tblr-table-color:#1e293b;--tblr-table-bg:#f7d7d7;--tblr-table-border-color:#e1c6c7;--tblr-table-striped-bg:#eccecf;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e1c6c7;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#e7cacb;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-light{--tblr-table-color:#1e293b;--tblr-table-bg:#fafbfc;--tblr-table-border-color:#e4e6e9;--tblr-table-striped-bg:#eff1f2;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e4e6e9;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#eaebee;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-dark{--tblr-table-color:#fafbfc;--tblr-table-bg:#1e293b;--tblr-table-border-color:#343e4e;--tblr-table-striped-bg:#293445;--tblr-table-striped-color:#fafbfc;--tblr-table-active-bg:#343e4e;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#2f3949;--tblr-table-hover-color:#fafbfc;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem;font-size:.875rem;font-weight:500}.col-form-label{padding-top:calc(.4375rem + 1px);padding-bottom:calc(.4375rem + 1px);margin-bottom:0;font-size:inherit;font-weight:500;line-height:1.4285714286}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.125rem + 1px);padding-bottom:calc(.125rem + 1px);font-size:.75rem}.form-text{margin-top:.25rem;font-size:85.71428571%;color:#626976}.form-control{display:block;width:100%;padding:.4375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:inherit;background-color:#fff;background-clip:padding-box;border:1px solid #d9dbde;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:4px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:inherit;background-color:#fff;border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-control::-webkit-date-and-time-value{height:1.4285714286em}.form-control::-webkit-input-placeholder{color:#a5a9b1;opacity:1}.form-control::-moz-placeholder{color:#a5a9b1;opacity:1}.form-control:-ms-input-placeholder{color:#a5a9b1;opacity:1}.form-control::-ms-input-placeholder{color:#a5a9b1;opacity:1}.form-control::placeholder{color:#a5a9b1;opacity:1}.form-control:disabled{background-color:#fafbfc;opacity:1}.form-control::-webkit-file-upload-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#eeeeef}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#eeeeef}.form-control-plaintext{display:block;width:100%;padding:.4375rem 0;margin-bottom:0;line-height:1.4285714286;color:#1e293b;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.4285714286em + .25rem + 2px);padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.form-control-sm::-webkit-file-upload-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.4285714286em + 1rem + 2px);padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.form-control-lg::file-selector-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}textarea.form-control{min-height:calc(1.4285714286em + .875rem + 2px)}textarea.form-control-sm{min-height:calc(1.4285714286em + .25rem + 2px)}textarea.form-control-lg{min-height:calc(1.4285714286em + 1rem + 2px)}.form-control-color{width:3rem;height:calc(1.4285714286em + .875rem + 2px);padding:.4375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:4px}.form-control-color::-webkit-color-swatch{border-radius:4px}.form-control-color.form-control-sm{height:calc(1.4285714286em + .25rem + 2px)}.form-control-color.form-control-lg{height:calc(1.4285714286em + 1rem + 2px)}.form-select{display:block;width:100%;padding:.4375rem 2.25rem .4375rem .75rem;-moz-padding-start:calc(.75rem - 3px);font-size:.875rem;font-weight:400;line-height:1.4285714286;color:inherit;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #d9dbde;border-radius:4px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e2e8f0}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 inherit}.form-select-sm{padding-top:.125rem;padding-bottom:.125rem;padding-left:.5rem;font-size:.75rem;border-radius:2px}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1.5rem;font-size:1.25rem;border-radius:8px}.form-check{display:block;min-height:1.25rem;padding-left:1.5rem;margin-bottom:.5rem}.form-check .form-check-input{float:left;margin-left:-1.5rem}.form-check-reverse{padding-right:1.5rem;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5rem;margin-left:0}.form-check-input{width:1rem;height:1rem;margin-top:.2142857143rem;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(98,105,118,.24);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:4px}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-check-input:checked{background-color:#206bc4;border-color:rgba(98,105,118,.24)}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#206bc4;border-color:#206bc4;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.7}.form-switch{padding-left:2.5rem}.form-switch .form-check-input{width:2rem;margin-left:-2.5rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23e6e7e9'/%3e%3c/svg%3e");background-position:left center;border-radius:2rem;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2390b5e2'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5rem;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5rem;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.25rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.375rem;background-color:#206bc4;border:2px solid var(--tblr-border-color-light);border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bcd3ed}.form-range::-webkit-slider-runnable-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color-light);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#206bc4;border:2px solid var(--tblr-border-color-light);border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#bcd3ed}.form-range::-moz-range-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color-light);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#64748b}.form-range:disabled::-moz-range-thumb{background-color:#64748b}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;width:100%;height:100%;padding:1rem .75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-webkit-input-placeholder,.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext:-ms-input-placeholder,.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control-plaintext::-ms-input-placeholder,.form-floating>.form-control::-ms-input-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:not(:-ms-input-placeholder),.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.4375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:#626976;text-align:center;white-space:nowrap;background-color:#fafbfc;border:1px solid #d9dbde;border-radius:4px}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select,.input-group>:not(:first-child):not(.dropdown-menu):not(.form-floating):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.71428571%;color:#2fb344}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;color:#fafbfc;background-color:rgba(47,179,68,.9);border-radius:4px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#2fb344;padding-right:calc(1.4285714286em + .875rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.4285714286em + .875rem);background-position:top calc(.3571428572em + .21875rem) right calc(.3571428572em + .21875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#2fb344}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.4285714286em + .875rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#2fb344}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#2fb344}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#2fb344}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.71428571%;color:#d63939}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;color:#fafbfc;background-color:rgba(214,57,57,.9);border-radius:4px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#d63939;padding-right:calc(1.4285714286em + .875rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.4285714286em + .875rem);background-position:top calc(.3571428572em + .21875rem) right calc(.3571428572em + .21875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#d63939}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.4285714286em + .875rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#d63939}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#d63939}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#d63939}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{--tblr-btn-padding-x:1rem;--tblr-btn-padding-y:0.4375rem;--tblr-btn-font-size:0.875rem;--tblr-btn-font-weight:500;--tblr-btn-line-height:1.4285714286;--tblr-btn-color:#1e293b;--tblr-btn-bg:transparent;--tblr-btn-border-width:1px;--tblr-btn-border-color:transparent;--tblr-btn-border-radius:4px;--tblr-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--tblr-btn-disabled-opacity:0.65;--tblr-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--tblr-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--tblr-btn-padding-y) var(--tblr-btn-padding-x);font-family:var(--tblr-btn-font-family);font-size:var(--tblr-btn-font-size);font-weight:var(--tblr-btn-font-weight);line-height:var(--tblr-btn-line-height);color:var(--tblr-btn-color);text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:var(--tblr-btn-border-width) solid var(--tblr-btn-border-color);border-radius:var(--tblr-btn-border-radius);background-color:var(--tblr-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--tblr-btn-hover-color);text-decoration:none;background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color)}.btn-check:focus+.btn,.btn:focus{color:var(--tblr-btn-hover-color);background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color);outline:0;box-shadow:var(--tblr-btn-focus-box-shadow)}.btn-check:active+.btn,.btn-check:checked+.btn,.btn.active,.btn.show,.btn:active{color:var(--tblr-btn-active-color);background-color:var(--tblr-btn-active-bg);border-color:var(--tblr-btn-active-border-color)}.btn-check:active+.btn:focus,.btn-check:checked+.btn:focus,.btn.active:focus,.btn.show:focus,.btn:active:focus{box-shadow:var(--tblr-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--tblr-btn-disabled-color);pointer-events:none;background-color:var(--tblr-btn-disabled-bg);border-color:var(--tblr-btn-disabled-border-color);opacity:var(--tblr-btn-disabled-opacity)}.btn-primary{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1b5ba7;--tblr-btn-hover-border-color:#1a569d;--tblr-btn-focus-shadow-rgb:65,129,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1a569d;--tblr-btn-active-border-color:#185093;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#206bc4;--tblr-btn-disabled-border-color:#206bc4}.btn-secondary{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#626976;--tblr-btn-border-color:#626976;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#535964;--tblr-btn-hover-border-color:#4e545e;--tblr-btn-focus-shadow-rgb:121,127,138;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4e545e;--tblr-btn-active-border-color:#4a4f59;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#626976;--tblr-btn-disabled-border-color:#626976}.btn-success{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#2fb344;--tblr-btn-border-color:#2fb344;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#28983a;--tblr-btn-hover-border-color:#268f36;--tblr-btn-focus-shadow-rgb:77,190,96;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#268f36;--tblr-btn-active-border-color:#238633;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#2fb344;--tblr-btn-disabled-border-color:#2fb344}.btn-info{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#4299e1;--tblr-btn-border-color:#4299e1;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3882bf;--tblr-btn-hover-border-color:#357ab4;--tblr-btn-focus-shadow-rgb:94,168,229;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#357ab4;--tblr-btn-active-border-color:#3273a9;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#4299e1;--tblr-btn-disabled-border-color:#4299e1}.btn-warning{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#f76707;--tblr-btn-border-color:#f76707;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d25806;--tblr-btn-hover-border-color:#c65206;--tblr-btn-focus-shadow-rgb:247,125,44;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#c65206;--tblr-btn-active-border-color:#b94d05;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#f76707;--tblr-btn-disabled-border-color:#f76707}.btn-danger{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#d63939;--tblr-btn-border-color:#d63939;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#b63030;--tblr-btn-hover-border-color:#ab2e2e;--tblr-btn-focus-shadow-rgb:219,86,86;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ab2e2e;--tblr-btn-active-border-color:#a12b2b;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#d63939;--tblr-btn-disabled-border-color:#d63939}.btn-light{--tblr-btn-color:#1e293b;--tblr-btn-bg:#fafbfc;--tblr-btn-border-color:#fafbfc;--tblr-btn-hover-color:#1e293b;--tblr-btn-hover-bg:#d5d5d6;--tblr-btn-hover-border-color:#c8c9ca;--tblr-btn-focus-shadow-rgb:217,220,223;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#c8c9ca;--tblr-btn-active-border-color:#bcbcbd;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1e293b;--tblr-btn-disabled-bg:#fafbfc;--tblr-btn-disabled-border-color:#fafbfc}.btn-dark{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#1e293b;--tblr-btn-border-color:#1e293b;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#404958;--tblr-btn-hover-border-color:#353e4f;--tblr-btn-focus-shadow-rgb:63,73,88;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4b5462;--tblr-btn-active-border-color:#353e4f;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#1e293b;--tblr-btn-disabled-border-color:#1e293b}.btn-muted{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#626976;--tblr-btn-border-color:#626976;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#535964;--tblr-btn-hover-border-color:#4e545e;--tblr-btn-focus-shadow-rgb:121,127,138;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4e545e;--tblr-btn-active-border-color:#4a4f59;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#626976;--tblr-btn-disabled-border-color:#626976}.btn-blue{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1b5ba7;--tblr-btn-hover-border-color:#1a569d;--tblr-btn-focus-shadow-rgb:65,129,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1a569d;--tblr-btn-active-border-color:#185093;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#206bc4;--tblr-btn-disabled-border-color:#206bc4}.btn-azure{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#4299e1;--tblr-btn-border-color:#4299e1;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3882bf;--tblr-btn-hover-border-color:#357ab4;--tblr-btn-focus-shadow-rgb:94,168,229;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#357ab4;--tblr-btn-active-border-color:#3273a9;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#4299e1;--tblr-btn-disabled-border-color:#4299e1}.btn-indigo{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#4263eb;--tblr-btn-border-color:#4263eb;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3854c8;--tblr-btn-hover-border-color:#354fbc;--tblr-btn-focus-shadow-rgb:94,122,238;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#354fbc;--tblr-btn-active-border-color:#324ab0;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#4263eb;--tblr-btn-disabled-border-color:#4263eb}.btn-purple{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#ae3ec9;--tblr-btn-border-color:#ae3ec9;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#9435ab;--tblr-btn-hover-border-color:#8b32a1;--tblr-btn-focus-shadow-rgb:185,90,209;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#8b32a1;--tblr-btn-active-border-color:#832f97;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#ae3ec9;--tblr-btn-disabled-border-color:#ae3ec9}.btn-pink{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#d6336c;--tblr-btn-border-color:#d6336c;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#b62b5c;--tblr-btn-hover-border-color:#ab2956;--tblr-btn-focus-shadow-rgb:219,81,130;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ab2956;--tblr-btn-active-border-color:#a12651;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#d6336c;--tblr-btn-disabled-border-color:#d6336c}.btn-red{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#d63939;--tblr-btn-border-color:#d63939;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#b63030;--tblr-btn-hover-border-color:#ab2e2e;--tblr-btn-focus-shadow-rgb:219,86,86;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ab2e2e;--tblr-btn-active-border-color:#a12b2b;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#d63939;--tblr-btn-disabled-border-color:#d63939}.btn-orange{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#f76707;--tblr-btn-border-color:#f76707;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d25806;--tblr-btn-hover-border-color:#c65206;--tblr-btn-focus-shadow-rgb:247,125,44;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#c65206;--tblr-btn-active-border-color:#b94d05;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#f76707;--tblr-btn-disabled-border-color:#f76707}.btn-yellow{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#f59f00;--tblr-btn-border-color:#f59f00;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d08700;--tblr-btn-hover-border-color:#c47f00;--tblr-btn-focus-shadow-rgb:246,173,38;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#c47f00;--tblr-btn-active-border-color:#b87700;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#f59f00;--tblr-btn-disabled-border-color:#f59f00}.btn-lime{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#74b816;--tblr-btn-border-color:#74b816;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#639c13;--tblr-btn-hover-border-color:#5d9312;--tblr-btn-focus-shadow-rgb:136,194,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#5d9312;--tblr-btn-active-border-color:#578a11;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#74b816;--tblr-btn-disabled-border-color:#74b816}.btn-green{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#2fb344;--tblr-btn-border-color:#2fb344;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#28983a;--tblr-btn-hover-border-color:#268f36;--tblr-btn-focus-shadow-rgb:77,190,96;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#268f36;--tblr-btn-active-border-color:#238633;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#2fb344;--tblr-btn-disabled-border-color:#2fb344}.btn-teal{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#0ca678;--tblr-btn-border-color:#0ca678;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0a8d66;--tblr-btn-hover-border-color:#0a8560;--tblr-btn-focus-shadow-rgb:48,179,140;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0a8560;--tblr-btn-active-border-color:#097d5a;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#0ca678;--tblr-btn-disabled-border-color:#0ca678}.btn-cyan{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#17a2b8;--tblr-btn-border-color:#17a2b8;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#148a9c;--tblr-btn-hover-border-color:#128293;--tblr-btn-focus-shadow-rgb:57,175,194;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#128293;--tblr-btn-active-border-color:#117a8a;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#17a2b8;--tblr-btn-disabled-border-color:#17a2b8}.btn-facebook{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#3b5998;--tblr-btn-border-color:#3b5998;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#324c81;--tblr-btn-hover-border-color:#2f477a;--tblr-btn-focus-shadow-rgb:88,113,167;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2f477a;--tblr-btn-active-border-color:#2c4372;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#3b5998;--tblr-btn-disabled-border-color:#3b5998}.btn-twitter{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#1da1f2;--tblr-btn-border-color:#1da1f2;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1989ce;--tblr-btn-hover-border-color:#1781c2;--tblr-btn-focus-shadow-rgb:62,175,244;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1781c2;--tblr-btn-active-border-color:#1679b6;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#1da1f2;--tblr-btn-disabled-border-color:#1da1f2}.btn-linkedin{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#0a66c2;--tblr-btn-border-color:#0a66c2;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0957a5;--tblr-btn-hover-border-color:#08529b;--tblr-btn-focus-shadow-rgb:46,124,203;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#08529b;--tblr-btn-active-border-color:#084d92;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#0a66c2;--tblr-btn-disabled-border-color:#0a66c2}.btn-google{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#dc4e41;--tblr-btn-border-color:#dc4e41;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#bb4237;--tblr-btn-hover-border-color:#b03e34;--tblr-btn-focus-shadow-rgb:225,104,93;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#b03e34;--tblr-btn-active-border-color:#a53b31;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#dc4e41;--tblr-btn-disabled-border-color:#dc4e41}.btn-youtube{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#ff0000;--tblr-btn-border-color:#ff0000;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d90000;--tblr-btn-hover-border-color:#cc0000;--tblr-btn-focus-shadow-rgb:254,38,38;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#cc0000;--tblr-btn-active-border-color:#bf0000;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#ff0000;--tblr-btn-disabled-border-color:#ff0000}.btn-vimeo{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#1ab7ea;--tblr-btn-border-color:#1ab7ea;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#169cc7;--tblr-btn-hover-border-color:#1592bb;--tblr-btn-focus-shadow-rgb:60,193,237;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1592bb;--tblr-btn-active-border-color:#1489b0;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#1ab7ea;--tblr-btn-disabled-border-color:#1ab7ea}.btn-dribbble{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#ea4c89;--tblr-btn-border-color:#ea4c89;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#c74174;--tblr-btn-hover-border-color:#bb3d6e;--tblr-btn-focus-shadow-rgb:236,102,154;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#bb3d6e;--tblr-btn-active-border-color:#b03967;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#ea4c89;--tblr-btn-disabled-border-color:#ea4c89}.btn-github{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#181717;--tblr-btn-border-color:#181717;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#141414;--tblr-btn-hover-border-color:#131212;--tblr-btn-focus-shadow-rgb:58,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#131212;--tblr-btn-active-border-color:#121111;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#181717;--tblr-btn-disabled-border-color:#181717}.btn-instagram{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#e4405f;--tblr-btn-border-color:#e4405f;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#c23651;--tblr-btn-hover-border-color:#b6334c;--tblr-btn-focus-shadow-rgb:231,92,119;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#b6334c;--tblr-btn-active-border-color:#ab3047;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#e4405f;--tblr-btn-disabled-border-color:#e4405f}.btn-pinterest{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#bd081c;--tblr-btn-border-color:#bd081c;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#a10718;--tblr-btn-hover-border-color:#970616;--tblr-btn-focus-shadow-rgb:198,44,62;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#970616;--tblr-btn-active-border-color:#8e0615;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#bd081c;--tblr-btn-disabled-border-color:#bd081c}.btn-vk{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#6383a8;--tblr-btn-border-color:#6383a8;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#546f8f;--tblr-btn-hover-border-color:#4f6986;--tblr-btn-focus-shadow-rgb:122,149,181;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4f6986;--tblr-btn-active-border-color:#4a627e;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#6383a8;--tblr-btn-disabled-border-color:#6383a8}.btn-rss{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#ffa500;--tblr-btn-border-color:#ffa500;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d98c00;--tblr-btn-hover-border-color:#cc8400;--tblr-btn-focus-shadow-rgb:254,178,38;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#cc8400;--tblr-btn-active-border-color:#bf7c00;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#ffa500;--tblr-btn-disabled-border-color:#ffa500}.btn-flickr{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#0063dc;--tblr-btn-border-color:#0063dc;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0054bb;--tblr-btn-hover-border-color:#004fb0;--tblr-btn-focus-shadow-rgb:38,122,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#004fb0;--tblr-btn-active-border-color:#004aa5;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#0063dc;--tblr-btn-disabled-border-color:#0063dc}.btn-bitbucket{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#0052cc;--tblr-btn-border-color:#0052cc;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0046ad;--tblr-btn-hover-border-color:#0042a3;--tblr-btn-focus-shadow-rgb:38,107,211;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0042a3;--tblr-btn-active-border-color:#003e99;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#0052cc;--tblr-btn-disabled-border-color:#0052cc}.btn-tabler{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1b5ba7;--tblr-btn-hover-border-color:#1a569d;--tblr-btn-focus-shadow-rgb:65,129,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1a569d;--tblr-btn-active-border-color:#185093;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#206bc4;--tblr-btn-disabled-border-color:#206bc4}.btn-outline-primary{--tblr-btn-color:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:#206bc4;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#206bc4;--tblr-gradient:none}.btn-outline-secondary{--tblr-btn-color:#626976;--tblr-btn-border-color:#626976;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#626976;--tblr-btn-hover-border-color:#626976;--tblr-btn-focus-shadow-rgb:98,105,118;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#626976;--tblr-btn-active-border-color:#626976;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#626976;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#626976;--tblr-gradient:none}.btn-outline-success{--tblr-btn-color:#2fb344;--tblr-btn-border-color:#2fb344;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#2fb344;--tblr-btn-hover-border-color:#2fb344;--tblr-btn-focus-shadow-rgb:47,179,68;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2fb344;--tblr-btn-active-border-color:#2fb344;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#2fb344;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#2fb344;--tblr-gradient:none}.btn-outline-info{--tblr-btn-color:#4299e1;--tblr-btn-border-color:#4299e1;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4299e1;--tblr-btn-hover-border-color:#4299e1;--tblr-btn-focus-shadow-rgb:66,153,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4299e1;--tblr-btn-active-border-color:#4299e1;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4299e1;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#4299e1;--tblr-gradient:none}.btn-outline-warning{--tblr-btn-color:#f76707;--tblr-btn-border-color:#f76707;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f76707;--tblr-btn-hover-border-color:#f76707;--tblr-btn-focus-shadow-rgb:247,103,7;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f76707;--tblr-btn-active-border-color:#f76707;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f76707;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#f76707;--tblr-gradient:none}.btn-outline-danger{--tblr-btn-color:#d63939;--tblr-btn-border-color:#d63939;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d63939;--tblr-btn-hover-border-color:#d63939;--tblr-btn-focus-shadow-rgb:214,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d63939;--tblr-btn-active-border-color:#d63939;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d63939;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#d63939;--tblr-gradient:none}.btn-outline-light{--tblr-btn-color:#fafbfc;--tblr-btn-border-color:#fafbfc;--tblr-btn-hover-color:#1e293b;--tblr-btn-hover-bg:#fafbfc;--tblr-btn-hover-border-color:#fafbfc;--tblr-btn-focus-shadow-rgb:250,251,252;--tblr-btn-active-color:#1e293b;--tblr-btn-active-bg:#fafbfc;--tblr-btn-active-border-color:#fafbfc;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#fafbfc;--tblr-gradient:none}.btn-outline-dark{--tblr-btn-color:#1e293b;--tblr-btn-border-color:#1e293b;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1e293b;--tblr-btn-hover-border-color:#1e293b;--tblr-btn-focus-shadow-rgb:30,41,59;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1e293b;--tblr-btn-active-border-color:#1e293b;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1e293b;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#1e293b;--tblr-gradient:none}.btn-outline-muted{--tblr-btn-color:#626976;--tblr-btn-border-color:#626976;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#626976;--tblr-btn-hover-border-color:#626976;--tblr-btn-focus-shadow-rgb:98,105,118;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#626976;--tblr-btn-active-border-color:#626976;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#626976;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#626976;--tblr-gradient:none}.btn-outline-blue{--tblr-btn-color:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:#206bc4;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#206bc4;--tblr-gradient:none}.btn-outline-azure{--tblr-btn-color:#4299e1;--tblr-btn-border-color:#4299e1;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4299e1;--tblr-btn-hover-border-color:#4299e1;--tblr-btn-focus-shadow-rgb:66,153,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4299e1;--tblr-btn-active-border-color:#4299e1;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4299e1;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#4299e1;--tblr-gradient:none}.btn-outline-indigo{--tblr-btn-color:#4263eb;--tblr-btn-border-color:#4263eb;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4263eb;--tblr-btn-hover-border-color:#4263eb;--tblr-btn-focus-shadow-rgb:66,99,235;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4263eb;--tblr-btn-active-border-color:#4263eb;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4263eb;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#4263eb;--tblr-gradient:none}.btn-outline-purple{--tblr-btn-color:#ae3ec9;--tblr-btn-border-color:#ae3ec9;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ae3ec9;--tblr-btn-hover-border-color:#ae3ec9;--tblr-btn-focus-shadow-rgb:174,62,201;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ae3ec9;--tblr-btn-active-border-color:#ae3ec9;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ae3ec9;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#ae3ec9;--tblr-gradient:none}.btn-outline-pink{--tblr-btn-color:#d6336c;--tblr-btn-border-color:#d6336c;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d6336c;--tblr-btn-hover-border-color:#d6336c;--tblr-btn-focus-shadow-rgb:214,51,108;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d6336c;--tblr-btn-active-border-color:#d6336c;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d6336c;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#d6336c;--tblr-gradient:none}.btn-outline-red{--tblr-btn-color:#d63939;--tblr-btn-border-color:#d63939;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d63939;--tblr-btn-hover-border-color:#d63939;--tblr-btn-focus-shadow-rgb:214,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d63939;--tblr-btn-active-border-color:#d63939;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d63939;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#d63939;--tblr-gradient:none}.btn-outline-orange{--tblr-btn-color:#f76707;--tblr-btn-border-color:#f76707;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f76707;--tblr-btn-hover-border-color:#f76707;--tblr-btn-focus-shadow-rgb:247,103,7;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f76707;--tblr-btn-active-border-color:#f76707;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f76707;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#f76707;--tblr-gradient:none}.btn-outline-yellow{--tblr-btn-color:#f59f00;--tblr-btn-border-color:#f59f00;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f59f00;--tblr-btn-hover-border-color:#f59f00;--tblr-btn-focus-shadow-rgb:245,159,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f59f00;--tblr-btn-active-border-color:#f59f00;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f59f00;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#f59f00;--tblr-gradient:none}.btn-outline-lime{--tblr-btn-color:#74b816;--tblr-btn-border-color:#74b816;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#74b816;--tblr-btn-hover-border-color:#74b816;--tblr-btn-focus-shadow-rgb:116,184,22;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#74b816;--tblr-btn-active-border-color:#74b816;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#74b816;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#74b816;--tblr-gradient:none}.btn-outline-green{--tblr-btn-color:#2fb344;--tblr-btn-border-color:#2fb344;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#2fb344;--tblr-btn-hover-border-color:#2fb344;--tblr-btn-focus-shadow-rgb:47,179,68;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2fb344;--tblr-btn-active-border-color:#2fb344;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#2fb344;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#2fb344;--tblr-gradient:none}.btn-outline-teal{--tblr-btn-color:#0ca678;--tblr-btn-border-color:#0ca678;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0ca678;--tblr-btn-hover-border-color:#0ca678;--tblr-btn-focus-shadow-rgb:12,166,120;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0ca678;--tblr-btn-active-border-color:#0ca678;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0ca678;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#0ca678;--tblr-gradient:none}.btn-outline-cyan{--tblr-btn-color:#17a2b8;--tblr-btn-border-color:#17a2b8;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#17a2b8;--tblr-btn-hover-border-color:#17a2b8;--tblr-btn-focus-shadow-rgb:23,162,184;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#17a2b8;--tblr-btn-active-border-color:#17a2b8;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#17a2b8;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#17a2b8;--tblr-gradient:none}.btn-outline-facebook{--tblr-btn-color:#3b5998;--tblr-btn-border-color:#3b5998;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3b5998;--tblr-btn-hover-border-color:#3b5998;--tblr-btn-focus-shadow-rgb:59,89,152;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#3b5998;--tblr-btn-active-border-color:#3b5998;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#3b5998;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#3b5998;--tblr-gradient:none}.btn-outline-twitter{--tblr-btn-color:#1da1f2;--tblr-btn-border-color:#1da1f2;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1da1f2;--tblr-btn-hover-border-color:#1da1f2;--tblr-btn-focus-shadow-rgb:29,161,242;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1da1f2;--tblr-btn-active-border-color:#1da1f2;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1da1f2;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#1da1f2;--tblr-gradient:none}.btn-outline-linkedin{--tblr-btn-color:#0a66c2;--tblr-btn-border-color:#0a66c2;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0a66c2;--tblr-btn-hover-border-color:#0a66c2;--tblr-btn-focus-shadow-rgb:10,102,194;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0a66c2;--tblr-btn-active-border-color:#0a66c2;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0a66c2;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#0a66c2;--tblr-gradient:none}.btn-outline-google{--tblr-btn-color:#dc4e41;--tblr-btn-border-color:#dc4e41;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#dc4e41;--tblr-btn-hover-border-color:#dc4e41;--tblr-btn-focus-shadow-rgb:220,78,65;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#dc4e41;--tblr-btn-active-border-color:#dc4e41;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#dc4e41;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#dc4e41;--tblr-gradient:none}.btn-outline-youtube{--tblr-btn-color:#ff0000;--tblr-btn-border-color:#ff0000;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ff0000;--tblr-btn-hover-border-color:#ff0000;--tblr-btn-focus-shadow-rgb:255,0,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ff0000;--tblr-btn-active-border-color:#ff0000;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ff0000;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#ff0000;--tblr-gradient:none}.btn-outline-vimeo{--tblr-btn-color:#1ab7ea;--tblr-btn-border-color:#1ab7ea;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1ab7ea;--tblr-btn-hover-border-color:#1ab7ea;--tblr-btn-focus-shadow-rgb:26,183,234;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1ab7ea;--tblr-btn-active-border-color:#1ab7ea;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1ab7ea;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#1ab7ea;--tblr-gradient:none}.btn-outline-dribbble{--tblr-btn-color:#ea4c89;--tblr-btn-border-color:#ea4c89;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ea4c89;--tblr-btn-hover-border-color:#ea4c89;--tblr-btn-focus-shadow-rgb:234,76,137;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ea4c89;--tblr-btn-active-border-color:#ea4c89;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ea4c89;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#ea4c89;--tblr-gradient:none}.btn-outline-github{--tblr-btn-color:#181717;--tblr-btn-border-color:#181717;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#181717;--tblr-btn-hover-border-color:#181717;--tblr-btn-focus-shadow-rgb:24,23,23;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#181717;--tblr-btn-active-border-color:#181717;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#181717;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#181717;--tblr-gradient:none}.btn-outline-instagram{--tblr-btn-color:#e4405f;--tblr-btn-border-color:#e4405f;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#e4405f;--tblr-btn-hover-border-color:#e4405f;--tblr-btn-focus-shadow-rgb:228,64,95;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#e4405f;--tblr-btn-active-border-color:#e4405f;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#e4405f;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#e4405f;--tblr-gradient:none}.btn-outline-pinterest{--tblr-btn-color:#bd081c;--tblr-btn-border-color:#bd081c;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#bd081c;--tblr-btn-hover-border-color:#bd081c;--tblr-btn-focus-shadow-rgb:189,8,28;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#bd081c;--tblr-btn-active-border-color:#bd081c;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#bd081c;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#bd081c;--tblr-gradient:none}.btn-outline-vk{--tblr-btn-color:#6383a8;--tblr-btn-border-color:#6383a8;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#6383a8;--tblr-btn-hover-border-color:#6383a8;--tblr-btn-focus-shadow-rgb:99,131,168;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#6383a8;--tblr-btn-active-border-color:#6383a8;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#6383a8;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#6383a8;--tblr-gradient:none}.btn-outline-rss{--tblr-btn-color:#ffa500;--tblr-btn-border-color:#ffa500;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ffa500;--tblr-btn-hover-border-color:#ffa500;--tblr-btn-focus-shadow-rgb:255,165,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ffa500;--tblr-btn-active-border-color:#ffa500;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ffa500;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#ffa500;--tblr-gradient:none}.btn-outline-flickr{--tblr-btn-color:#0063dc;--tblr-btn-border-color:#0063dc;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0063dc;--tblr-btn-hover-border-color:#0063dc;--tblr-btn-focus-shadow-rgb:0,99,220;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0063dc;--tblr-btn-active-border-color:#0063dc;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0063dc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#0063dc;--tblr-gradient:none}.btn-outline-bitbucket{--tblr-btn-color:#0052cc;--tblr-btn-border-color:#0052cc;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0052cc;--tblr-btn-hover-border-color:#0052cc;--tblr-btn-focus-shadow-rgb:0,82,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0052cc;--tblr-btn-active-border-color:#0052cc;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0052cc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#0052cc;--tblr-gradient:none}.btn-outline-tabler{--tblr-btn-color:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:#206bc4;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#206bc4;--tblr-gradient:none}.btn-link{--tblr-btn-font-weight:400;--tblr-btn-color:var(--tblr-link-color);--tblr-btn-bg:transparent;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:var(--tblr-link-hover-color);--tblr-btn-hover-border-color:transparent;--tblr-btn-active-color:var(--tblr-link-hover-color);--tblr-btn-active-border-color:transparent;--tblr-btn-disabled-color:#475569;--tblr-btn-disabled-border-color:transparent;--tblr-btn-box-shadow:none;--tblr-btn-focus-shadow-rgb:65,129,204;text-decoration:none}.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link:focus{color:var(--tblr-btn-color)}.btn-link:hover{color:var(--tblr-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--tblr-btn-padding-y:0.5rem;--tblr-btn-padding-x:1.5rem;--tblr-btn-font-size:1.25rem;--tblr-btn-border-radius:8px}.btn-group-sm>.btn,.btn-sm{--tblr-btn-padding-y:0.125rem;--tblr-btn-padding-x:0.5rem;--tblr-btn-font-size:0.75rem;--tblr-btn-border-radius:2px}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(-45deg)}.dropdown-menu{--tblr-dropdown-min-width:11rem;--tblr-dropdown-padding-x:0;--tblr-dropdown-padding-y:0.25rem;--tblr-dropdown-spacer:1px;--tblr-dropdown-font-size:0.875rem;--tblr-dropdown-color:#1e293b;--tblr-dropdown-bg:#ffffff;--tblr-dropdown-border-color:rgba(98, 105, 118, 0.16);--tblr-dropdown-border-radius:4px;--tblr-dropdown-border-width:1px;--tblr-dropdown-inner-border-radius:3px;--tblr-dropdown-divider-bg:rgba(98, 105, 118, 0.16);--tblr-dropdown-divider-margin-y:0.5rem;--tblr-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--tblr-dropdown-link-color:inherit;--tblr-dropdown-link-hover-color:inherit;--tblr-dropdown-link-hover-bg:rgba(98, 105, 118, 0.04);--tblr-dropdown-link-active-color:#206bc4;--tblr-dropdown-link-active-bg:rgba(32, 107, 196, 0.04);--tblr-dropdown-link-disabled-color:#64748b;--tblr-dropdown-item-padding-x:0.75rem;--tblr-dropdown-item-padding-y:0.5rem;--tblr-dropdown-header-color:#475569;--tblr-dropdown-header-padding-x:0.75rem;--tblr-dropdown-header-padding-y:0.25rem;position:absolute;z-index:1000;display:none;min-width:var(--tblr-dropdown-min-width);padding:var(--tblr-dropdown-padding-y) var(--tblr-dropdown-padding-x);margin:0;font-size:var(--tblr-dropdown-font-size);color:var(--tblr-dropdown-color);text-align:left;list-style:none;background-color:var(--tblr-dropdown-bg);background-clip:padding-box;border:var(--tblr-dropdown-border-width) solid var(--tblr-dropdown-border-color);border-radius:var(--tblr-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--tblr-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--tblr-dropdown-spacer)}.dropup .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(135deg)}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--tblr-dropdown-spacer)}.dropend .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(-135deg)}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--tblr-dropdown-spacer)}.dropstart .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(45deg)}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--tblr-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--tblr-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--tblr-dropdown-link-color);text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:var(--tblr-dropdown-link-hover-color);text-decoration:none;background-color:var(--tblr-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--tblr-dropdown-link-active-color);text-decoration:none;background-color:var(--tblr-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--tblr-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--tblr-dropdown-header-padding-y) var(--tblr-dropdown-header-padding-x);margin-bottom:0;font-size:.765625rem;color:var(--tblr-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x);color:var(--tblr-dropdown-link-color)}.dropdown-menu-dark{--tblr-dropdown-color:#cbd5e1;--tblr-dropdown-bg:#1e293b;--tblr-dropdown-border-color:rgba(98, 105, 118, 0.16);--tblr-dropdown-link-color:#cbd5e1;--tblr-dropdown-link-hover-color:#ffffff;--tblr-dropdown-divider-bg:rgba(98, 105, 118, 0.16);--tblr-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--tblr-dropdown-link-active-color:#206bc4;--tblr-dropdown-link-active-bg:rgba(32, 107, 196, 0.04);--tblr-dropdown-link-disabled-color:#64748b;--tblr-dropdown-header-color:#64748b}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:4px}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--tblr-nav-link-padding-x:0.75rem;--tblr-nav-link-padding-y:0.5rem;--tblr-nav-link-color:inherit;--tblr-nav-link-hover-color:var(--tblr-link-hover-color);--tblr-nav-link-disabled-color:#475569;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--tblr-nav-link-padding-y) var(--tblr-nav-link-padding-x);font-size:var(--tblr-nav-link-font-size);font-weight:var(--tblr-nav-link-font-weight);color:var(--tblr-nav-link-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--tblr-nav-link-hover-color);text-decoration:none}.nav-link.disabled{color:var(--tblr-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--tblr-nav-tabs-border-width:1px;--tblr-nav-tabs-border-color:#cbd5e1;--tblr-nav-tabs-border-radius:4px;--tblr-nav-tabs-link-hover-border-color:#e2e8f0 #e2e8f0 #cbd5e1;--tblr-nav-tabs-link-active-color:#334155;--tblr-nav-tabs-link-active-bg:#f5f7fb;--tblr-nav-tabs-link-active-border-color:#cbd5e1 #cbd5e1 #f5f7fb;border-bottom:var(--tblr-nav-tabs-border-width) solid var(--tblr-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(var(--tblr-nav-tabs-border-width) * -1);background:0 0;border:var(--tblr-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--tblr-nav-tabs-border-radius);border-top-right-radius:var(--tblr-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--tblr-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--tblr-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--tblr-nav-tabs-link-active-color);background-color:var(--tblr-nav-tabs-link-active-bg);border-color:var(--tblr-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(var(--tblr-nav-tabs-border-width) * -1);border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--tblr-nav-pills-border-radius:4px;--tblr-nav-pills-link-active-color:#206bc4;--tblr-nav-pills-link-active-bg:rgba(32, 107, 196, 0.04)}.nav-pills .nav-link{background:0 0;border:0;border-radius:var(--tblr-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--tblr-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--tblr-nav-pills-link-active-color);background-color:var(--tblr-nav-pills-link-active-bg)}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--tblr-navbar-padding-x:0;--tblr-navbar-padding-y:0.25rem;--tblr-navbar-color:#1e293b;--tblr-navbar-hover-color:rgba(0, 0, 0, 0.7);--tblr-navbar-disabled-color:rgba(30, 41, 59, 0.3);--tblr-navbar-active-color:#1e293b;--tblr-navbar-brand-padding-y:0.5rem;--tblr-navbar-brand-margin-end:1rem;--tblr-navbar-brand-font-size:1rem;--tblr-navbar-brand-color:#1e293b;--tblr-navbar-brand-hover-color:#1e293b;--tblr-navbar-nav-link-padding-x:0.75rem;--tblr-navbar-toggler-padding-y:0;--tblr-navbar-toggler-padding-x:0;--tblr-navbar-toggler-font-size:1rem;--tblr-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231e293b' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--tblr-navbar-toggler-border-color:rgba(0, 0, 0, 0.1);--tblr-navbar-toggler-border-radius:4px;--tblr-navbar-toggler-focus-width:0;--tblr-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--tblr-navbar-padding-y) var(--tblr-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--tblr-navbar-brand-padding-y);padding-bottom:var(--tblr-navbar-brand-padding-y);margin-right:var(--tblr-navbar-brand-margin-end);font-size:var(--tblr-navbar-brand-font-size);color:var(--tblr-navbar-brand-color);white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--tblr-navbar-brand-hover-color);text-decoration:none}.navbar-nav{--tblr-nav-link-padding-x:0;--tblr-nav-link-padding-y:0.5rem;--tblr-nav-link-color:var(--tblr-navbar-color);--tblr-nav-link-hover-color:var(--tblr-navbar-hover-color);--tblr-nav-link-disabled-color:var(--tblr-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .show>.nav-link{color:var(--tblr-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--tblr-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--tblr-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--tblr-navbar-toggler-padding-y) var(--tblr-navbar-toggler-padding-x);font-size:var(--tblr-navbar-toggler-font-size);line-height:1;color:var(--tblr-navbar-color);background-color:transparent;border:var(--tblr-border-width) solid var(--tblr-navbar-toggler-border-color);border-radius:var(--tblr-navbar-toggler-border-radius);transition:var(--tblr-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--tblr-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--tblr-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--tblr-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark{--tblr-navbar-color:rgba(255, 255, 255, 0.7);--tblr-navbar-hover-color:rgba(255, 255, 255, 0.75);--tblr-navbar-disabled-color:rgba(255, 255, 255, 0.3);--tblr-navbar-active-color:#ffffff;--tblr-navbar-brand-color:#ffffff;--tblr-navbar-brand-hover-color:#ffffff;--tblr-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--tblr-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--tblr-card-spacer-y:1rem;--tblr-card-spacer-x:1.25rem;--tblr-card-title-spacer-y:1.25rem;--tblr-card-border-width:1px;--tblr-card-border-color:rgba(98, 105, 118, 0.16);--tblr-card-border-radius:4px;--tblr-card-inner-border-radius:3px;--tblr-card-cap-padding-y:1rem;--tblr-card-cap-padding-x:1.25rem;--tblr-card-cap-bg:#fafbfc;--tblr-card-cap-color:#626976;--tblr-card-bg:#ffffff;--tblr-card-img-overlay-padding:1rem;--tblr-card-group-margin:1.5rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--tblr-card-height);word-wrap:break-word;background-color:var(--tblr-card-bg);background-clip:border-box;border:var(--tblr-card-border-width) solid var(--tblr-card-border-color);border-radius:var(--tblr-card-border-radius)}.card>.hr,.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--tblr-card-inner-border-radius);border-top-right-radius:var(--tblr-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--tblr-card-inner-border-radius);border-bottom-left-radius:var(--tblr-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--tblr-card-spacer-y) var(--tblr-card-spacer-x);color:var(--tblr-card-color)}.card-title{margin-bottom:var(--tblr-card-title-spacer-y)}.card-subtitle{margin-top:calc(-.5 * var(--tblr-card-title-spacer-y));margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:var(--tblr-card-spacer-x)}.card-header{padding:var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x);margin-bottom:0;color:var(--tblr-card-cap-color);background-color:var(--tblr-card-cap-bg);border-bottom:var(--tblr-card-border-width) solid var(--tblr-card-border-color)}.card-header:first-child{border-radius:var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius) 0 0}.card-footer{padding:var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x);color:var(--tblr-card-cap-color);background-color:var(--tblr-card-cap-bg);border-top:var(--tblr-card-border-width) solid var(--tblr-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--tblr-card-cap-padding-x));margin-bottom:calc(-1 * var(--tblr-card-cap-padding-y));margin-left:calc(-.5 * var(--tblr-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--tblr-card-bg);border-bottom-color:var(--tblr-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--tblr-card-cap-padding-x));margin-left:calc(-.5 * var(--tblr-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--tblr-card-img-overlay-padding);border-radius:var(--tblr-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--tblr-card-inner-border-radius);border-top-right-radius:var(--tblr-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--tblr-card-inner-border-radius);border-bottom-left-radius:var(--tblr-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--tblr-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--tblr-accordion-color:#fafbfc;--tblr-accordion-bg:transparent;--tblr-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--tblr-accordion-border-color:rgba(98, 105, 118, 0.16);--tblr-accordion-border-width:1px;--tblr-accordion-border-radius:4px;--tblr-accordion-inner-border-radius:3px;--tblr-accordion-btn-padding-x:1.25rem;--tblr-accordion-btn-padding-y:1rem;--tblr-accordion-btn-color:var(--tblr-body-color);--tblr-accordion-btn-bg:transparent;--tblr-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--tblr-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--tblr-accordion-btn-icon-width:1rem;--tblr-accordion-btn-icon-transform:rotate(-180deg);--tblr-accordion-btn-icon-transition:transform 0.2s ease-in-out;--tblr-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='inherit'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--tblr-accordion-btn-focus-border-color:rgba(98, 105, 118, 0.16);--tblr-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(32, 107, 196, 0.25);--tblr-accordion-body-padding-x:1.25rem;--tblr-accordion-body-padding-y:1rem;--tblr-accordion-active-color:inherit;--tblr-accordion-active-bg:transparent}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--tblr-accordion-btn-padding-y) var(--tblr-accordion-btn-padding-x);font-size:.875rem;color:var(--tblr-accordion-btn-color);text-align:left;background-color:var(--tblr-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--tblr-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--tblr-accordion-active-color);background-color:var(--tblr-accordion-active-bg);box-shadow:inset 0 calc(var(--tblr-accordion-border-width) * -1) 0 var(--tblr-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--tblr-accordion-btn-active-icon);transform:var(--tblr-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--tblr-accordion-btn-icon-width);height:var(--tblr-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--tblr-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--tblr-accordion-btn-icon-width);transition:var(--tblr-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--tblr-accordion-btn-focus-border-color);outline:0;box-shadow:var(--tblr-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--tblr-accordion-color);background-color:var(--tblr-accordion-bg);border:var(--tblr-accordion-border-width) solid var(--tblr-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--tblr-accordion-border-radius);border-top-right-radius:var(--tblr-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--tblr-accordion-inner-border-radius);border-top-right-radius:var(--tblr-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--tblr-accordion-border-radius);border-bottom-left-radius:var(--tblr-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--tblr-accordion-inner-border-radius);border-bottom-left-radius:var(--tblr-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--tblr-accordion-border-radius);border-bottom-left-radius:var(--tblr-accordion-border-radius)}.accordion-body{padding:var(--tblr-accordion-body-padding-y) var(--tblr-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{--tblr-breadcrumb-padding-x:0;--tblr-breadcrumb-padding-y:0;--tblr-breadcrumb-margin-bottom:1rem;--tblr-breadcrumb-divider-color:#626976;--tblr-breadcrumb-item-padding-x:0.5rem;--tblr-breadcrumb-item-active-color:inherit;display:flex;flex-wrap:wrap;padding:var(--tblr-breadcrumb-padding-y) var(--tblr-breadcrumb-padding-x);margin-bottom:var(--tblr-breadcrumb-margin-bottom);font-size:var(--tblr-breadcrumb-font-size);list-style:none;background-color:var(--tblr-breadcrumb-bg);border-radius:var(--tblr-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--tblr-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--tblr-breadcrumb-item-padding-x);color:var(--tblr-breadcrumb-divider-color);content:var(--tblr-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--tblr-breadcrumb-item-active-color)}.pagination{--tblr-pagination-padding-x:0.25rem;--tblr-pagination-padding-y:0.25rem;--tblr-pagination-font-size:0.875rem;--tblr-pagination-color:#626976;--tblr-pagination-bg:transparent;--tblr-pagination-border-width:0;--tblr-pagination-border-color:#cbd5e1;--tblr-pagination-border-radius:4px;--tblr-pagination-hover-color:var(--tblr-link-hover-color);--tblr-pagination-hover-bg:#e2e8f0;--tblr-pagination-hover-border-color:#cbd5e1;--tblr-pagination-focus-color:var(--tblr-link-hover-color);--tblr-pagination-focus-bg:#e2e8f0;--tblr-pagination-focus-box-shadow:0 0 0 0.25rem rgba(32, 107, 196, 0.25);--tblr-pagination-active-color:#ffffff;--tblr-pagination-active-bg:#206bc4;--tblr-pagination-active-border-color:#206bc4;--tblr-pagination-disabled-color:rgba(98, 105, 118, 0.5);--tblr-pagination-disabled-bg:transparent;--tblr-pagination-disabled-border-color:#cbd5e1;display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--tblr-pagination-padding-y) var(--tblr-pagination-padding-x);font-size:var(--tblr-pagination-font-size);color:var(--tblr-pagination-color);background-color:var(--tblr-pagination-bg);border:var(--tblr-pagination-border-width) solid var(--tblr-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--tblr-pagination-hover-color);text-decoration:none;background-color:var(--tblr-pagination-hover-bg);border-color:var(--tblr-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--tblr-pagination-focus-color);background-color:var(--tblr-pagination-focus-bg);outline:0;box-shadow:var(--tblr-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--tblr-pagination-active-color);background-color:var(--tblr-pagination-active-bg);border-color:var(--tblr-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--tblr-pagination-disabled-color);pointer-events:none;background-color:var(--tblr-pagination-disabled-bg);border-color:var(--tblr-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:0}.page-item:first-child .page-link{border-top-left-radius:var(--tblr-pagination-border-radius);border-bottom-left-radius:var(--tblr-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--tblr-pagination-border-radius);border-bottom-right-radius:var(--tblr-pagination-border-radius)}.pagination-lg{--tblr-pagination-padding-x:1.5rem;--tblr-pagination-padding-y:0.75rem;--tblr-pagination-font-size:1.09375rem;--tblr-pagination-border-radius:8px}.pagination-sm{--tblr-pagination-padding-x:0.5rem;--tblr-pagination-padding-y:0.25rem;--tblr-pagination-font-size:0.765625rem;--tblr-pagination-border-radius:2px}.badge{--tblr-badge-padding-x:0.5em;--tblr-badge-padding-y:0.25em;--tblr-badge-font-size:85.71428571%;--tblr-badge-font-weight:500;--tblr-badge-color:#ffffff;--tblr-badge-border-radius:4px;display:inline-block;padding:var(--tblr-badge-padding-y) var(--tblr-badge-padding-x);font-size:var(--tblr-badge-font-size);font-weight:var(--tblr-badge-font-weight);line-height:1;color:var(--tblr-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--tblr-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--tblr-alert-bg:transparent;--tblr-alert-padding-x:1rem;--tblr-alert-padding-y:1rem;--tblr-alert-margin-bottom:1rem;--tblr-alert-color:inherit;--tblr-alert-border-color:transparent;--tblr-alert-border:1px solid var(--tblr-alert-border-color);--tblr-alert-border-radius:4px;position:relative;padding:var(--tblr-alert-padding-y) var(--tblr-alert-padding-x);margin-bottom:var(--tblr-alert-margin-bottom);color:var(--tblr-alert-color);background-color:var(--tblr-alert-bg);border:var(--tblr-alert-border);border-radius:var(--tblr-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:600}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:.5rem}}@keyframes progress-bar-stripes{0%{background-position-x:.5rem}}.progress{--tblr-progress-height:0.5rem;--tblr-progress-font-size:0.65625rem;--tblr-progress-bg:#e6e7e9;--tblr-progress-border-radius:4px;--tblr-progress-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.075);--tblr-progress-bar-color:#ffffff;--tblr-progress-bar-bg:#206bc4;--tblr-progress-bar-transition:width 0.6s ease;display:flex;height:var(--tblr-progress-height);overflow:hidden;font-size:var(--tblr-progress-font-size);background-color:var(--tblr-progress-bg);border-radius:var(--tblr-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--tblr-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--tblr-progress-bar-bg);transition:var(--tblr-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--tblr-progress-height) var(--tblr-progress-height)}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{--tblr-list-group-color:#0f172a;--tblr-list-group-bg:inherit;--tblr-list-group-border-color:#e6e7e9;--tblr-list-group-border-width:1px;--tblr-list-group-border-radius:4px;--tblr-list-group-item-padding-x:1.25rem;--tblr-list-group-item-padding-y:1rem;--tblr-list-group-action-color:inherit;--tblr-list-group-action-hover-color:inherit;--tblr-list-group-action-hover-bg:rgba(98, 105, 118, 0.04);--tblr-list-group-action-active-color:#1e293b;--tblr-list-group-action-active-bg:#e2e8f0;--tblr-list-group-disabled-color:#475569;--tblr-list-group-disabled-bg:inherit;--tblr-list-group-active-color:inherit;--tblr-list-group-active-bg:rgba(32, 107, 196, 0.04);--tblr-list-group-active-border-color:#e6e7e9;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--tblr-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--tblr-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--tblr-list-group-action-hover-color);text-decoration:none;background-color:var(--tblr-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--tblr-list-group-action-active-color);background-color:var(--tblr-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--tblr-list-group-item-padding-y) var(--tblr-list-group-item-padding-x);color:var(--tblr-list-group-color);background-color:var(--tblr-list-group-bg);border:var(--tblr-list-group-border-width) solid var(--tblr-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--tblr-list-group-disabled-color);pointer-events:none;background-color:var(--tblr-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--tblr-list-group-active-color);background-color:var(--tblr-list-group-active-bg);border-color:var(--tblr-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(var(--tblr-list-group-border-width) * -1);border-top-width:var(--tblr-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(var(--tblr-list-group-border-width) * -1);border-left-width:var(--tblr-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(var(--tblr-list-group-border-width) * -1);border-left-width:var(--tblr-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(var(--tblr-list-group-border-width) * -1);border-left-width:var(--tblr-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(var(--tblr-list-group-border-width) * -1);border-left-width:var(--tblr-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(var(--tblr-list-group-border-width) * -1);border-left-width:var(--tblr-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(var(--tblr-list-group-border-width) * -1);border-left-width:var(--tblr-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--tblr-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#134076;background-color:#d2e1f3}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#134076;background-color:#bdcbdb}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#134076;border-color:#134076}.list-group-item-secondary{color:#3b3f47;background-color:#e0e1e4}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#3b3f47;background-color:#cacbcd}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#3b3f47;border-color:#3b3f47}.list-group-item-success{color:#1c6b29;background-color:#d5f0da}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#1c6b29;background-color:#c0d8c4}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1c6b29;border-color:#1c6b29}.list-group-item-info{color:#285c87;background-color:#d9ebf9}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#285c87;background-color:#c3d4e0}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#285c87;border-color:#285c87}.list-group-item-warning{color:#943e04;background-color:#fde1cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#943e04;background-color:#e4cbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#943e04;border-color:#943e04}.list-group-item-danger{color:#802222;background-color:#f7d7d7}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#802222;background-color:#dec2c2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#802222;border-color:#802222}.list-group-item-light{color:#969797;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#969797;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#969797;border-color:#969797}.list-group-item-dark{color:#121923;background-color:#d2d4d8}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#121923;background-color:#bdbfc2}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#121923;border-color:#121923}.list-group-item-muted{color:#3b3f47;background-color:#e0e1e4}.list-group-item-muted.list-group-item-action:focus,.list-group-item-muted.list-group-item-action:hover{color:#3b3f47;background-color:#cacbcd}.list-group-item-muted.list-group-item-action.active{color:#fff;background-color:#3b3f47;border-color:#3b3f47}.list-group-item-blue{color:#134076;background-color:#d2e1f3}.list-group-item-blue.list-group-item-action:focus,.list-group-item-blue.list-group-item-action:hover{color:#134076;background-color:#bdcbdb}.list-group-item-blue.list-group-item-action.active{color:#fff;background-color:#134076;border-color:#134076}.list-group-item-azure{color:#285c87;background-color:#d9ebf9}.list-group-item-azure.list-group-item-action:focus,.list-group-item-azure.list-group-item-action:hover{color:#285c87;background-color:#c3d4e0}.list-group-item-azure.list-group-item-action.active{color:#fff;background-color:#285c87;border-color:#285c87}.list-group-item-indigo{color:#283b8d;background-color:#d9e0fb}.list-group-item-indigo.list-group-item-action:focus,.list-group-item-indigo.list-group-item-action:hover{color:#283b8d;background-color:#c3cae2}.list-group-item-indigo.list-group-item-action.active{color:#fff;background-color:#283b8d;border-color:#283b8d}.list-group-item-purple{color:#682579;background-color:#efd8f4}.list-group-item-purple.list-group-item-action:focus,.list-group-item-purple.list-group-item-action:hover{color:#682579;background-color:#d7c2dc}.list-group-item-purple.list-group-item-action.active{color:#fff;background-color:#682579;border-color:#682579}.list-group-item-pink{color:#801f41;background-color:#f7d6e2}.list-group-item-pink.list-group-item-action:focus,.list-group-item-pink.list-group-item-action:hover{color:#801f41;background-color:#dec1cb}.list-group-item-pink.list-group-item-action.active{color:#fff;background-color:#801f41;border-color:#801f41}.list-group-item-red{color:#802222;background-color:#f7d7d7}.list-group-item-red.list-group-item-action:focus,.list-group-item-red.list-group-item-action:hover{color:#802222;background-color:#dec2c2}.list-group-item-red.list-group-item-action.active{color:#fff;background-color:#802222;border-color:#802222}.list-group-item-orange{color:#943e04;background-color:#fde1cd}.list-group-item-orange.list-group-item-action:focus,.list-group-item-orange.list-group-item-action:hover{color:#943e04;background-color:#e4cbb9}.list-group-item-orange.list-group-item-action.active{color:#fff;background-color:#943e04;border-color:#943e04}.list-group-item-yellow{color:#935f00;background-color:#fdeccc}.list-group-item-yellow.list-group-item-action:focus,.list-group-item-yellow.list-group-item-action:hover{color:#935f00;background-color:#e4d4b8}.list-group-item-yellow.list-group-item-action.active{color:#fff;background-color:#935f00;border-color:#935f00}.list-group-item-lime{color:#466e0d;background-color:#e3f1d0}.list-group-item-lime.list-group-item-action:focus,.list-group-item-lime.list-group-item-action:hover{color:#466e0d;background-color:#ccd9bb}.list-group-item-lime.list-group-item-action.active{color:#fff;background-color:#466e0d;border-color:#466e0d}.list-group-item-green{color:#1c6b29;background-color:#d5f0da}.list-group-item-green.list-group-item-action:focus,.list-group-item-green.list-group-item-action:hover{color:#1c6b29;background-color:#c0d8c4}.list-group-item-green.list-group-item-action.active{color:#fff;background-color:#1c6b29;border-color:#1c6b29}.list-group-item-teal{color:#076448;background-color:#ceede4}.list-group-item-teal.list-group-item-action:focus,.list-group-item-teal.list-group-item-action:hover{color:#076448;background-color:#b9d5cd}.list-group-item-teal.list-group-item-action.active{color:#fff;background-color:#076448;border-color:#076448}.list-group-item-cyan{color:#0e616e;background-color:#d1ecf1}.list-group-item-cyan.list-group-item-action:focus,.list-group-item-cyan.list-group-item-action:hover{color:#0e616e;background-color:#bcd4d9}.list-group-item-cyan.list-group-item-action.active{color:#fff;background-color:#0e616e;border-color:#0e616e}.list-group-item-facebook{color:#23355b;background-color:#d8deea}.list-group-item-facebook.list-group-item-action:focus,.list-group-item-facebook.list-group-item-action:hover{color:#23355b;background-color:#c2c8d3}.list-group-item-facebook.list-group-item-action.active{color:#fff;background-color:#23355b;border-color:#23355b}.list-group-item-twitter{color:#116191;background-color:#d2ecfc}.list-group-item-twitter.list-group-item-action:focus,.list-group-item-twitter.list-group-item-action:hover{color:#116191;background-color:#bdd4e3}.list-group-item-twitter.list-group-item-action.active{color:#fff;background-color:#116191;border-color:#116191}.list-group-item-linkedin{color:#063d74;background-color:#cee0f3}.list-group-item-linkedin.list-group-item-action:focus,.list-group-item-linkedin.list-group-item-action:hover{color:#063d74;background-color:#b9cadb}.list-group-item-linkedin.list-group-item-action.active{color:#fff;background-color:#063d74;border-color:#063d74}.list-group-item-google{color:#842f27;background-color:#f8dcd9}.list-group-item-google.list-group-item-action:focus,.list-group-item-google.list-group-item-action:hover{color:#842f27;background-color:#dfc6c3}.list-group-item-google.list-group-item-action.active{color:#fff;background-color:#842f27;border-color:#842f27}.list-group-item-youtube{color:#900;background-color:#fcc}.list-group-item-youtube.list-group-item-action:focus,.list-group-item-youtube.list-group-item-action:hover{color:#900;background-color:#e6b8b8}.list-group-item-youtube.list-group-item-action.active{color:#fff;background-color:#900;border-color:#900}.list-group-item-vimeo{color:#106e8c;background-color:#d1f1fb}.list-group-item-vimeo.list-group-item-action:focus,.list-group-item-vimeo.list-group-item-action:hover{color:#106e8c;background-color:#bcd9e2}.list-group-item-vimeo.list-group-item-action.active{color:#fff;background-color:#106e8c;border-color:#106e8c}.list-group-item-dribbble{color:#8c2e52;background-color:#fbdbe7}.list-group-item-dribbble.list-group-item-action:focus,.list-group-item-dribbble.list-group-item-action:hover{color:#8c2e52;background-color:#e2c5d0}.list-group-item-dribbble.list-group-item-action.active{color:#fff;background-color:#8c2e52;border-color:#8c2e52}.list-group-item-github{color:#0e0e0e;background-color:#d1d1d1}.list-group-item-github.list-group-item-action:focus,.list-group-item-github.list-group-item-action:hover{color:#0e0e0e;background-color:#bcbcbc}.list-group-item-github.list-group-item-action.active{color:#fff;background-color:#0e0e0e;border-color:#0e0e0e}.list-group-item-instagram{color:#892639;background-color:#fad9df}.list-group-item-instagram.list-group-item-action:focus,.list-group-item-instagram.list-group-item-action:hover{color:#892639;background-color:#e1c3c9}.list-group-item-instagram.list-group-item-action.active{color:#fff;background-color:#892639;border-color:#892639}.list-group-item-pinterest{color:#710511;background-color:#f2ced2}.list-group-item-pinterest.list-group-item-action:focus,.list-group-item-pinterest.list-group-item-action:hover{color:#710511;background-color:#dab9bd}.list-group-item-pinterest.list-group-item-action.active{color:#fff;background-color:#710511;border-color:#710511}.list-group-item-vk{color:#3b4f65;background-color:#e0e6ee}.list-group-item-vk.list-group-item-action:focus,.list-group-item-vk.list-group-item-action:hover{color:#3b4f65;background-color:#cacfd6}.list-group-item-vk.list-group-item-action.active{color:#fff;background-color:#3b4f65;border-color:#3b4f65}.list-group-item-rss{color:#996300;background-color:#ffedcc}.list-group-item-rss.list-group-item-action:focus,.list-group-item-rss.list-group-item-action:hover{color:#996300;background-color:#e6d5b8}.list-group-item-rss.list-group-item-action.active{color:#fff;background-color:#996300;border-color:#996300}.list-group-item-flickr{color:#003b84;background-color:#cce0f8}.list-group-item-flickr.list-group-item-action:focus,.list-group-item-flickr.list-group-item-action:hover{color:#003b84;background-color:#b8cadf}.list-group-item-flickr.list-group-item-action.active{color:#fff;background-color:#003b84;border-color:#003b84}.list-group-item-bitbucket{color:#00317a;background-color:#ccdcf5}.list-group-item-bitbucket.list-group-item-action:focus,.list-group-item-bitbucket.list-group-item-action:hover{color:#00317a;background-color:#b8c6dd}.list-group-item-bitbucket.list-group-item-action.active{color:#fff;background-color:#00317a;border-color:#00317a}.list-group-item-tabler{color:#134076;background-color:#d2e1f3}.list-group-item-tabler.list-group-item-action:focus,.list-group-item-tabler.list-group-item-action:hover{color:#134076;background-color:#bdcbdb}.list-group-item-tabler.list-group-item-action.active{color:#fff;background-color:#134076;border-color:#134076}.btn-close{box-sizing:content-box;width:.75rem;height:.75rem;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/.75rem auto no-repeat;border:0;border-radius:4px;opacity:.3}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{--tblr-toast-padding-x:0.75rem;--tblr-toast-padding-y:0.5rem;--tblr-toast-spacing:1.5rem;--tblr-toast-max-width:350px;--tblr-toast-font-size:0.875rem;--tblr-toast-bg:rgba(255, 255, 255, 0.85);--tblr-toast-border-width:1px;--tblr-toast-border-color:#e6e7e9;--tblr-toast-border-radius:4px;--tblr-toast-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--tblr-toast-header-color:#626976;--tblr-toast-header-bg:rgba(255, 255, 255, 0.85);--tblr-toast-header-border-color:rgba(0, 0, 0, 0.05);width:var(--tblr-toast-max-width);max-width:100%;font-size:var(--tblr-toast-font-size);color:var(--tblr-toast-color);pointer-events:auto;background-color:var(--tblr-toast-bg);background-clip:padding-box;border:var(--tblr-toast-border-width) solid var(--tblr-toast-border-color);box-shadow:var(--tblr-toast-box-shadow);border-radius:var(--tblr-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{position:absolute;z-index:1090;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--tblr-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--tblr-toast-padding-y) var(--tblr-toast-padding-x);color:var(--tblr-toast-header-color);background-color:var(--tblr-toast-header-bg);background-clip:padding-box;border-bottom:var(--tblr-toast-border-width) solid var(--tblr-toast-header-border-color);border-top-left-radius:calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width));border-top-right-radius:calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width))}.toast-header .btn-close{margin-right:calc(var(--tblr-toast-padding-x) * -.5);margin-left:var(--tblr-toast-padding-x)}.toast-body{padding:var(--tblr-toast-padding-x);word-wrap:break-word}.modal{--tblr-modal-zindex:1055;--tblr-modal-width:540px;--tblr-modal-padding:1.5rem;--tblr-modal-margin:0.5rem;--tblr-modal-bg:#fafbfc;--tblr-modal-border-color:transparent;--tblr-modal-border-width:1px;--tblr-modal-border-radius:4px;--tblr-modal-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--tblr-modal-inner-border-radius:3px;--tblr-modal-header-padding-x:1.5rem;--tblr-modal-header-padding-y:1.5rem;--tblr-modal-header-padding:1.5rem;--tblr-modal-header-border-color:#e6e7e9;--tblr-modal-header-border-width:1px;--tblr-modal-title-line-height:1.4285714286;--tblr-modal-footer-gap:0.75rem;--tblr-modal-footer-border-color:#e6e7e9;--tblr-modal-footer-border-width:0;position:fixed;top:0;left:0;z-index:var(--tblr-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--tblr-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-1rem)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--tblr-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--tblr-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--tblr-modal-color);pointer-events:auto;background-color:var(--tblr-modal-bg);background-clip:padding-box;border:var(--tblr-modal-border-width) solid var(--tblr-modal-border-color);border-radius:var(--tblr-modal-border-radius);outline:0}.modal-backdrop{--tblr-backdrop-zindex:1050;--tblr-backdrop-bg:#1e293b;--tblr-backdrop-opacity:0.24;position:fixed;top:0;left:0;z-index:var(--tblr-backdrop-zindex);width:100vw;height:100vh;background-color:var(--tblr-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--tblr-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--tblr-modal-header-padding);border-bottom:var(--tblr-modal-header-border-width) solid var(--tblr-modal-header-border-color);border-top-left-radius:var(--tblr-modal-inner-border-radius);border-top-right-radius:var(--tblr-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--tblr-modal-header-padding-y) * .5) calc(var(--tblr-modal-header-padding-x) * .5);margin:calc(var(--tblr-modal-header-padding-y) * -.5) calc(var(--tblr-modal-header-padding-x) * -.5) calc(var(--tblr-modal-header-padding-y) * -.5) auto}.modal-title{margin-bottom:0;line-height:var(--tblr-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--tblr-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--tblr-modal-padding) - var(--tblr-modal-footer-gap) * .5);background-color:var(--tblr-modal-footer-bg);border-top:var(--tblr-modal-footer-border-width) solid var(--tblr-modal-footer-border-color);border-bottom-right-radius:var(--tblr-modal-inner-border-radius);border-bottom-left-radius:var(--tblr-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--tblr-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--tblr-modal-margin:1.75rem;--tblr-modal-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--tblr-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--tblr-modal-width:380px}}@media (min-width:992px){.modal-lg,.modal-xl{--tblr-modal-width:720px}}@media (min-width:1200px){.modal-xl{--tblr-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--tblr-tooltip-zindex:1080;--tblr-tooltip-max-width:200px;--tblr-tooltip-padding-x:0.5rem;--tblr-tooltip-padding-y:0.25rem;--tblr-tooltip-font-size:0.765625rem;--tblr-tooltip-color:#ffffff;--tblr-tooltip-bg:#000000;--tblr-tooltip-border-radius:4px;--tblr-tooltip-opacity:0.9;--tblr-tooltip-arrow-width:0.8rem;--tblr-tooltip-arrow-height:0.4rem;z-index:var(--tblr-tooltip-zindex);display:block;padding:var(--tblr-tooltip-arrow-height);margin:var(--tblr-tooltip-margin);font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--tblr-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--tblr-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--tblr-tooltip-arrow-width);height:var(--tblr-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * .5) 0;border-top-color:var(--tblr-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:var(--tblr-tooltip-arrow-height);height:var(--tblr-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * .5) 0;border-right-color:var(--tblr-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height);border-bottom-color:var(--tblr-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:var(--tblr-tooltip-arrow-height);height:var(--tblr-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--tblr-tooltip-arrow-width) * .5) 0 calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height);border-left-color:var(--tblr-tooltip-bg)}.tooltip-inner{max-width:var(--tblr-tooltip-max-width);padding:var(--tblr-tooltip-padding-y) var(--tblr-tooltip-padding-x);color:var(--tblr-tooltip-color);text-align:center;background-color:var(--tblr-tooltip-bg);border-radius:var(--tblr-tooltip-border-radius)}.popover{--tblr-popover-zindex:1070;--tblr-popover-max-width:276px;--tblr-popover-font-size:0.765625rem;--tblr-popover-bg:#ffffff;--tblr-popover-border-width:1px;--tblr-popover-border-color:#e6e7e9;--tblr-popover-border-radius:8px;--tblr-popover-inner-border-radius:7px;--tblr-popover-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--tblr-popover-header-padding-x:1rem;--tblr-popover-header-padding-y:0.5rem;--tblr-popover-header-font-size:0.875rem;--tblr-popover-header-color:var(--tblr-heading-color);--tblr-popover-header-bg:#f0f0f0;--tblr-popover-body-padding-x:1rem;--tblr-popover-body-padding-y:1rem;--tblr-popover-body-color:#1e293b;--tblr-popover-arrow-width:1rem;--tblr-popover-arrow-height:0.5rem;--tblr-popover-arrow-border:var(--tblr-popover-border-color);z-index:var(--tblr-popover-zindex);display:block;max-width:var(--tblr-popover-max-width);font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--tblr-popover-font-size);word-wrap:break-word;background-color:var(--tblr-popover-bg);background-clip:padding-box;border:var(--tblr-popover-border-width) solid var(--tblr-popover-border-color);border-radius:var(--tblr-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--tblr-popover-arrow-width);height:var(--tblr-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--tblr-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--tblr-popover-border-width);border-top-color:var(--tblr-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width));width:var(--tblr-popover-arrow-height);height:var(--tblr-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--tblr-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--tblr-popover-border-width);border-right-color:var(--tblr-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--tblr-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--tblr-popover-border-width);border-bottom-color:var(--tblr-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--tblr-popover-arrow-width);margin-left:calc(var(--tblr-popover-arrow-width) * -.5);content:"";border-bottom:var(--tblr-popover-border-width) solid var(--tblr-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width));width:var(--tblr-popover-arrow-height);height:var(--tblr-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--tblr-popover-arrow-width) * .5) 0 calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--tblr-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--tblr-popover-border-width);border-left-color:var(--tblr-popover-bg)}.popover-header{padding:var(--tblr-popover-header-padding-y) var(--tblr-popover-header-padding-x);margin-bottom:0;font-size:var(--tblr-popover-header-font-size);color:var(--tblr-popover-header-color);background-color:var(--tblr-popover-header-bg);border-bottom:var(--tblr-popover-border-width) solid var(--tblr-popover-border-color);border-top-left-radius:var(--tblr-popover-inner-border-radius);border-top-right-radius:var(--tblr-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--tblr-popover-body-padding-y) var(--tblr-popover-body-padding-x);color:var(--tblr-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:1.5rem;height:1.5rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='15 18 9 12 15 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='9 18 15 12 9 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--tblr-spinner-width);height:var(--tblr-spinner-height);vertical-align:var(--tblr-spinner-vertical-align);border-radius:50%;-webkit-animation:var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name);animation:var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name)}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--tblr-spinner-width:1.5rem;--tblr-spinner-height:1.5rem;--tblr-spinner-vertical-align:-0.125em;--tblr-spinner-border-width:2px;--tblr-spinner-animation-speed:0.75s;--tblr-spinner-animation-name:spinner-border;border:var(--tblr-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--tblr-spinner-width:1rem;--tblr-spinner-height:1rem;--tblr-spinner-border-width:0.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--tblr-spinner-width:1.5rem;--tblr-spinner-height:1.5rem;--tblr-spinner-vertical-align:-0.125em;--tblr-spinner-animation-speed:0.75s;--tblr-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--tblr-spinner-width:1rem;--tblr-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--tblr-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--tblr-offcanvas-width:400px;--tblr-offcanvas-height:30vh;--tblr-offcanvas-padding-x:1.5rem;--tblr-offcanvas-padding-y:1.5rem;--tblr-offcanvas-bg:#fafbfc;--tblr-offcanvas-border-width:1px;--tblr-offcanvas-border-color:rgba(98, 105, 118, 0.16);--tblr-offcanvas-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075)}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:575.98px){.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}}@media (max-width:575.98px){.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:767.98px){.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}}@media (max-width:767.98px){.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:991.98px){.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}}@media (max-width:991.98px){.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1199.98px){.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}}@media (max-width:1199.98px){.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}}@media (max-width:1399.98px){.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#1e293b}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.24}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--tblr-offcanvas-padding-y) * .5) calc(var(--tblr-offcanvas-padding-x) * .5);margin-top:calc(var(--tblr-offcanvas-padding-y) * -.5);margin-right:calc(var(--tblr-offcanvas-padding-x) * -.5);margin-bottom:calc(var(--tblr-offcanvas-padding-y) * -.5)}.offcanvas-title{margin-bottom:0;line-height:1.4285714286}.offcanvas-body{flex-grow:1;padding:var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.2}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.1}}@keyframes placeholder-glow{50%{opacity:.1}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fafbfc!important;background-color:RGBA(32,107,196,var(--tblr-bg-opacity,1))!important}.text-bg-secondary{color:#fafbfc!important;background-color:RGBA(98,105,118,var(--tblr-bg-opacity,1))!important}.text-bg-success{color:#fafbfc!important;background-color:RGBA(47,179,68,var(--tblr-bg-opacity,1))!important}.text-bg-info{color:#fafbfc!important;background-color:RGBA(66,153,225,var(--tblr-bg-opacity,1))!important}.text-bg-warning{color:#fafbfc!important;background-color:RGBA(247,103,7,var(--tblr-bg-opacity,1))!important}.text-bg-danger{color:#fafbfc!important;background-color:RGBA(214,57,57,var(--tblr-bg-opacity,1))!important}.text-bg-light{color:#1e293b!important;background-color:RGBA(250,251,252,var(--tblr-bg-opacity,1))!important}.text-bg-dark{color:#fafbfc!important;background-color:RGBA(30,41,59,var(--tblr-bg-opacity,1))!important}.text-bg-muted{color:#fafbfc!important;background-color:RGBA(98,105,118,var(--tblr-bg-opacity,1))!important}.text-bg-blue{color:#fafbfc!important;background-color:RGBA(32,107,196,var(--tblr-bg-opacity,1))!important}.text-bg-azure{color:#fafbfc!important;background-color:RGBA(66,153,225,var(--tblr-bg-opacity,1))!important}.text-bg-indigo{color:#fafbfc!important;background-color:RGBA(66,99,235,var(--tblr-bg-opacity,1))!important}.text-bg-purple{color:#fafbfc!important;background-color:RGBA(174,62,201,var(--tblr-bg-opacity,1))!important}.text-bg-pink{color:#fafbfc!important;background-color:RGBA(214,51,108,var(--tblr-bg-opacity,1))!important}.text-bg-red{color:#fafbfc!important;background-color:RGBA(214,57,57,var(--tblr-bg-opacity,1))!important}.text-bg-orange{color:#fafbfc!important;background-color:RGBA(247,103,7,var(--tblr-bg-opacity,1))!important}.text-bg-yellow{color:#fafbfc!important;background-color:RGBA(245,159,0,var(--tblr-bg-opacity,1))!important}.text-bg-lime{color:#fafbfc!important;background-color:RGBA(116,184,22,var(--tblr-bg-opacity,1))!important}.text-bg-green{color:#fafbfc!important;background-color:RGBA(47,179,68,var(--tblr-bg-opacity,1))!important}.text-bg-teal{color:#fafbfc!important;background-color:RGBA(12,166,120,var(--tblr-bg-opacity,1))!important}.text-bg-cyan{color:#fafbfc!important;background-color:RGBA(23,162,184,var(--tblr-bg-opacity,1))!important}.text-bg-facebook{color:#fafbfc!important;background-color:RGBA(59,89,152,var(--tblr-bg-opacity,1))!important}.text-bg-twitter{color:#fafbfc!important;background-color:RGBA(29,161,242,var(--tblr-bg-opacity,1))!important}.text-bg-linkedin{color:#fafbfc!important;background-color:RGBA(10,102,194,var(--tblr-bg-opacity,1))!important}.text-bg-google{color:#fafbfc!important;background-color:RGBA(220,78,65,var(--tblr-bg-opacity,1))!important}.text-bg-youtube{color:#fafbfc!important;background-color:RGBA(255,0,0,var(--tblr-bg-opacity,1))!important}.text-bg-vimeo{color:#fafbfc!important;background-color:RGBA(26,183,234,var(--tblr-bg-opacity,1))!important}.text-bg-dribbble{color:#fafbfc!important;background-color:RGBA(234,76,137,var(--tblr-bg-opacity,1))!important}.text-bg-github{color:#fafbfc!important;background-color:RGBA(24,23,23,var(--tblr-bg-opacity,1))!important}.text-bg-instagram{color:#fafbfc!important;background-color:RGBA(228,64,95,var(--tblr-bg-opacity,1))!important}.text-bg-pinterest{color:#fafbfc!important;background-color:RGBA(189,8,28,var(--tblr-bg-opacity,1))!important}.text-bg-vk{color:#fafbfc!important;background-color:RGBA(99,131,168,var(--tblr-bg-opacity,1))!important}.text-bg-rss{color:#fafbfc!important;background-color:RGBA(255,165,0,var(--tblr-bg-opacity,1))!important}.text-bg-flickr{color:#fafbfc!important;background-color:RGBA(0,99,220,var(--tblr-bg-opacity,1))!important}.text-bg-bitbucket{color:#fafbfc!important;background-color:RGBA(0,82,204,var(--tblr-bg-opacity,1))!important}.text-bg-tabler{color:#fafbfc!important;background-color:RGBA(32,107,196,var(--tblr-bg-opacity,1))!important}.link-primary{color:#206bc4!important}.link-primary:focus,.link-primary:hover{color:#1a569d!important}.link-secondary{color:#626976!important}.link-secondary:focus,.link-secondary:hover{color:#4e545e!important}.link-success{color:#2fb344!important}.link-success:focus,.link-success:hover{color:#268f36!important}.link-info{color:#4299e1!important}.link-info:focus,.link-info:hover{color:#357ab4!important}.link-warning{color:#f76707!important}.link-warning:focus,.link-warning:hover{color:#c65206!important}.link-danger{color:#d63939!important}.link-danger:focus,.link-danger:hover{color:#ab2e2e!important}.link-light{color:#fafbfc!important}.link-light:focus,.link-light:hover{color:#fbfcfd!important}.link-dark{color:#1e293b!important}.link-dark:focus,.link-dark:hover{color:#18212f!important}.link-muted{color:#626976!important}.link-muted:focus,.link-muted:hover{color:#4e545e!important}.link-blue{color:#206bc4!important}.link-blue:focus,.link-blue:hover{color:#1a569d!important}.link-azure{color:#4299e1!important}.link-azure:focus,.link-azure:hover{color:#357ab4!important}.link-indigo{color:#4263eb!important}.link-indigo:focus,.link-indigo:hover{color:#354fbc!important}.link-purple{color:#ae3ec9!important}.link-purple:focus,.link-purple:hover{color:#8b32a1!important}.link-pink{color:#d6336c!important}.link-pink:focus,.link-pink:hover{color:#ab2956!important}.link-red{color:#d63939!important}.link-red:focus,.link-red:hover{color:#ab2e2e!important}.link-orange{color:#f76707!important}.link-orange:focus,.link-orange:hover{color:#c65206!important}.link-yellow{color:#f59f00!important}.link-yellow:focus,.link-yellow:hover{color:#c47f00!important}.link-lime{color:#74b816!important}.link-lime:focus,.link-lime:hover{color:#5d9312!important}.link-green{color:#2fb344!important}.link-green:focus,.link-green:hover{color:#268f36!important}.link-teal{color:#0ca678!important}.link-teal:focus,.link-teal:hover{color:#0a8560!important}.link-cyan{color:#17a2b8!important}.link-cyan:focus,.link-cyan:hover{color:#128293!important}.link-facebook{color:#3b5998!important}.link-facebook:focus,.link-facebook:hover{color:#2f477a!important}.link-twitter{color:#1da1f2!important}.link-twitter:focus,.link-twitter:hover{color:#1781c2!important}.link-linkedin{color:#0a66c2!important}.link-linkedin:focus,.link-linkedin:hover{color:#08529b!important}.link-google{color:#dc4e41!important}.link-google:focus,.link-google:hover{color:#b03e34!important}.link-youtube{color:red!important}.link-youtube:focus,.link-youtube:hover{color:#c00!important}.link-vimeo{color:#1ab7ea!important}.link-vimeo:focus,.link-vimeo:hover{color:#1592bb!important}.link-dribbble{color:#ea4c89!important}.link-dribbble:focus,.link-dribbble:hover{color:#bb3d6e!important}.link-github{color:#181717!important}.link-github:focus,.link-github:hover{color:#131212!important}.link-instagram{color:#e4405f!important}.link-instagram:focus,.link-instagram:hover{color:#b6334c!important}.link-pinterest{color:#bd081c!important}.link-pinterest:focus,.link-pinterest:hover{color:#970616!important}.link-vk{color:#6383a8!important}.link-vk:focus,.link-vk:hover{color:#4f6986!important}.link-rss{color:orange!important}.link-rss:focus,.link-rss:hover{color:#cc8400!important}.link-flickr{color:#0063dc!important}.link-flickr:focus,.link-flickr:hover{color:#004fb0!important}.link-bitbucket{color:#0052cc!important}.link-bitbucket:focus,.link-bitbucket:hover{color:#0042a3!important}.link-tabler{color:#206bc4!important}.link-tabler:focus,.link-tabler:hover{color:#1a569d!important}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--tblr-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--tblr-aspect-ratio:100%}.ratio-4x3{--tblr-aspect-ratio:75%}.ratio-3x4{--tblr-aspect-ratio:133.3333333333%}.ratio-16x9{--tblr-aspect-ratio:56.25%}.ratio-9x16{--tblr-aspect-ratio:177.7777777778%}.ratio-21x9{--tblr-aspect-ratio:42.8571428571%}.ratio-9x21{--tblr-aspect-ratio:233.3333333333%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.16}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid rgba(98,105,118,.16)!important}.border-wide{border:2px solid rgba(98,105,118,.16)!important}.border-0{border:0!important}.border-top{border-top:1px solid rgba(98,105,118,.16)!important}.border-top-wide{border-top:2px solid rgba(98,105,118,.16)!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid rgba(98,105,118,.16)!important}.border-end-wide{border-right:2px solid rgba(98,105,118,.16)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid rgba(98,105,118,.16)!important}.border-bottom-wide{border-bottom:2px solid rgba(98,105,118,.16)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid rgba(98,105,118,.16)!important}.border-start-wide{border-left:2px solid rgba(98,105,118,.16)!important}.border-start-0{border-left:0!important}.border-primary{--tblr-border-opacity:1;border-color:rgba(var(--tblr-primary-rgb),var(--tblr-border-opacity))!important}.border-secondary{--tblr-border-opacity:1;border-color:rgba(var(--tblr-secondary-rgb),var(--tblr-border-opacity))!important}.border-success{--tblr-border-opacity:1;border-color:rgba(var(--tblr-success-rgb),var(--tblr-border-opacity))!important}.border-info{--tblr-border-opacity:1;border-color:rgba(var(--tblr-info-rgb),var(--tblr-border-opacity))!important}.border-warning{--tblr-border-opacity:1;border-color:rgba(var(--tblr-warning-rgb),var(--tblr-border-opacity))!important}.border-danger{--tblr-border-opacity:1;border-color:rgba(var(--tblr-danger-rgb),var(--tblr-border-opacity))!important}.border-light{--tblr-border-opacity:1;border-color:rgba(var(--tblr-light-rgb),var(--tblr-border-opacity))!important}.border-dark{--tblr-border-opacity:1;border-color:rgba(var(--tblr-dark-rgb),var(--tblr-border-opacity))!important}.border-muted{--tblr-border-opacity:1;border-color:rgba(var(--tblr-muted-rgb),var(--tblr-border-opacity))!important}.border-blue{--tblr-border-opacity:1;border-color:rgba(var(--tblr-blue-rgb),var(--tblr-border-opacity))!important}.border-azure{--tblr-border-opacity:1;border-color:rgba(var(--tblr-azure-rgb),var(--tblr-border-opacity))!important}.border-indigo{--tblr-border-opacity:1;border-color:rgba(var(--tblr-indigo-rgb),var(--tblr-border-opacity))!important}.border-purple{--tblr-border-opacity:1;border-color:rgba(var(--tblr-purple-rgb),var(--tblr-border-opacity))!important}.border-pink{--tblr-border-opacity:1;border-color:rgba(var(--tblr-pink-rgb),var(--tblr-border-opacity))!important}.border-red{--tblr-border-opacity:1;border-color:rgba(var(--tblr-red-rgb),var(--tblr-border-opacity))!important}.border-orange{--tblr-border-opacity:1;border-color:rgba(var(--tblr-orange-rgb),var(--tblr-border-opacity))!important}.border-yellow{--tblr-border-opacity:1;border-color:rgba(var(--tblr-yellow-rgb),var(--tblr-border-opacity))!important}.border-lime{--tblr-border-opacity:1;border-color:rgba(var(--tblr-lime-rgb),var(--tblr-border-opacity))!important}.border-green{--tblr-border-opacity:1;border-color:rgba(var(--tblr-green-rgb),var(--tblr-border-opacity))!important}.border-teal{--tblr-border-opacity:1;border-color:rgba(var(--tblr-teal-rgb),var(--tblr-border-opacity))!important}.border-cyan{--tblr-border-opacity:1;border-color:rgba(var(--tblr-cyan-rgb),var(--tblr-border-opacity))!important}.border-facebook{--tblr-border-opacity:1;border-color:rgba(var(--tblr-facebook-rgb),var(--tblr-border-opacity))!important}.border-twitter{--tblr-border-opacity:1;border-color:rgba(var(--tblr-twitter-rgb),var(--tblr-border-opacity))!important}.border-linkedin{--tblr-border-opacity:1;border-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-border-opacity))!important}.border-google{--tblr-border-opacity:1;border-color:rgba(var(--tblr-google-rgb),var(--tblr-border-opacity))!important}.border-youtube{--tblr-border-opacity:1;border-color:rgba(var(--tblr-youtube-rgb),var(--tblr-border-opacity))!important}.border-vimeo{--tblr-border-opacity:1;border-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-border-opacity))!important}.border-dribbble{--tblr-border-opacity:1;border-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-border-opacity))!important}.border-github{--tblr-border-opacity:1;border-color:rgba(var(--tblr-github-rgb),var(--tblr-border-opacity))!important}.border-instagram{--tblr-border-opacity:1;border-color:rgba(var(--tblr-instagram-rgb),var(--tblr-border-opacity))!important}.border-pinterest{--tblr-border-opacity:1;border-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-border-opacity))!important}.border-vk{--tblr-border-opacity:1;border-color:rgba(var(--tblr-vk-rgb),var(--tblr-border-opacity))!important}.border-rss{--tblr-border-opacity:1;border-color:rgba(var(--tblr-rss-rgb),var(--tblr-border-opacity))!important}.border-flickr{--tblr-border-opacity:1;border-color:rgba(var(--tblr-flickr-rgb),var(--tblr-border-opacity))!important}.border-bitbucket{--tblr-border-opacity:1;border-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-border-opacity))!important}.border-tabler{--tblr-border-opacity:1;border-color:rgba(var(--tblr-tabler-rgb),var(--tblr-border-opacity))!important}.border-white{--tblr-border-opacity:1;border-color:rgba(var(--tblr-white-rgb),var(--tblr-border-opacity))!important}.border-1{--tblr-border-width:1px}.border-2{--tblr-border-width:2px}.border-3{--tblr-border-width:3px}.border-4{--tblr-border-width:4px}.border-5{--tblr-border-width:5px}.border-opacity-10{--tblr-border-opacity:0.1}.border-opacity-25{--tblr-border-opacity:0.25}.border-opacity-50{--tblr-border-opacity:0.5}.border-opacity-75{--tblr-border-opacity:0.75}.border-opacity-100{--tblr-border-opacity:1}.w-0{width:0!important}.w-1{width:.25rem!important}.w-2{width:.5rem!important}.w-3{width:1rem!important}.w-4{width:2rem!important}.w-5{width:4rem!important}.w-25{width:25%!important}.w-33{width:33.33333%!important}.w-50{width:50%!important}.w-66{width:66.66666%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-0{height:0!important}.h-1{height:.25rem!important}.h-2{height:.5rem!important}.h-3{height:1rem!important}.h-4{height:2rem!important}.h-5{height:4rem!important}.h-25{height:25%!important}.h-33{height:33.33333%!important}.h-50{height:50%!important}.h-66{height:66.66666%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:2rem!important}.m-5{margin:4rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:2rem!important;margin-left:2rem!important}.mx-5{margin-right:4rem!important;margin-left:4rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:2rem!important}.mt-5{margin-top:4rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:2rem!important}.me-5{margin-right:4rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:2rem!important}.mb-5{margin-bottom:4rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:2rem!important}.ms-5{margin-left:4rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:2rem!important}.p-5{padding:4rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:2rem!important;padding-left:2rem!important}.px-5{padding-right:4rem!important;padding-left:4rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:2rem!important}.pt-5{padding-top:4rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:2rem!important}.pe-5{padding-right:4rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:2rem!important}.pb-5{padding-bottom:4rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:2rem!important}.ps-5{padding-left:4rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:2rem!important}.gap-5{gap:4rem!important}.font-monospace{font-family:var(--tblr-font-monospace)!important}.fs-1{font-size:1.5rem!important}.fs-2{font-size:1.25rem!important}.fs-3{font-size:1rem!important}.fs-4{font-size:.875rem!important}.fs-5{font-size:.75rem!important}.fs-6{font-size:.625rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:600!important}.fw-semibold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.1428571429!important}.lh-base{line-height:1.4285714286!important}.lh-lg{line-height:1.7142857143!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--tblr-text-opacity:1;color:rgba(var(--tblr-primary-rgb),var(--tblr-text-opacity))!important}.text-secondary{--tblr-text-opacity:1;color:rgba(var(--tblr-secondary-rgb),var(--tblr-text-opacity))!important}.text-success{--tblr-text-opacity:1;color:rgba(var(--tblr-success-rgb),var(--tblr-text-opacity))!important}.text-info{--tblr-text-opacity:1;color:rgba(var(--tblr-info-rgb),var(--tblr-text-opacity))!important}.text-warning{--tblr-text-opacity:1;color:rgba(var(--tblr-warning-rgb),var(--tblr-text-opacity))!important}.text-danger{--tblr-text-opacity:1;color:rgba(var(--tblr-danger-rgb),var(--tblr-text-opacity))!important}.text-light{--tblr-text-opacity:1;color:rgba(var(--tblr-light-rgb),var(--tblr-text-opacity))!important}.text-dark{--tblr-text-opacity:1;color:rgba(var(--tblr-dark-rgb),var(--tblr-text-opacity))!important}.text-muted{--tblr-text-opacity:1;color:#626976!important}.text-blue{--tblr-text-opacity:1;color:rgba(var(--tblr-blue-rgb),var(--tblr-text-opacity))!important}.text-azure{--tblr-text-opacity:1;color:rgba(var(--tblr-azure-rgb),var(--tblr-text-opacity))!important}.text-indigo{--tblr-text-opacity:1;color:rgba(var(--tblr-indigo-rgb),var(--tblr-text-opacity))!important}.text-purple{--tblr-text-opacity:1;color:rgba(var(--tblr-purple-rgb),var(--tblr-text-opacity))!important}.text-pink{--tblr-text-opacity:1;color:rgba(var(--tblr-pink-rgb),var(--tblr-text-opacity))!important}.text-red{--tblr-text-opacity:1;color:rgba(var(--tblr-red-rgb),var(--tblr-text-opacity))!important}.text-orange{--tblr-text-opacity:1;color:rgba(var(--tblr-orange-rgb),var(--tblr-text-opacity))!important}.text-yellow{--tblr-text-opacity:1;color:rgba(var(--tblr-yellow-rgb),var(--tblr-text-opacity))!important}.text-lime{--tblr-text-opacity:1;color:rgba(var(--tblr-lime-rgb),var(--tblr-text-opacity))!important}.text-green{--tblr-text-opacity:1;color:rgba(var(--tblr-green-rgb),var(--tblr-text-opacity))!important}.text-teal{--tblr-text-opacity:1;color:rgba(var(--tblr-teal-rgb),var(--tblr-text-opacity))!important}.text-cyan{--tblr-text-opacity:1;color:rgba(var(--tblr-cyan-rgb),var(--tblr-text-opacity))!important}.text-facebook{--tblr-text-opacity:1;color:rgba(var(--tblr-facebook-rgb),var(--tblr-text-opacity))!important}.text-twitter{--tblr-text-opacity:1;color:rgba(var(--tblr-twitter-rgb),var(--tblr-text-opacity))!important}.text-linkedin{--tblr-text-opacity:1;color:rgba(var(--tblr-linkedin-rgb),var(--tblr-text-opacity))!important}.text-google{--tblr-text-opacity:1;color:rgba(var(--tblr-google-rgb),var(--tblr-text-opacity))!important}.text-youtube{--tblr-text-opacity:1;color:rgba(var(--tblr-youtube-rgb),var(--tblr-text-opacity))!important}.text-vimeo{--tblr-text-opacity:1;color:rgba(var(--tblr-vimeo-rgb),var(--tblr-text-opacity))!important}.text-dribbble{--tblr-text-opacity:1;color:rgba(var(--tblr-dribbble-rgb),var(--tblr-text-opacity))!important}.text-github{--tblr-text-opacity:1;color:rgba(var(--tblr-github-rgb),var(--tblr-text-opacity))!important}.text-instagram{--tblr-text-opacity:1;color:rgba(var(--tblr-instagram-rgb),var(--tblr-text-opacity))!important}.text-pinterest{--tblr-text-opacity:1;color:rgba(var(--tblr-pinterest-rgb),var(--tblr-text-opacity))!important}.text-vk{--tblr-text-opacity:1;color:rgba(var(--tblr-vk-rgb),var(--tblr-text-opacity))!important}.text-rss{--tblr-text-opacity:1;color:rgba(var(--tblr-rss-rgb),var(--tblr-text-opacity))!important}.text-flickr{--tblr-text-opacity:1;color:rgba(var(--tblr-flickr-rgb),var(--tblr-text-opacity))!important}.text-bitbucket{--tblr-text-opacity:1;color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-text-opacity))!important}.text-tabler{--tblr-text-opacity:1;color:rgba(var(--tblr-tabler-rgb),var(--tblr-text-opacity))!important}.text-black{--tblr-text-opacity:1;color:rgba(var(--tblr-black-rgb),var(--tblr-text-opacity))!important}.text-white{--tblr-text-opacity:1;color:rgba(var(--tblr-white-rgb),var(--tblr-text-opacity))!important}.text-body{--tblr-text-opacity:1;color:rgba(var(--tblr-body-color-rgb),var(--tblr-text-opacity))!important}.text-black-50{--tblr-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--tblr-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--tblr-text-opacity:1;color:inherit!important}.text-opacity-25{--tblr-text-opacity:0.25}.text-opacity-50{--tblr-text-opacity:0.5}.text-opacity-75{--tblr-text-opacity:0.75}.text-opacity-100{--tblr-text-opacity:1}.bg-primary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-primary-rgb),var(--tblr-bg-opacity))!important}.bg-secondary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-secondary-rgb),var(--tblr-bg-opacity))!important}.bg-success{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-success-rgb),var(--tblr-bg-opacity))!important}.bg-info{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-info-rgb),var(--tblr-bg-opacity))!important}.bg-warning{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-warning-rgb),var(--tblr-bg-opacity))!important}.bg-danger{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-danger-rgb),var(--tblr-bg-opacity))!important}.bg-light{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-light-rgb),var(--tblr-bg-opacity))!important}.bg-dark{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dark-rgb),var(--tblr-bg-opacity))!important}.bg-muted{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-muted-rgb),var(--tblr-bg-opacity))!important}.bg-blue{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-blue-rgb),var(--tblr-bg-opacity))!important}.bg-azure{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-azure-rgb),var(--tblr-bg-opacity))!important}.bg-indigo{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-indigo-rgb),var(--tblr-bg-opacity))!important}.bg-purple{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-purple-rgb),var(--tblr-bg-opacity))!important}.bg-pink{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-pink-rgb),var(--tblr-bg-opacity))!important}.bg-red{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-red-rgb),var(--tblr-bg-opacity))!important}.bg-orange{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-orange-rgb),var(--tblr-bg-opacity))!important}.bg-yellow{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-yellow-rgb),var(--tblr-bg-opacity))!important}.bg-lime{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-lime-rgb),var(--tblr-bg-opacity))!important}.bg-green{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-green-rgb),var(--tblr-bg-opacity))!important}.bg-teal{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-teal-rgb),var(--tblr-bg-opacity))!important}.bg-cyan{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-cyan-rgb),var(--tblr-bg-opacity))!important}.bg-facebook{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-facebook-rgb),var(--tblr-bg-opacity))!important}.bg-twitter{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-twitter-rgb),var(--tblr-bg-opacity))!important}.bg-linkedin{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-bg-opacity))!important}.bg-google{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-google-rgb),var(--tblr-bg-opacity))!important}.bg-youtube{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-youtube-rgb),var(--tblr-bg-opacity))!important}.bg-vimeo{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-bg-opacity))!important}.bg-dribbble{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-bg-opacity))!important}.bg-github{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-github-rgb),var(--tblr-bg-opacity))!important}.bg-instagram{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-instagram-rgb),var(--tblr-bg-opacity))!important}.bg-pinterest{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-bg-opacity))!important}.bg-vk{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-vk-rgb),var(--tblr-bg-opacity))!important}.bg-rss{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-rss-rgb),var(--tblr-bg-opacity))!important}.bg-flickr{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-flickr-rgb),var(--tblr-bg-opacity))!important}.bg-bitbucket{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-bg-opacity))!important}.bg-tabler{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-tabler-rgb),var(--tblr-bg-opacity))!important}.bg-black{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-black-rgb),var(--tblr-bg-opacity))!important}.bg-white{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-white-rgb),var(--tblr-bg-opacity))!important}.bg-body{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-body-bg-rgb),var(--tblr-bg-opacity))!important}.bg-transparent{--tblr-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--tblr-bg-opacity:0.1}.bg-opacity-25{--tblr-bg-opacity:0.25}.bg-opacity-50{--tblr-bg-opacity:0.5}.bg-opacity-75{--tblr-bg-opacity:0.75}.bg-opacity-100{--tblr-bg-opacity:1}.bg-gradient{background-image:var(--tblr-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--tblr-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--tblr-border-radius-sm)!important}.rounded-2{border-radius:var(--tblr-border-radius)!important}.rounded-3{border-radius:var(--tblr-border-radius-lg)!important}.rounded-4{border-radius:var(--tblr-border-radius-xl)!important}.rounded-5{border-radius:var(--tblr-border-radius-2xl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--tblr-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--tblr-border-radius)!important;border-top-right-radius:var(--tblr-border-radius)!important}.rounded-end{border-top-right-radius:var(--tblr-border-radius)!important;border-bottom-right-radius:var(--tblr-border-radius)!important}.rounded-bottom{border-bottom-right-radius:var(--tblr-border-radius)!important;border-bottom-left-radius:var(--tblr-border-radius)!important}.rounded-start{border-bottom-left-radius:var(--tblr-border-radius)!important;border-top-left-radius:var(--tblr-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.object-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-scale-down{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-none{-o-object-fit:none!important;object-fit:none!important}.tracking-tight{letter-spacing:-.05em!important}.tracking-normal{letter-spacing:0!important}.tracking-wide{letter-spacing:.05em!important}.cursor-auto{cursor:auto!important}.cursor-pointer{cursor:pointer!important}.cursor-move{cursor:move!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-zoom-in{cursor:zoom-in!important}.cursor-zoom-out{cursor:zoom-out!important}.cursor-default{cursor:default!important}.cursor-none{cursor:none!important}.cursor-help{cursor:help!important}.cursor-progress{cursor:progress!important}.cursor-wait{cursor:wait!important}.cursor-text{cursor:text!important}.cursor-v-text{cursor:vertical-text!important}.cursor-grab{cursor:-webkit-grab!important;cursor:grab!important}.cursor-grabbing{cursor:-webkit-grabbing!important;cursor:grabbing!important}.border-x{border-left:1px solid rgba(98,105,118,.16)!important;border-right:1px solid rgba(98,105,118,.16)!important}.border-x-wide{border-left:2px solid rgba(98,105,118,.16)!important;border-right:2px solid rgba(98,105,118,.16)!important}.border-x-0{border-left:0!important;border-right:0!important}.border-y{border-top:1px solid rgba(98,105,118,.16)!important;border-bottom:1px solid rgba(98,105,118,.16)!important}.border-y-wide{border-top:2px solid rgba(98,105,118,.16)!important;border-bottom:2px solid rgba(98,105,118,.16)!important}.border-y-0{border-top:0!important;border-bottom:0!important}.columns-2{-moz-columns:2!important;columns:2!important}.columns-3{-moz-columns:3!important;columns:3!important}.columns-4{-moz-columns:4!important;columns:4!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:2rem!important}.m-sm-5{margin:4rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:2rem!important;margin-left:2rem!important}.mx-sm-5{margin-right:4rem!important;margin-left:4rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-sm-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:2rem!important}.mt-sm-5{margin-top:4rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:2rem!important}.me-sm-5{margin-right:4rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:2rem!important}.mb-sm-5{margin-bottom:4rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:2rem!important}.ms-sm-5{margin-left:4rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:2rem!important}.p-sm-5{padding:4rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:2rem!important;padding-left:2rem!important}.px-sm-5{padding-right:4rem!important;padding-left:4rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-sm-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:2rem!important}.pt-sm-5{padding-top:4rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:2rem!important}.pe-sm-5{padding-right:4rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:2rem!important}.pb-sm-5{padding-bottom:4rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:2rem!important}.ps-sm-5{padding-left:4rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:2rem!important}.gap-sm-5{gap:4rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}.columns-sm-2{-moz-columns:2!important;columns:2!important}.columns-sm-3{-moz-columns:3!important;columns:3!important}.columns-sm-4{-moz-columns:4!important;columns:4!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:2rem!important}.m-md-5{margin:4rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:2rem!important;margin-left:2rem!important}.mx-md-5{margin-right:4rem!important;margin-left:4rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-md-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:2rem!important}.mt-md-5{margin-top:4rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:2rem!important}.me-md-5{margin-right:4rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:2rem!important}.mb-md-5{margin-bottom:4rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:2rem!important}.ms-md-5{margin-left:4rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:2rem!important}.p-md-5{padding:4rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:2rem!important;padding-left:2rem!important}.px-md-5{padding-right:4rem!important;padding-left:4rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-md-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:2rem!important}.pt-md-5{padding-top:4rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:2rem!important}.pe-md-5{padding-right:4rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:2rem!important}.pb-md-5{padding-bottom:4rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:2rem!important}.ps-md-5{padding-left:4rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:2rem!important}.gap-md-5{gap:4rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}.columns-md-2{-moz-columns:2!important;columns:2!important}.columns-md-3{-moz-columns:3!important;columns:3!important}.columns-md-4{-moz-columns:4!important;columns:4!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:2rem!important}.m-lg-5{margin:4rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:2rem!important;margin-left:2rem!important}.mx-lg-5{margin-right:4rem!important;margin-left:4rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-lg-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:2rem!important}.mt-lg-5{margin-top:4rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:2rem!important}.me-lg-5{margin-right:4rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:2rem!important}.mb-lg-5{margin-bottom:4rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:2rem!important}.ms-lg-5{margin-left:4rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:2rem!important}.p-lg-5{padding:4rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:2rem!important;padding-left:2rem!important}.px-lg-5{padding-right:4rem!important;padding-left:4rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-lg-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:2rem!important}.pt-lg-5{padding-top:4rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:2rem!important}.pe-lg-5{padding-right:4rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:2rem!important}.pb-lg-5{padding-bottom:4rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:2rem!important}.ps-lg-5{padding-left:4rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:2rem!important}.gap-lg-5{gap:4rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}.columns-lg-2{-moz-columns:2!important;columns:2!important}.columns-lg-3{-moz-columns:3!important;columns:3!important}.columns-lg-4{-moz-columns:4!important;columns:4!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:2rem!important}.m-xl-5{margin:4rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:2rem!important;margin-left:2rem!important}.mx-xl-5{margin-right:4rem!important;margin-left:4rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-xl-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:2rem!important}.mt-xl-5{margin-top:4rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:2rem!important}.me-xl-5{margin-right:4rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:2rem!important}.mb-xl-5{margin-bottom:4rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:2rem!important}.ms-xl-5{margin-left:4rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:2rem!important}.p-xl-5{padding:4rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:2rem!important;padding-left:2rem!important}.px-xl-5{padding-right:4rem!important;padding-left:4rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-xl-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:2rem!important}.pt-xl-5{padding-top:4rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:2rem!important}.pe-xl-5{padding-right:4rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:2rem!important}.pb-xl-5{padding-bottom:4rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:2rem!important}.ps-xl-5{padding-left:4rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:2rem!important}.gap-xl-5{gap:4rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}.columns-xl-2{-moz-columns:2!important;columns:2!important}.columns-xl-3{-moz-columns:3!important;columns:3!important}.columns-xl-4{-moz-columns:4!important;columns:4!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:2rem!important}.m-xxl-5{margin:4rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:2rem!important;margin-left:2rem!important}.mx-xxl-5{margin-right:4rem!important;margin-left:4rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-xxl-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:2rem!important}.mt-xxl-5{margin-top:4rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:2rem!important}.me-xxl-5{margin-right:4rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:2rem!important}.mb-xxl-5{margin-bottom:4rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:2rem!important}.ms-xxl-5{margin-left:4rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:2rem!important}.p-xxl-5{padding:4rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:2rem!important;padding-left:2rem!important}.px-xxl-5{padding-right:4rem!important;padding-left:4rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-xxl-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:2rem!important}.pt-xxl-5{padding-top:4rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:2rem!important}.pe-xxl-5{padding-right:4rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:2rem!important}.pb-xxl-5{padding-bottom:4rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:2rem!important}.ps-xxl-5{padding-left:4rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:2rem!important}.gap-xxl-5{gap:4rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}.columns-xxl-2{-moz-columns:2!important;columns:2!important}.columns-xxl-3{-moz-columns:3!important;columns:3!important}.columns-xxl-4{-moz-columns:4!important;columns:4!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root{font-size:16px;height:100%;--tblr-primary:#206bc4;--tblr-secondary:#626976;--tblr-success:#2fb344;--tblr-info:#4299e1;--tblr-warning:#f76707;--tblr-danger:#d63939;--tblr-light:#fafbfc;--tblr-dark:#1e293b;--tblr-muted:#626976;--tblr-blue:#206bc4;--tblr-azure:#4299e1;--tblr-indigo:#4263eb;--tblr-purple:#ae3ec9;--tblr-pink:#d6336c;--tblr-red:#d63939;--tblr-orange:#f76707;--tblr-yellow:#f59f00;--tblr-lime:#74b816;--tblr-green:#2fb344;--tblr-teal:#0ca678;--tblr-cyan:#17a2b8;--tblr-facebook:#3b5998;--tblr-twitter:#1da1f2;--tblr-linkedin:#0a66c2;--tblr-google:#dc4e41;--tblr-youtube:#ff0000;--tblr-vimeo:#1ab7ea;--tblr-dribbble:#ea4c89;--tblr-github:#181717;--tblr-instagram:#e4405f;--tblr-pinterest:#bd081c;--tblr-vk:#6383a8;--tblr-rss:#ffa500;--tblr-flickr:#0063dc;--tblr-bitbucket:#0052cc;--tblr-tabler:#206bc4;--tblr-primary-rgb:32,107,196;--tblr-secondary-rgb:98,105,118;--tblr-success-rgb:47,179,68;--tblr-info-rgb:66,153,225;--tblr-warning-rgb:247,103,7;--tblr-danger-rgb:214,57,57;--tblr-light-rgb:250,251,252;--tblr-dark-rgb:30,41,59;--tblr-muted-rgb:98,105,118;--tblr-blue-rgb:32,107,196;--tblr-azure-rgb:66,153,225;--tblr-indigo-rgb:66,99,235;--tblr-purple-rgb:174,62,201;--tblr-pink-rgb:214,51,108;--tblr-red-rgb:214,57,57;--tblr-orange-rgb:247,103,7;--tblr-yellow-rgb:245,159,0;--tblr-lime-rgb:116,184,22;--tblr-green-rgb:47,179,68;--tblr-teal-rgb:12,166,120;--tblr-cyan-rgb:23,162,184;--tblr-facebook-rgb:59,89,152;--tblr-twitter-rgb:29,161,242;--tblr-linkedin-rgb:10,102,194;--tblr-google-rgb:220,78,65;--tblr-youtube-rgb:255,0,0;--tblr-vimeo-rgb:26,183,234;--tblr-dribbble-rgb:234,76,137;--tblr-github-rgb:24,23,23;--tblr-instagram-rgb:228,64,95;--tblr-pinterest-rgb:189,8,28;--tblr-vk-rgb:99,131,168;--tblr-rss-rgb:255,165,0;--tblr-flickr-rgb:0,99,220;--tblr-bitbucket-rgb:0,82,204;--tblr-tabler-rgb:32,107,196;--tblr-card-bg:#ffffff;--tblr-card-bg-rgb:255,255,255;--tblr-border-color:#e6e7e9;--tblr-border-color-rgb:230,231,233;--tblr-border-color-light:#f2f3f4;--tblr-border-color-light-rgb:242,243,244}body{overflow-y:scroll;letter-spacing:0;touch-action:manipulation;text-rendering:optimizeLegibility;font-feature-settings:"liga" 0;position:relative;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media print{body{background:0 0}}::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){::-webkit-scrollbar{-webkit-transition:none;transition:none}}::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}::-webkit-scrollbar-corner{background:0 0}.layout-fluid .container,.layout-fluid [class*=" container-"],.layout-fluid [class^=container-]{max-width:100%}.layout-boxed{--tblr-theme-boxed-border-radius:0;--tblr-theme-boxed-width:1320px}@media (min-width:768px){.layout-boxed{background:#1e293b linear-gradient(to right,rgba(255,255,255,.1),transparent) fixed;padding:1rem;--tblr-theme-boxed-border-radius:4px}}.layout-boxed .page{margin:0 auto;max-width:var(--tblr-theme-boxed-width);border-radius:var(--tblr-theme-boxed-border-radius);color:#1e293b}@media (min-width:768px){.layout-boxed .page{border:1px solid var(--tblr-border-color);background:var(--tblr-body-bg)}}.layout-boxed .page>.navbar:first-child{border-top-left-radius:var(--tblr-theme-boxed-border-radius);border-top-right-radius:var(--tblr-theme-boxed-border-radius)}.navbar{align-items:stretch;min-height:3.5rem;background:0 0;color:#1e293b}.navbar-collapse .navbar{flex-grow:1}.navbar.collapsing{min-height:0}.navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar::-webkit-scrollbar-corner{background:0 0}.navbar .navbar-brand{color:#1e293b}.navbar .navbar-brand:focus,.navbar .navbar-brand:hover{color:#1e293b;opacity:.8}.navbar .navbar-nav .nav-link{color:#1e293b}.navbar .navbar-nav .nav-link:focus,.navbar .navbar-nav .nav-link:hover{color:#1e293b}.navbar .navbar-nav .nav-link.disabled{color:rgba(30,41,59,.3)}.navbar .navbar-nav .active>.nav-link,.navbar .navbar-nav .nav-link.active,.navbar .navbar-nav .nav-link.show,.navbar .navbar-nav .show>.nav-link{color:#1e293b}.navbar .navbar-toggler{color:#1e293b;border-color:transparent}.navbar .navbar-text{color:#1e293b}.navbar .navbar-text a,.navbar .navbar-text a:focus,.navbar .navbar-text a:hover{color:#1e293b}@media not print{.theme-dark .navbar{background:#1e293b;color:rgba(255,255,255,.7)}.theme-dark .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.theme-dark .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.theme-dark .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark .navbar .navbar-brand{color:#fff}.theme-dark .navbar .navbar-brand:focus,.theme-dark .navbar .navbar-brand:hover{color:#fff;opacity:.8}.theme-dark .navbar .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.theme-dark .navbar .navbar-nav .nav-link:focus,.theme-dark .navbar .navbar-nav .nav-link:hover{color:#fff}.theme-dark .navbar .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.theme-dark .navbar .navbar-nav .active>.nav-link,.theme-dark .navbar .navbar-nav .nav-link.active,.theme-dark .navbar .navbar-nav .nav-link.show,.theme-dark .navbar .navbar-nav .show>.nav-link{color:#fff}.theme-dark .navbar .navbar-toggler{color:#fff;border-color:transparent}.theme-dark .navbar .navbar-text{color:rgba(255,255,255,.7)}.theme-dark .navbar .navbar-text a,.theme-dark .navbar .navbar-text a:focus,.theme-dark .navbar .navbar-text a:hover{color:rgba(255,255,255,.7)}.theme-dark .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.theme-dark .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.theme-dark .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark .navbar .input-icon-addon{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.theme-dark .navbar .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::placeholder{color:rgba(250,251,252,.64)}}@media not print{@media (prefers-color-scheme:dark){.theme-dark-auto .navbar{background:#1e293b;color:rgba(255,255,255,.7)}.theme-dark-auto .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}.theme-dark-auto .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark-auto .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark-auto .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark-auto .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark-auto .navbar .navbar-brand{color:#fff}.theme-dark-auto .navbar .navbar-brand:focus,.theme-dark-auto .navbar .navbar-brand:hover{color:#fff;opacity:.8}.theme-dark-auto .navbar .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar .navbar-nav .nav-link:focus,.theme-dark-auto .navbar .navbar-nav .nav-link:hover{color:#fff}.theme-dark-auto .navbar .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.theme-dark-auto .navbar .navbar-nav .active>.nav-link,.theme-dark-auto .navbar .navbar-nav .nav-link.active,.theme-dark-auto .navbar .navbar-nav .nav-link.show,.theme-dark-auto .navbar .navbar-nav .show>.nav-link{color:#fff}.theme-dark-auto .navbar .navbar-toggler{color:#fff;border-color:transparent}.theme-dark-auto .navbar .navbar-text{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar .navbar-text a,.theme-dark-auto .navbar .navbar-text a:focus,.theme-dark-auto .navbar .navbar-text a:hover{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}.theme-dark-auto .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark-auto .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark-auto .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark-auto .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark-auto .navbar .input-icon-addon{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.theme-dark-auto .navbar .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::placeholder{color:rgba(250,251,252,.64)}}}@media (prefers-color-scheme:dark) and (prefers-reduced-motion:reduce){.theme-dark-auto .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}@media (prefers-color-scheme:dark) and (prefers-reduced-motion:reduce){.theme-dark-auto .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar .dropdown-menu{position:absolute;z-index:1030}.navbar .navbar-nav{min-height:3rem}.navbar .navbar-nav .nav-link{position:relative;min-width:2rem;min-height:2rem;justify-content:center;border-radius:4px}.navbar .navbar-nav .nav-link .badge{position:absolute;top:.375rem;right:.375rem;transform:translate(50%,-50%)}.navbar-nav{margin:0;padding:0}@media (max-width:575.98px){.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-sm .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:576px){.navbar-expand-sm .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-sm .navbar-dark .nav-item.active .nav-link,.navbar-expand-sm.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-sm .navbar-light .nav-item.active,.navbar-expand-sm.navbar-light .nav-item.active{position:relative}.navbar-expand-sm .navbar-light .nav-item.active:after,.navbar-expand-sm.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-sm .navbar-light.navbar-vertical,.navbar-expand-sm.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-sm .navbar-light.navbar-vertical.navbar-right,.navbar-expand-sm.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-sm.navbar-vertical~.navbar,.navbar-expand-sm.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-sm.navbar-vertical.navbar-right~.navbar,.navbar-expand-sm.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}@media (max-width:767.98px){.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-md .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:768px){.navbar-expand-md .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-md .navbar-dark .nav-item.active .nav-link,.navbar-expand-md.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-md .navbar-light .nav-item.active,.navbar-expand-md.navbar-light .nav-item.active{position:relative}.navbar-expand-md .navbar-light .nav-item.active:after,.navbar-expand-md.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-md .navbar-light.navbar-vertical,.navbar-expand-md.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-md .navbar-light.navbar-vertical.navbar-right,.navbar-expand-md.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-md.navbar-vertical~.navbar,.navbar-expand-md.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-md.navbar-vertical.navbar-right~.navbar,.navbar-expand-md.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}@media (max-width:991.98px){.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-lg .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:992px){.navbar-expand-lg .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-lg .navbar-dark .nav-item.active .nav-link,.navbar-expand-lg.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-lg .navbar-light .nav-item.active,.navbar-expand-lg.navbar-light .nav-item.active{position:relative}.navbar-expand-lg .navbar-light .nav-item.active:after,.navbar-expand-lg.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-lg .navbar-light.navbar-vertical,.navbar-expand-lg.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-lg .navbar-light.navbar-vertical.navbar-right,.navbar-expand-lg.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-lg.navbar-vertical~.navbar,.navbar-expand-lg.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-lg.navbar-vertical.navbar-right~.navbar,.navbar-expand-lg.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}@media (max-width:1199.98px){.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-xl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:1200px){.navbar-expand-xl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xl .navbar-dark .nav-item.active .nav-link,.navbar-expand-xl.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-xl .navbar-light .nav-item.active,.navbar-expand-xl.navbar-light .nav-item.active{position:relative}.navbar-expand-xl .navbar-light .nav-item.active:after,.navbar-expand-xl.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-xl .navbar-light.navbar-vertical,.navbar-expand-xl.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xl .navbar-light.navbar-vertical.navbar-right,.navbar-expand-xl.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xl.navbar-vertical~.navbar,.navbar-expand-xl.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-xl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xl.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}@media (max-width:1399.98px){.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:1400px){.navbar-expand-xxl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xxl .navbar-dark .nav-item.active .nav-link,.navbar-expand-xxl.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-xxl .navbar-light .nav-item.active,.navbar-expand-xxl.navbar-light .nav-item.active{position:relative}.navbar-expand-xxl .navbar-light .nav-item.active:after,.navbar-expand-xxl.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-xxl .navbar-light.navbar-vertical,.navbar-expand-xxl.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xxl .navbar-light.navbar-vertical.navbar-right,.navbar-expand-xxl.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xxl.navbar-vertical~.navbar,.navbar-expand-xxl.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand-xxl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xxl.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}}.navbar-expand .navbar-collapse{flex-direction:column}.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}.navbar-expand .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand .navbar-dark .nav-item.active .nav-link,.navbar-expand.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand .navbar-light .nav-item.active,.navbar-expand.navbar-light .nav-item.active{position:relative}.navbar-expand .navbar-light .nav-item.active:after,.navbar-expand.navbar-light .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand .navbar-light.navbar-vertical,.navbar-expand.navbar-light.navbar-vertical{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand .navbar-light.navbar-vertical.navbar-right,.navbar-expand.navbar-light.navbar-vertical.navbar-right{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand.navbar-vertical~.navbar,.navbar-expand.navbar-vertical~.page-wrapper{margin-left:15rem}.navbar-expand.navbar-vertical.navbar-right~.navbar,.navbar-expand.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:15rem}.navbar-brand{display:inline-flex;align-items:center;font-weight:600;margin:0}.navbar-brand-image{height:2rem;width:auto}.navbar-toggler{border:0;width:2rem;height:2rem;position:relative;display:flex;align-items:center;justify-content:center}.navbar-toggler-icon{height:2px;width:1.25em;background:currentColor;border-radius:10px;transition:top .2s .2s,bottom .2s .2s,transform .2s,opacity 0s .2s;position:relative}@media (prefers-reduced-motion:reduce){.navbar-toggler-icon{transition:none}}.navbar-toggler-icon:after,.navbar-toggler-icon:before{content:"";display:block;height:inherit;width:inherit;border-radius:inherit;background:inherit;position:absolute;left:0;transition:inherit}@media (prefers-reduced-motion:reduce){.navbar-toggler-icon:after,.navbar-toggler-icon:before{transition:none}}.navbar-toggler-icon:before{top:-.45em}.navbar-toggler-icon:after{bottom:-.45em}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transform:rotate(45deg);transition:top .3s,bottom .3s,transform .3s .3s,opacity 0s .3s}@media (prefers-reduced-motion:reduce){.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transition:none}}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:before{top:0;transform:rotate(-90deg)}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:after{bottom:0;opacity:0}.navbar-light{box-shadow:inset 0 -1px 0 0 rgba(98,105,118,.16);background-color:#fff}.navbar-dark{background:#1e293b;color:rgba(255,255,255,.7)}.navbar-dark::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar-dark::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar-dark::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar-dark::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar-dark:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar-dark::-webkit-scrollbar-corner{background:0 0}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff;opacity:.8}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#fff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:#fff;border-color:transparent}.navbar-dark .navbar-text{color:rgba(255,255,255,.7)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:rgba(255,255,255,.7)}.navbar-dark::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar-dark::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar-dark::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar-dark::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar-dark:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar-dark::-webkit-scrollbar-corner{background:0 0}.navbar-dark .input-icon-addon{color:rgba(250,251,252,.64)}.navbar-dark .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.navbar-dark .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::placeholder{color:rgba(250,251,252,.64)}.navbar-nav{align-items:stretch}.navbar-nav .nav-item{display:flex;flex-direction:column;justify-content:center}.navbar-side{margin:0;display:flex;flex-direction:row;align-items:center;justify-content:space-around}@media (min-width:576px){.navbar-vertical.navbar-expand-sm{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:576px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-sm{transition:none}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.navbar-right{left:auto;right:0}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-collapse{align-items:stretch}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-sm .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm~.page{padding-left:15rem}.navbar-vertical.navbar-expand-sm~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:768px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-md{transition:none}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.navbar-right{left:auto;right:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-collapse{align-items:stretch}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-md .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md~.page{padding-left:15rem}.navbar-vertical.navbar-expand-md~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:992px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-lg{transition:none}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.navbar-right{left:auto;right:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-collapse{align-items:stretch}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-lg .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg~.page{padding-left:15rem}.navbar-vertical.navbar-expand-lg~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:1200px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-xl{transition:none}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.navbar-right{left:auto;right:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-collapse{align-items:stretch}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl~.page{padding-left:15rem}.navbar-vertical.navbar-expand-xl~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:1400px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-xxl{transition:none}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl.navbar-right{left:auto;right:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-collapse{align-items:stretch}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xxl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl~.page{padding-left:15rem}.navbar-vertical.navbar-expand-xxl~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl.navbar-right~.page{padding-left:0;padding-right:15rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}.navbar-vertical.navbar-expand{width:15rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}@media (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand{transition:none}}.navbar-vertical.navbar-expand.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand~.page{padding-left:15rem}.navbar-vertical.navbar-expand~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand.navbar-right~.page{padding-left:0;padding-right:15rem}.navbar-vertical.navbar-expand .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:2.5rem;color:inherit}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:4rem}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:5.5rem}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}.navbar-overlap:after{content:"";height:9rem;position:absolute;top:100%;left:0;right:0;background:inherit;z-index:-1;box-shadow:inherit}.page{display:flex;flex-direction:column;position:relative;min-height:100vh}.page-center{justify-content:center}.page-wrapper{flex:1;display:flex;flex-direction:column}@media print{.page-wrapper{margin:0!important}}.page-wrapper-full .page-body:first-child{margin:0;border-top:0}.page-body{margin-top:1.25rem;margin-bottom:1.25rem}.page-body-card{background:#fff;border-top:1px solid rgba(98,105,118,.16);padding:1.25rem 0;margin-bottom:0;flex:1}.page-body~.page-body-card{margin-top:0}.page-cover{background:no-repeat center/cover;min-height:9rem}@media (min-width:768px){.page-cover{min-height:12rem}}@media (min-width:992px){.page-cover{min-height:15rem}}.page-cover-overlay{position:relative}.page-cover-overlay:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%)}.page-header{display:flex;flex-wrap:wrap;min-height:2.25rem;flex-direction:column;justify-content:center}.page-wrapper .page-header{margin:1.25rem 0 0}.page-header-border{border-bottom:1px solid rgba(98,105,118,.16);padding-bottom:1.25rem}.page-pretitle{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976}.page-title{margin:0;font-size:1.25rem;line-height:1.4;font-weight:600;color:inherit;display:flex;align-items:center}.page-title svg{width:1.5rem;height:1.5rem;margin-right:.25rem}.page-title-lg{font-size:1.5rem;line-height:1.3333333333}.page-subtitle{margin-top:.25rem;color:#626976}.page-tabs{margin-top:.5rem;position:relative}.page-header-tabs .nav-bordered{border:0}.page-header-tabs+.page-body-card{margin-top:0}.footer{border-top:1px solid #e6e7e9;background-color:#fff;padding:2rem 0;color:#626976;margin-top:auto}.footer-transparent{background-color:transparent;border-top:0}/*! * Tabler (v0.9.0): _dark.scss * Copyright 2018-2021 The Tabler Authors * Copyright 2018-2021 codecalm * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) - */body:not(.theme-dark) .hide-theme-light{display:none!important}@media not print{.theme-dark{--tblr-body-color:#fafbfc;--tblr-body-color-rgb:250,251,252;--tblr-body-bg:#1b2434;--tblr-body-bg-rgb:27,36,52;--tblr-card-bg:#1e293b;--tblr-card-bg-rgb:30,41,59;--tblr-border-color:#2c3c56;--tblr-border-color-light:#253249;--tblr-btn-color:#1e293b;color:#fafbfc;background-color:#1b2434}.theme-dark .page{color:#fafbfc}.theme-dark .hide-theme-dark{display:none!important}.theme-dark .text-body{color:#fafbfc!important}.theme-dark .alert:not(.alert-important),.theme-dark .card,.theme-dark .card-footer,.theme-dark .card-stacked::after,.theme-dark .dropdown-menu,.theme-dark .footer:not(.footer-transparent),.theme-dark .modal-content,.theme-dark .modal-header,.theme-dark .toast,.theme-dark .toast-header{background-color:#1e293b;color:inherit}.theme-dark .card{border-color:transparent}.theme-dark .card-tabs .nav-tabs .nav-link{background-color:#1b2434;color:inherit}.theme-dark pre{background-color:#1b2434;border-color:#2c3c56}.theme-dark .card-tabs .nav-tabs .nav-link.active{background-color:#1e293b;color:inherit}.theme-dark .btn-white,.theme-dark .form-file-button{background-image:none}.theme-dark .form-check-input:not(:checked),.theme-dark .form-control,.theme-dark .form-file-text,.theme-dark .form-imagecheck-figure:before,.theme-dark .form-select,.theme-dark .form-selectgroup-check,.theme-dark .form-selectgroup-label{background-color:#1b2434;color:#fafbfc;border-color:#2c3c56}.theme-dark .form-control-plaintext{color:#fafbfc}.theme-dark .input-group-flat .input-group-text{background-color:#1b2434}.theme-dark .input-group-text{border-color:#2c3c56}.theme-dark .highlight{background-color:#1b2434}.theme-dark .avatar{--tblr-avatar-bg:#212e42}.theme-dark .avatar-list-stacked .avatar{box-shadow:0 0 0 2px #1e293b}.theme-dark .accordion-button,.theme-dark .markdown,.theme-dark .markdown>*{color:inherit}.theme-dark .accordion-button:after,.theme-dark .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}.theme-dark .apexcharts-text{fill:#fafbfc}.theme-dark .apexcharts-gridline{stroke:var(--tblr-border-color)}.theme-dark .apexcharts-legend-text{color:inherit!important}.theme-dark .apexcharts-tooltip{background:#1e293b!important;border:1px solid #2c3c56!important;box-shadow:2px 2px 6px -4px #1b2434!important}.theme-dark .apexcharts-tooltip .apexcharts-tooltip-title{background:#1e293b!important;border-bottom:1px solid #2c3c56!important}.theme-dark .navbar-brand-autodark{filter:brightness(0) invert(1)}.theme-dark .input-group-text,.theme-dark .markdown>table thead th,.theme-dark .table thead th{background:0 0}.theme-dark .list-group-header{background:#1b2434}.theme-dark .list-group-item{border-color:rgba(98,105,118,.16)}.theme-dark .list-group-item:not(.disabled):not(:disabled){color:#fafbfc}.theme-dark .list-group-item.disabled,.theme-dark .list-group-item:disabled{color:#475569}.theme-dark .apexcharts-radialbar-area{stroke:#2c3c56}.theme-dark .form-control.is-invalid,.theme-dark .was-validated .form-control:invalid{border-color:var(--tblr-danger)}.theme-dark .form-control.is-valid,.theme-dark .was-validated .form-control:valid{border-color:var(--tblr-success)}}@media not print{@media (prefers-color-scheme:dark){.theme-dark-auto{--tblr-body-color:#fafbfc;--tblr-body-color-rgb:250,251,252;--tblr-body-bg:#1b2434;--tblr-body-bg-rgb:27,36,52;--tblr-card-bg:#1e293b;--tblr-card-bg-rgb:30,41,59;--tblr-border-color:#2c3c56;--tblr-border-color-light:#253249;--tblr-btn-color:#1e293b;color:#fafbfc;background-color:#1b2434}.theme-dark-auto .page{color:#fafbfc}.theme-dark-auto .hide-theme-dark{display:none!important}.theme-dark-auto .text-body{color:#fafbfc!important}.theme-dark-auto .alert:not(.alert-important),.theme-dark-auto .card,.theme-dark-auto .card-footer,.theme-dark-auto .card-stacked::after,.theme-dark-auto .dropdown-menu,.theme-dark-auto .footer:not(.footer-transparent),.theme-dark-auto .modal-content,.theme-dark-auto .modal-header,.theme-dark-auto .toast,.theme-dark-auto .toast-header{background-color:#1e293b;color:inherit}.theme-dark-auto .card{border-color:transparent}.theme-dark-auto .card-tabs .nav-tabs .nav-link{background-color:#1b2434;color:inherit}.theme-dark-auto pre{background-color:#1b2434;border-color:#2c3c56}.theme-dark-auto .card-tabs .nav-tabs .nav-link.active{background-color:#1e293b;color:inherit}.theme-dark-auto .btn-white,.theme-dark-auto .form-file-button{background-image:none}.theme-dark-auto .form-check-input:not(:checked),.theme-dark-auto .form-control,.theme-dark-auto .form-file-text,.theme-dark-auto .form-imagecheck-figure:before,.theme-dark-auto .form-select,.theme-dark-auto .form-selectgroup-check,.theme-dark-auto .form-selectgroup-label{background-color:#1b2434;color:#fafbfc;border-color:#2c3c56}.theme-dark-auto .form-control-plaintext{color:#fafbfc}.theme-dark-auto .input-group-flat .input-group-text{background-color:#1b2434}.theme-dark-auto .input-group-text{border-color:#2c3c56}.theme-dark-auto .highlight{background-color:#1b2434}.theme-dark-auto .avatar{--tblr-avatar-bg:#212e42}.theme-dark-auto .avatar-list-stacked .avatar{box-shadow:0 0 0 2px #1e293b}.theme-dark-auto .accordion-button,.theme-dark-auto .markdown,.theme-dark-auto .markdown>*{color:inherit}.theme-dark-auto .accordion-button:after,.theme-dark-auto .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}.theme-dark-auto .apexcharts-text{fill:#fafbfc}.theme-dark-auto .apexcharts-gridline{stroke:var(--tblr-border-color)}.theme-dark-auto .apexcharts-legend-text{color:inherit!important}.theme-dark-auto .apexcharts-tooltip{background:#1e293b!important;border:1px solid #2c3c56!important;box-shadow:2px 2px 6px -4px #1b2434!important}.theme-dark-auto .apexcharts-tooltip .apexcharts-tooltip-title{background:#1e293b!important;border-bottom:1px solid #2c3c56!important}.theme-dark-auto .navbar-brand-autodark{filter:brightness(0) invert(1)}.theme-dark-auto .input-group-text,.theme-dark-auto .markdown>table thead th,.theme-dark-auto .table thead th{background:0 0}.theme-dark-auto .list-group-header{background:#1b2434}.theme-dark-auto .list-group-item{border-color:rgba(98,105,118,.16)}.theme-dark-auto .list-group-item:not(.disabled):not(:disabled){color:#fafbfc}.theme-dark-auto .list-group-item.disabled,.theme-dark-auto .list-group-item:disabled{color:#475569}.theme-dark-auto .apexcharts-radialbar-area{stroke:#2c3c56}.theme-dark-auto .form-control.is-invalid,.theme-dark-auto .was-validated .form-control:invalid{border-color:var(--tblr-danger)}.theme-dark-auto .form-control.is-valid,.theme-dark-auto .was-validated .form-control:valid{border-color:var(--tblr-success)}}}.accordion-button:focus:not(:focus-visible){outline:0;box-shadow:none}.accordion-button:after{opacity:.7}.accordion-button:not(.collapsed){font-weight:600;border-bottom-color:transparent;box-shadow:none}.accordion-button:not(.collapsed):after{opacity:1}.alert{--tblr-alert-color:#626976;background:#fff;border:1px solid rgba(98,105,118,.16);border-left:.25rem solid var(--tblr-alert-color);box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.alert>:last-child{margin-bottom:0}.alert-important{border-color:transparent;background:var(--tblr-alert-color);color:#fff}.alert-important .alert-icon,.alert-important .alert-link{color:inherit}.alert-important .alert-link:hover{color:inherit}.alert-link,.alert-link:hover{color:var(--tblr-alert-color)}.alert-primary{--tblr-alert-color:#206bc4}.alert-secondary{--tblr-alert-color:#626976}.alert-success{--tblr-alert-color:#2fb344}.alert-info{--tblr-alert-color:#4299e1}.alert-warning{--tblr-alert-color:#f76707}.alert-danger{--tblr-alert-color:#d63939}.alert-light{--tblr-alert-color:#fafbfc}.alert-dark{--tblr-alert-color:#1e293b}.alert-muted{--tblr-alert-color:#626976}.alert-icon{color:var(--tblr-alert-color);width:1.5rem!important;height:1.5rem!important;margin:-.125rem 1rem -.125rem 0}.alert-title{font-size:.875rem;line-height:1.4285714286;font-weight:600;margin-bottom:.25rem;color:var(--tblr-alert-color)}.avatar{--tblr-avatar-size:2.5rem;--tblr-avatar-bg:var(--tblr-border-color-light);position:relative;width:var(--tblr-avatar-size);height:var(--tblr-avatar-size);font-size:calc(var(--tblr-avatar-size)/ 2.8571428572);font-weight:500;display:inline-flex;align-items:center;justify-content:center;color:#626976;text-align:center;text-transform:uppercase;vertical-align:bottom;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--tblr-avatar-bg) no-repeat center/cover;border-radius:4px}.avatar svg{width:calc(var(--tblr-avatar-size)/ 1.6666666667);height:calc(var(--tblr-avatar-size)/ 1.6666666667)}.avatar .badge{position:absolute;right:0;bottom:0;border-radius:100rem;box-shadow:0 0 0 2px #fff}a.avatar{cursor:pointer}.avatar-rounded{border-radius:100rem}.avatar-xs{--tblr-avatar-size:1.5rem}.avatar-xs .badge:empty{width:.375rem;height:.375rem}.avatar-sm{--tblr-avatar-size:2rem}.avatar-sm .badge:empty{width:.5rem;height:.5rem}.avatar-md{--tblr-avatar-size:3.75rem}.avatar-md .badge:empty{width:.9375rem;height:.9375rem}.avatar-lg{--tblr-avatar-size:5rem}.avatar-lg .badge:empty{width:1.25rem;height:1.25rem}.avatar-xl{--tblr-avatar-size:7rem}.avatar-xl .badge:empty{width:1.75rem;height:1.75rem}.avatar-2xl{--tblr-avatar-size:11rem}.avatar-2xl .badge:empty{width:2.75rem;height:2.75rem}.avatar-list{display:inline-flex;padding:0;margin:0 0 -.5rem;flex-wrap:wrap}.avatar-list .avatar{margin-bottom:.5rem}.avatar-list .avatar:not(:last-child){margin-right:.5rem}.avatar-list a.avatar:hover{z-index:1}.avatar-list-stacked .avatar{margin-right:-.5rem!important;box-shadow:0 0 0 2px var(--tblr-card-bg)}.avatar-upload{width:4rem;height:4rem;border:1px dashed #e6e7e9;background:#fff;flex-direction:column;transition:color .3s,background-color .3s}@media (prefers-reduced-motion:reduce){.avatar-upload{transition:none}}.avatar-upload svg{width:1.5rem;height:1.5rem;stroke-width:1}.avatar-upload:hover{border-color:#206bc4;color:#206bc4;text-decoration:none}.avatar-upload-text{font-size:.625rem;line-height:1;margin-top:.25rem}.page-cover~* .page-avatar{margin-top:calc(calc(-1 * calc(var(--tblr-avatar-size) * .5)) - 1.25rem);box-shadow:0 0 0 .25rem #f5f7fb}.badge{justify-content:center;align-items:center;background:#64748b;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;min-width:1.3571428571em;font-weight:600;letter-spacing:.04em;vertical-align:bottom}a.badge{color:#fff}.badge:empty{display:inline-block;width:.5rem;height:.5rem;min-width:0;min-height:auto;padding:0;border-radius:100rem;vertical-align:baseline}.badge .avatar{box-sizing:content-box;width:1.25rem;height:1.25rem;margin:0 .5rem 0 -.5rem}.badge .icon{width:1em;height:1em;font-size:1rem;stroke-width:2}.badge-sm{font-size:.625rem;line-height:1.6;padding:0 .25rem}.badge-outline{background-color:transparent;border:1px solid currentColor}.badge-pill{border-radius:100rem}.breadcrumb{padding:0;margin:0;background:0 0}.breadcrumb a{color:#626976}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-item.active a{color:inherit;pointer-events:none}.breadcrumb-dots{--tblr-breadcrumb-divider:"·"}.breadcrumb-arrows{--tblr-breadcrumb-divider:"›"}.breadcrumb-bullets{--tblr-breadcrumb-divider:"•"}.btn{--tblr-btn-color-text-rgb:var(--tblr-body-color-rgb);display:inline-flex;align-items:center;justify-content:center;border-color:var(--tblr-border-color);white-space:nowrap;background-color:var(--tblr-btn-color,var(--tblr-card-bg));color:var(--tblr-btn-color-text)}.btn:hover{color:var(--tblr-btn-color-text);border-color:rgba(var(--tblr-btn-color-text-rgb),.48)}.btn:focus:not([disabled]):not(.disabled){border-color:var(--tblr-btn-color,#206bc4)}.btn.disabled,.btn:disabled{cursor:not-allowed}.btn .icon{width:1.25rem;height:1.25rem;min-width:1.25rem;margin:0 .5rem 0 -.25rem;vertical-align:bottom;color:inherit}.btn .avatar{width:1.25rem;height:1.25rem;vertical-align:text-top;margin:0 .5rem 0 -.25rem}.btn .icon-right{margin:0 -.25rem 0 .5rem}.btn .badge{top:auto}.btn-azure,.btn-bitbucket,.btn-blue,.btn-cyan,.btn-danger,.btn-dark,.btn-dribbble,.btn-facebook,.btn-flickr,.btn-github,.btn-google,.btn-green,.btn-indigo,.btn-info,.btn-instagram,.btn-light,.btn-lime,.btn-linkedin,.btn-muted,.btn-orange,.btn-pink,.btn-pinterest,.btn-primary,.btn-purple,.btn-red,.btn-rss,.btn-secondary,.btn-success,.btn-tabler,.btn-teal,.btn-twitter,.btn-vimeo,.btn-vk,.btn-warning,.btn-yellow,.btn-youtube{border-color:rgba(98,105,118,.24)}.btn-azure:hover,.btn-bitbucket:hover,.btn-blue:hover,.btn-cyan:hover,.btn-danger:hover,.btn-dark:hover,.btn-dribbble:hover,.btn-facebook:hover,.btn-flickr:hover,.btn-github:hover,.btn-google:hover,.btn-green:hover,.btn-indigo:hover,.btn-info:hover,.btn-instagram:hover,.btn-light:hover,.btn-lime:hover,.btn-linkedin:hover,.btn-muted:hover,.btn-orange:hover,.btn-pink:hover,.btn-pinterest:hover,.btn-primary:hover,.btn-purple:hover,.btn-red:hover,.btn-rss:hover,.btn-secondary:hover,.btn-success:hover,.btn-tabler:hover,.btn-teal:hover,.btn-twitter:hover,.btn-vimeo:hover,.btn-vk:hover,.btn-warning:hover,.btn-yellow:hover,.btn-youtube:hover{color:var(--tblr-btn-color-text);background:var(--tblr-btn-color-interactive);border-color:var(--tblr-btn-color)}.btn-outline-azure,.btn-outline-bitbucket,.btn-outline-blue,.btn-outline-cyan,.btn-outline-danger,.btn-outline-dark,.btn-outline-dribbble,.btn-outline-facebook,.btn-outline-flickr,.btn-outline-github,.btn-outline-google,.btn-outline-green,.btn-outline-indigo,.btn-outline-info,.btn-outline-instagram,.btn-outline-light,.btn-outline-lime,.btn-outline-linkedin,.btn-outline-muted,.btn-outline-orange,.btn-outline-pink,.btn-outline-pinterest,.btn-outline-primary,.btn-outline-purple,.btn-outline-red,.btn-outline-rss,.btn-outline-secondary,.btn-outline-success,.btn-outline-tabler,.btn-outline-teal,.btn-outline-twitter,.btn-outline-vimeo,.btn-outline-vk,.btn-outline-warning,.btn-outline-yellow,.btn-outline-youtube{background-color:transparent;color:var(--tblr-btn-color);border-color:var(--tblr-btn-color)}.btn-outline-azure:hover,.btn-outline-bitbucket:hover,.btn-outline-blue:hover,.btn-outline-cyan:hover,.btn-outline-danger:hover,.btn-outline-dark:hover,.btn-outline-dribbble:hover,.btn-outline-facebook:hover,.btn-outline-flickr:hover,.btn-outline-github:hover,.btn-outline-google:hover,.btn-outline-green:hover,.btn-outline-indigo:hover,.btn-outline-info:hover,.btn-outline-instagram:hover,.btn-outline-light:hover,.btn-outline-lime:hover,.btn-outline-linkedin:hover,.btn-outline-muted:hover,.btn-outline-orange:hover,.btn-outline-pink:hover,.btn-outline-pinterest:hover,.btn-outline-primary:hover,.btn-outline-purple:hover,.btn-outline-red:hover,.btn-outline-rss:hover,.btn-outline-secondary:hover,.btn-outline-success:hover,.btn-outline-tabler:hover,.btn-outline-teal:hover,.btn-outline-twitter:hover,.btn-outline-vimeo:hover,.btn-outline-vk:hover,.btn-outline-warning:hover,.btn-outline-yellow:hover,.btn-outline-youtube:hover{background-color:var(--tblr-btn-color);color:var(--tblr-btn-color-text);border-color:var(--tblr-btn-color)}.btn-ghost-azure,.btn-ghost-bitbucket,.btn-ghost-blue,.btn-ghost-cyan,.btn-ghost-danger,.btn-ghost-dark,.btn-ghost-dribbble,.btn-ghost-facebook,.btn-ghost-flickr,.btn-ghost-github,.btn-ghost-google,.btn-ghost-green,.btn-ghost-indigo,.btn-ghost-info,.btn-ghost-instagram,.btn-ghost-light,.btn-ghost-lime,.btn-ghost-linkedin,.btn-ghost-muted,.btn-ghost-orange,.btn-ghost-pink,.btn-ghost-pinterest,.btn-ghost-primary,.btn-ghost-purple,.btn-ghost-red,.btn-ghost-rss,.btn-ghost-secondary,.btn-ghost-success,.btn-ghost-tabler,.btn-ghost-teal,.btn-ghost-twitter,.btn-ghost-vimeo,.btn-ghost-vk,.btn-ghost-warning,.btn-ghost-yellow,.btn-ghost-youtube{background:0 0;color:var(--tblr-btn-color);border-color:transparent}.btn-ghost-azure:hover,.btn-ghost-bitbucket:hover,.btn-ghost-blue:hover,.btn-ghost-cyan:hover,.btn-ghost-danger:hover,.btn-ghost-dark:hover,.btn-ghost-dribbble:hover,.btn-ghost-facebook:hover,.btn-ghost-flickr:hover,.btn-ghost-github:hover,.btn-ghost-google:hover,.btn-ghost-green:hover,.btn-ghost-indigo:hover,.btn-ghost-info:hover,.btn-ghost-instagram:hover,.btn-ghost-light:hover,.btn-ghost-lime:hover,.btn-ghost-linkedin:hover,.btn-ghost-muted:hover,.btn-ghost-orange:hover,.btn-ghost-pink:hover,.btn-ghost-pinterest:hover,.btn-ghost-primary:hover,.btn-ghost-purple:hover,.btn-ghost-red:hover,.btn-ghost-rss:hover,.btn-ghost-secondary:hover,.btn-ghost-success:hover,.btn-ghost-tabler:hover,.btn-ghost-teal:hover,.btn-ghost-twitter:hover,.btn-ghost-vimeo:hover,.btn-ghost-vk:hover,.btn-ghost-warning:hover,.btn-ghost-yellow:hover,.btn-ghost-youtube:hover{background-color:var(--tblr-btn-color);color:var(--tblr-btn-color-text);border-color:var(--tblr-btn-color)}.btn-link{color:#206bc4;background-color:transparent;border-color:transparent}.btn-link .icon{color:inherit}.btn-link:hover{color:#1a569d;border-color:transparent}.btn-group-lg>.btn svg.icon,.btn-lg svg.icon{stroke-width:2}.btn-pill{padding-right:1.5em;padding-left:1.5em;border-radius:10rem}.btn-pill[class*=btn-icon]{padding:.375rem 15px}.btn-icon{min-width:calc(2.125rem + 2px)}.btn-group-sm>.btn-icon.btn,.btn-icon.btn-sm{min-width:calc(1.3214285715rem + 2px)}.btn-icon .icon{margin:0 -1em}.btn-square{border-radius:0}.btn-list{display:flex;flex-wrap:wrap;margin-bottom:-.5rem!important;margin-right:-.5rem}.btn-list>*{margin:0 .5rem .5rem 0!important}.btn-floating{position:fixed;z-index:1030;bottom:1.5rem;right:1.5rem;border-radius:100rem}.btn-loading{position:relative;color:transparent!important;text-shadow:none!important;pointer-events:none}.btn-loading:after{content:"";display:inline-block;vertical-align:text-bottom;border:1px solid currentColor;border-right-color:transparent;border-radius:100rem;color:#fff;position:absolute;width:1rem;height:1rem;left:calc(50% - .5rem);top:calc(50% - .5rem);-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.btn-ghost-primary,.btn-outline-primary,.btn-primary{--tblr-btn-color:#206bc4;--tblr-btn-color-interactive:#1d60b0;--tblr-btn-color-text:#fafbfc}.btn-ghost-secondary,.btn-outline-secondary,.btn-secondary{--tblr-btn-color:#626976;--tblr-btn-color-interactive:#585f6a;--tblr-btn-color-text:#fafbfc}.btn-ghost-success,.btn-outline-success,.btn-success{--tblr-btn-color:#2fb344;--tblr-btn-color-interactive:#2aa13d;--tblr-btn-color-text:#fafbfc}.btn-ghost-info,.btn-info,.btn-outline-info{--tblr-btn-color:#4299e1;--tblr-btn-color-interactive:#3b8acb;--tblr-btn-color-text:#fafbfc}.btn-ghost-warning,.btn-outline-warning,.btn-warning{--tblr-btn-color:#f76707;--tblr-btn-color-interactive:#de5d06;--tblr-btn-color-text:#fafbfc}.btn-danger,.btn-ghost-danger,.btn-outline-danger{--tblr-btn-color:#d63939;--tblr-btn-color-interactive:#c13333;--tblr-btn-color-text:#fafbfc}.btn-ghost-light,.btn-light,.btn-outline-light{--tblr-btn-color:#fafbfc;--tblr-btn-color-interactive:#e1e2e3;--tblr-btn-color-text:#1e293b}.btn-dark,.btn-ghost-dark,.btn-outline-dark{--tblr-btn-color:#1e293b;--tblr-btn-color-interactive:#1b2535;--tblr-btn-color-text:#fafbfc}.btn-ghost-muted,.btn-muted,.btn-outline-muted{--tblr-btn-color:#626976;--tblr-btn-color-interactive:#585f6a;--tblr-btn-color-text:#fafbfc}.btn-blue,.btn-ghost-blue,.btn-outline-blue{--tblr-btn-color:#206bc4;--tblr-btn-color-interactive:#1d60b0;--tblr-btn-color-text:#fafbfc}.btn-azure,.btn-ghost-azure,.btn-outline-azure{--tblr-btn-color:#4299e1;--tblr-btn-color-interactive:#3b8acb;--tblr-btn-color-text:#fafbfc}.btn-ghost-indigo,.btn-indigo,.btn-outline-indigo{--tblr-btn-color:#4263eb;--tblr-btn-color-interactive:#3b59d4;--tblr-btn-color-text:#fafbfc}.btn-ghost-purple,.btn-outline-purple,.btn-purple{--tblr-btn-color:#ae3ec9;--tblr-btn-color-interactive:#9d38b5;--tblr-btn-color-text:#fafbfc}.btn-ghost-pink,.btn-outline-pink,.btn-pink{--tblr-btn-color:#d6336c;--tblr-btn-color-interactive:#c12e61;--tblr-btn-color-text:#fafbfc}.btn-ghost-red,.btn-outline-red,.btn-red{--tblr-btn-color:#d63939;--tblr-btn-color-interactive:#c13333;--tblr-btn-color-text:#fafbfc}.btn-ghost-orange,.btn-orange,.btn-outline-orange{--tblr-btn-color:#f76707;--tblr-btn-color-interactive:#de5d06;--tblr-btn-color-text:#fafbfc}.btn-ghost-yellow,.btn-outline-yellow,.btn-yellow{--tblr-btn-color:#f59f00;--tblr-btn-color-interactive:#dd8f00;--tblr-btn-color-text:#fafbfc}.btn-ghost-lime,.btn-lime,.btn-outline-lime{--tblr-btn-color:#74b816;--tblr-btn-color-interactive:#68a614;--tblr-btn-color-text:#fafbfc}.btn-ghost-green,.btn-green,.btn-outline-green{--tblr-btn-color:#2fb344;--tblr-btn-color-interactive:#2aa13d;--tblr-btn-color-text:#fafbfc}.btn-ghost-teal,.btn-outline-teal,.btn-teal{--tblr-btn-color:#0ca678;--tblr-btn-color-interactive:#0b956c;--tblr-btn-color-text:#fafbfc}.btn-cyan,.btn-ghost-cyan,.btn-outline-cyan{--tblr-btn-color:#17a2b8;--tblr-btn-color-interactive:#1592a6;--tblr-btn-color-text:#fafbfc}.btn-facebook,.btn-ghost-facebook,.btn-outline-facebook{--tblr-btn-color:#3b5998;--tblr-btn-color-interactive:#355089;--tblr-btn-color-text:#fafbfc}.btn-ghost-twitter,.btn-outline-twitter,.btn-twitter{--tblr-btn-color:#1da1f2;--tblr-btn-color-interactive:#1a91da;--tblr-btn-color-text:#fafbfc}.btn-ghost-linkedin,.btn-linkedin,.btn-outline-linkedin{--tblr-btn-color:#0a66c2;--tblr-btn-color-interactive:#095caf;--tblr-btn-color-text:#fafbfc}.btn-ghost-google,.btn-google,.btn-outline-google{--tblr-btn-color:#dc4e41;--tblr-btn-color-interactive:#c6463b;--tblr-btn-color-text:#fafbfc}.btn-ghost-youtube,.btn-outline-youtube,.btn-youtube{--tblr-btn-color:#ff0000;--tblr-btn-color-interactive:#e60000;--tblr-btn-color-text:#fafbfc}.btn-ghost-vimeo,.btn-outline-vimeo,.btn-vimeo{--tblr-btn-color:#1ab7ea;--tblr-btn-color-interactive:#17a5d3;--tblr-btn-color-text:#fafbfc}.btn-dribbble,.btn-ghost-dribbble,.btn-outline-dribbble{--tblr-btn-color:#ea4c89;--tblr-btn-color-interactive:#d3447b;--tblr-btn-color-text:#fafbfc}.btn-ghost-github,.btn-github,.btn-outline-github{--tblr-btn-color:#181717;--tblr-btn-color-interactive:#161515;--tblr-btn-color-text:#fafbfc}.btn-ghost-instagram,.btn-instagram,.btn-outline-instagram{--tblr-btn-color:#e4405f;--tblr-btn-color-interactive:#cd3a56;--tblr-btn-color-text:#fafbfc}.btn-ghost-pinterest,.btn-outline-pinterest,.btn-pinterest{--tblr-btn-color:#bd081c;--tblr-btn-color-interactive:#aa0719;--tblr-btn-color-text:#fafbfc}.btn-ghost-vk,.btn-outline-vk,.btn-vk{--tblr-btn-color:#6383a8;--tblr-btn-color-interactive:#597697;--tblr-btn-color-text:#fafbfc}.btn-ghost-rss,.btn-outline-rss,.btn-rss{--tblr-btn-color:#ffa500;--tblr-btn-color-interactive:#e69500;--tblr-btn-color-text:#fafbfc}.btn-flickr,.btn-ghost-flickr,.btn-outline-flickr{--tblr-btn-color:#0063dc;--tblr-btn-color-interactive:#0059c6;--tblr-btn-color-text:#fafbfc}.btn-bitbucket,.btn-ghost-bitbucket,.btn-outline-bitbucket{--tblr-btn-color:#0052cc;--tblr-btn-color-interactive:#004ab8;--tblr-btn-color-text:#fafbfc}.btn-ghost-tabler,.btn-outline-tabler,.btn-tabler{--tblr-btn-color:#206bc4;--tblr-btn-color-interactive:#1d60b0;--tblr-btn-color-text:#fafbfc}.btn-action{padding:0;border:0;color:#626976;display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:4px}.btn-action:after{content:none}.btn-action:focus{outline:0;box-shadow:none}.btn-action.show,.btn-action:hover{color:#1e293b;background:#f5f7fb}.btn-action.show{color:#206bc4}.btn-action .icon{margin:0;width:1.25rem;height:1.25rem;font-size:1.25rem;stroke-width:1}.btn-actions{display:flex}.calendar{display:block;font-size:.765625rem;border:1px solid #e6e7e9;border-radius:4px}.calendar-nav{display:flex;align-items:center}.calendar-title{flex:1;text-align:center}.calendar-body,.calendar-header{display:flex;flex-wrap:wrap;justify-content:flex-start;padding:.5rem 0}.calendar-header{color:#626976}.calendar-date{flex:0 0 14.2857142857%;max-width:14.2857142857%;padding:.2rem;text-align:center;border:0}.calendar-date.next-month,.calendar-date.prev-month{opacity:.25}.calendar-date .date-item{position:relative;display:inline-block;width:1.4rem;height:1.4rem;line-height:1.4rem;color:#66758c;text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;background:0 0;border:1px solid transparent;border-radius:100rem;outline:0;transition:background .3s,border .3s,box-shadow .32s,color .3s}@media (prefers-reduced-motion:reduce){.calendar-date .date-item{transition:none}}.calendar-date .date-item:hover{color:#206bc4;text-decoration:none;background:#fefeff;border-color:#e6e7e9}.calendar-date .date-today{color:#206bc4;border-color:#e6e7e9}.calendar-range{position:relative}.calendar-range:before{position:absolute;top:50%;right:0;left:0;height:1.4rem;content:"";background:rgba(32,107,196,.1);transform:translateY(-50%)}.calendar-range.range-end .date-item,.calendar-range.range-start .date-item{color:#fff;background:#206bc4;border-color:#206bc4}.calendar-range.range-start:before{left:50%}.calendar-range.range-end:before{right:50%}.carousel-indicators-vertical{left:auto;top:0;margin:0 1rem 0 0;flex-direction:column}.carousel-indicators-vertical [data-bs-target]{margin:3px 0 3px;width:3px;height:30px;border:0;border-left:10px solid transparent;border-right:10px solid transparent}.carousel-indicators-dot [data-bs-target]{width:.5rem;height:.5rem;border-radius:100rem;border:10px solid transparent;margin:0}.carousel-indicators-thumb [data-bs-target]{width:2rem;height:auto;background:no-repeat center/cover;border:0;border-radius:4px;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0;margin:0 3px;opacity:.75}@media (min-width:992px){.carousel-indicators-thumb [data-bs-target]{width:4rem}}.carousel-indicators-thumb [data-bs-target]:before{content:"";padding-top:var(--tblr-aspect-ratio,100%);display:block}.carousel-indicators-thumb.carousel-indicators-vertical [data-bs-target]{margin:3px 0}.carousel-caption-background{background:red;position:absolute;left:0;right:0;bottom:0;height:90%;background:linear-gradient(0deg,rgba(30,41,59,.9),rgba(30,41,59,0))}.card{--tblr-card-border-radius:4px;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0;border:1px solid rgba(98,105,118,.16);background:var(--tblr-card-bg,#fff);border-radius:var(--tblr-card-border-radius);transition:transform .3s ease-out,opacity .3s ease-out,box-shadow .3s ease-out}@media (prefers-reduced-motion:reduce){.card{transition:none}}@media print{.card{border:none;box-shadow:none}}a.card{color:inherit}a.card:hover{text-decoration:none;box-shadow:rgba(30,41,59,.16) 0 2px 16px 0}.card .card{box-shadow:none}.card-borderless,.card-borderless .card-footer,.card-borderless .card-header{border-color:transparent}.card-stamp{--stamp-size:7rem;position:absolute;top:0;right:0;width:calc(var(--stamp-size) * 1);height:calc(var(--stamp-size) * 1);max-height:100%;border-top-right-radius:4px;opacity:.2;overflow:hidden;pointer-events:none}.card-stamp-lg{--stamp-size:13rem}.card-stamp-icon{background:#626976;color:#fff;display:flex;align-items:center;justify-content:center;border-radius:100rem;width:calc(var(--stamp-size) * 1);height:calc(var(--stamp-size) * 1);position:relative;top:calc(var(--stamp-size) * -.25);right:calc(var(--stamp-size) * -.25);font-size:calc(var(--stamp-size) * .75);transform:rotate(10deg)}.card-stamp-icon .icon{stroke-width:2;width:calc(var(--stamp-size) * .75);height:calc(var(--stamp-size) * .75)}.card-img,.card-img-start{border-top-left-radius:3px;border-bottom-left-radius:3px}.card-img,.card-img-end{border-top-right-radius:3px;border-bottom-right-radius:3px}.card-img-overlay{display:flex;flex-direction:column;justify-content:flex-end}.card-img-overlay-dark{background-image:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%)}.card-inactive{pointer-events:none;box-shadow:none}.card-inactive .card-body{opacity:.64}.card-active{position:relative;background-color:rgba(32,107,196,.03);z-index:1}.card-active:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;content:"";border:1px solid #206bc4;border-radius:inherit}.card-btn{display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem;text-align:center;transition:background .3s;border-top:1px solid var(--tblr-border-color);flex:1;color:inherit;font-weight:500}@media (prefers-reduced-motion:reduce){.card-btn{transition:none}}.card-btn:hover{text-decoration:none;background:rgba(32,107,196,.04)}.card-btn+.card-btn{border-left:1px solid var(--tblr-border-color)}.card-stacked{position:relative}.card-stacked:after{position:absolute;top:-5px;right:5px;left:5px;height:5px;content:"";background:#fff;border:1px solid rgba(98,105,118,.16);border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-cover{position:relative;padding:1rem 1.25rem;background:#666 no-repeat center/cover}.card-cover:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:rgba(30,41,59,.48)}.card-cover:first-child,.card-cover:first-child:before{border-radius:4px 4px 0 0}.card-cover-blurred:before{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.card-actions{margin:-.5rem -.5rem -.5rem auto;padding-left:.5rem}.card-actions a{text-decoration:none}.card-header{color:inherit;display:flex;align-items:center;background:0 0}.card-header:first-child{border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-header-light{border-bottom-color:transparent;background:var(--tblr-light)}.card-header-tabs{flex:1;margin:-.5rem -.625rem -1rem}.card-header-pills{flex:1;margin-top:-.5rem;margin-bottom:-.5rem}.card-rotate-left{transform:rotate(-1.5deg)}.card-rotate-right{transform:rotate(1.5deg)}.card-link{color:inherit}.card-link:hover{color:inherit;text-decoration:none;box-shadow:0 1px 6px 0 rgba(0,0,0,.08)}.card-link-rotate:hover{transform:rotate(1.5deg);opacity:1}.card-link-pop:hover{transform:translateY(-2px);opacity:1}.card-footer{margin-top:auto}.card-footer:last-child{border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-footer-transparent{background:0 0;border-color:transparent;padding-top:0}.card-progress{height:.25rem}.card-progress:last-child{border-radius:0 0 2px 2px}.card-progress:first-child{border-radius:2px 2px 0 0}.card-meta{color:#626976}.card-title{display:block;margin:0 0 1rem;font-size:1rem;font-weight:500;line-height:1.5rem}a.card-title:hover{color:inherit}.card-header .card-title{margin:0}.card-subtitle{margin-top:-.5rem;margin-bottom:1.25rem;color:#626976;font-weight:400}.card-header .card-subtitle{margin:0}.card-title .card-subtitle{margin:0 0 0 .25rem;font-size:.875rem}.card-body>:last-child{margin-bottom:0}.card-sm>.card-body{padding:1rem}@media (min-width:768px){.card-md>.card-body{padding:2.5rem}}@media (min-width:768px){.card-lg>.card-body{padding:2rem}}@media (min-width:992px){.card-lg>.card-body{padding:4rem}}@media print{.card-body{padding:0}}.card-body+.card-body{border-top:1px solid #e6e7e9}.card-body-scrollable{overflow:auto}.card-options{top:1.5rem;right:.75rem;display:flex;margin-left:auto}.card-options-link{display:inline-block;min-width:1rem;margin-left:.25rem;color:#626976}.card-status-top{position:absolute;top:0;right:0;left:0;height:2px;border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-status-start{position:absolute;right:auto;bottom:0;width:2px;height:100%;border-radius:var(--tblr-card-border-radius) 0 0 var(--tblr-card-border-radius)}.card-status-bottom{position:absolute;top:initial;bottom:0;width:100%;height:2px;border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-table{margin-bottom:0!important}.card-table tr td:first-child,.card-table tr th:first-child{padding-left:1.25rem}.card-table tr td:last-child,.card-table tr th:last-child{padding-right:1.25rem}.card-table thead tr:first-child td,.card-table thead tr:first-child th{border-top:0}.card-table tbody tr:last-child td,.card-table tbody tr:last-child th{border-bottom:0}.card-body+.card-table{border-top:1px solid #e6e7e9}.card-code{padding:0}.card-code .highlight{margin:0;border:0}.card-code pre{margin:0!important;border:0!important}.card-chart{position:relative;z-index:1;height:3.5rem}.card-avatar{margin-left:auto;margin-right:auto;box-shadow:0 0 0 .25rem #fff;margin-top:calc(-1 * var(--tblr-avatar-size) * .5)}.card-body+.card-list-group{border-top:1px solid #e6e7e9}.card-list-group .list-group-item{padding-right:1.25rem;padding-left:1.25rem;border-right:0;border-left:0;border-radius:0}.card-list-group .list-group-item:last-child{border-bottom:0}.card-list-group .list-group-item:first-child{border-top:0}.card-tabs .nav-tabs{position:relative;z-index:1000;border-bottom:0}.card-tabs .nav-tabs .nav-link{color:#626976;background:#fafbfc;border:1px solid rgba(98,105,118,.16)}.card-tabs .nav-tabs .nav-link.active,.card-tabs .nav-tabs .nav-link:active,.card-tabs .nav-tabs .nav-link:hover{border-color:rgba(98,105,118,.16);color:#1e293b}.card-tabs .nav-tabs .nav-link.active{background:#fff;border-bottom-color:transparent}.card-tabs .nav-tabs .nav-item:not(:first-child) .nav-link{border-top-left-radius:0}.card-tabs .nav-tabs .nav-item:not(:last-child) .nav-link{border-top-right-radius:0}.card-tabs .nav-tabs .nav-item+.nav-item{margin-left:-1px}.card-tabs .nav-tabs-bottom{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link.active{border-top-color:transparent}.card-tabs .nav-tabs-bottom .nav-item{margin-top:-1px;margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-item .nav-link{border-bottom:1px solid rgba(98,105,118,.16);border-radius:0 0 4px 4px}.card-tabs .nav-tabs-bottom .nav-item:not(:first-child) .nav-link{border-bottom-left-radius:0}.card-tabs .nav-tabs-bottom .nav-item:not(:last-child) .nav-link{border-bottom-right-radius:0}.card-tabs .card{border-bottom-left-radius:0}.card-tabs .nav-tabs+.tab-content .card{border-bottom-left-radius:var(--tblr-card-border-radius);border-top-left-radius:0}.btn-close{cursor:pointer}.btn-close:focus{outline:0}.dropdown-menu{box-shadow:0 .5rem 1rem rgba(0,0,0,.15);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:0!important}.dropdown-menu.card{padding:0;min-width:25rem;display:none}.dropdown-menu.card.show{display:flex}.dropdown-item{min-width:11rem;display:flex;align-items:center;margin:0;line-height:1.4285714286}.dropdown-item-icon{width:1.25rem!important;height:1.25rem!important;margin-right:.5rem;color:#626976;opacity:.7;text-align:center}.dropdown-item-indicator{margin-right:.5rem;margin-left:-.25rem;height:1.25rem;display:inline-flex;line-height:1;vertical-align:bottom;align-items:center}.dropdown-header{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;padding-bottom:.25rem;pointer-events:none}.dropdown-menu-scrollable{height:auto;max-height:13rem;overflow-x:hidden}.dropdown-menu-column{min-width:11rem}.dropdown-menu-column .dropdown-item{min-width:0}.dropdown-menu-columns{display:flex;flex:0 .25rem}.dropdown-menu-arrow:before{content:"";position:absolute;top:-.25rem;left:.75rem;display:block;background:inherit;width:14px;height:14px;transform:rotate(45deg);transform-origin:center;border:1px solid;border-color:inherit;z-index:-1;clip:rect(0,9px,9px,0)}.dropdown-menu-arrow.dropdown-menu-end:before{right:.75rem;left:auto}.dropend>.dropdown-menu{margin-top:calc(-.25rem - 1px);margin-left:-.25rem}.dropend .dropdown-toggle:after{margin-left:auto}.dropdown-menu-card{padding:0}.dropdown-menu-card>.card{margin:0;border:0;box-shadow:none}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center}@media (min-width:768px){.empty{padding:3rem}}.empty-icon{margin:0 0 1rem;width:3rem;height:3rem;line-height:1;color:#626976}.empty-icon svg{width:100%;height:100%}.empty-img{margin:0 0 2rem;line-height:1}.empty-img img{height:8rem;width:auto}.empty-header{margin:0 0 1rem;font-size:4rem;font-weight:300;line-height:1;color:#626976}.empty-title{font-size:1.25rem;line-height:1.4;font-weight:600}.empty-subtitle,.empty-title{margin:0 0 .5rem}.empty-action{margin-top:1.5rem}.empty-bordered{border:1px solid #e6e7e9;border-radius:4px}.row>*{min-width:0}.col-separator{border-left:1px solid #e6e7e9}@media (max-width:991.98px){.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--tblr-gutter-x:1rem}}.container-tight{width:100%;padding-right:var(--tblr-gutter-x,1.5rem);padding-left:var(--tblr-gutter-x,1.5rem);margin-right:auto;margin-left:auto;max-width:30rem}.container-narrow{width:100%;padding-right:var(--tblr-gutter-x,1.5rem);padding-left:var(--tblr-gutter-x,1.5rem);margin-right:auto;margin-left:auto;max-width:45rem}.row-0{margin-right:0;margin-left:0}.row-0>.col,.row-0>[class*=col-]{padding-right:0;padding-left:0}.row-0 .card{margin-bottom:0}.row-sm{margin-right:-.375rem;margin-left:-.375rem}.row-sm>.col,.row-sm>[class*=col-]{padding-right:.375rem;padding-left:.375rem}.row-sm .card{margin-bottom:.75rem}.row-md{margin-right:-1.5rem;margin-left:-1.5rem}.row-md>.col,.row-md>[class*=col-]{padding-right:1.5rem;padding-left:1.5rem}.row-md .card{margin-bottom:3rem}.row-lg{margin-right:-3rem;margin-left:-3rem}.row-lg>.col,.row-lg>[class*=col-]{padding-right:3rem;padding-left:3rem}.row-lg .card{margin-bottom:6rem}.row-deck>.col,.row-deck>[class*=col-]{display:flex;align-items:stretch}.row-deck>.col .card,.row-deck>[class*=col-] .card{flex:1 1 auto}.row-cards{--tblr-gutter-x:1rem;--tblr-gutter-y:1rem;min-width:0}.row-cards .row-cards{flex:1}@media (max-width:991.98px){.row-cards{--tblr-gutter-x:0.5rem;--tblr-gutter-y:0.5rem}}.space-y>:not(template)~:not(template){margin-top:1rem!important}.space-x>:not(template)~:not(template){margin-left:1rem!important}.space-y-0>:not(template)~:not(template){margin-top:0!important}.space-x-0>:not(template)~:not(template){margin-left:0!important}.space-y-1>:not(template)~:not(template){margin-top:.25rem!important}.space-x-1>:not(template)~:not(template){margin-left:.25rem!important}.space-y-2>:not(template)~:not(template){margin-top:.5rem!important}.space-x-2>:not(template)~:not(template){margin-left:.5rem!important}.space-y-3>:not(template)~:not(template){margin-top:1rem!important}.space-x-3>:not(template)~:not(template){margin-left:1rem!important}.space-y-4>:not(template)~:not(template){margin-top:2rem!important}.space-x-4>:not(template)~:not(template){margin-left:2rem!important}.space-y-5>:not(template)~:not(template){margin-top:4rem!important}.space-x-5>:not(template)~:not(template){margin-left:4rem!important}.divide-y>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y>:not(template):not(:first-child){padding-top:1rem!important}.divide-y>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x>:not(template):not(:first-child){padding-left:1rem!important}.divide-x>:not(template):not(:last-child){padding-right:1rem!important}.divide-y-0>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-0>:not(template):not(:first-child){padding-top:0!important}.divide-y-0>:not(template):not(:last-child){padding-bottom:0!important}.divide-x-0>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-0>:not(template):not(:first-child){padding-left:0!important}.divide-x-0>:not(template):not(:last-child){padding-right:0!important}.divide-y-1>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-1>:not(template):not(:first-child){padding-top:.25rem!important}.divide-y-1>:not(template):not(:last-child){padding-bottom:.25rem!important}.divide-x-1>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-1>:not(template):not(:first-child){padding-left:.25rem!important}.divide-x-1>:not(template):not(:last-child){padding-right:.25rem!important}.divide-y-2>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-2>:not(template):not(:first-child){padding-top:.5rem!important}.divide-y-2>:not(template):not(:last-child){padding-bottom:.5rem!important}.divide-x-2>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-2>:not(template):not(:first-child){padding-left:.5rem!important}.divide-x-2>:not(template):not(:last-child){padding-right:.5rem!important}.divide-y-3>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-3>:not(template):not(:first-child){padding-top:1rem!important}.divide-y-3>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x-3>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-3>:not(template):not(:first-child){padding-left:1rem!important}.divide-x-3>:not(template):not(:last-child){padding-right:1rem!important}.divide-y-4>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-4>:not(template):not(:first-child){padding-top:2rem!important}.divide-y-4>:not(template):not(:last-child){padding-bottom:2rem!important}.divide-x-4>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-4>:not(template):not(:first-child){padding-left:2rem!important}.divide-x-4>:not(template):not(:last-child){padding-right:2rem!important}.divide-y-5>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-5>:not(template):not(:first-child){padding-top:4rem!important}.divide-y-5>:not(template):not(:last-child){padding-bottom:4rem!important}.divide-x-5>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-5>:not(template):not(:first-child){padding-left:4rem!important}.divide-x-5>:not(template):not(:last-child){padding-right:4rem!important}.divide-y-fill{display:flex;flex-direction:column;height:100%}.divide-y-fill>:not(template){flex:1;display:flex;justify-content:center;flex-direction:column}.icon{width:1.25rem;height:1.25rem;font-size:1.25rem;vertical-align:bottom;stroke-width:1.5}.icon:hover{text-decoration:none}.icon-inline{width:1em;height:1em;font-size:1.1428571429em;vertical-align:-.2em}.icon-filled{fill:currentColor}.icon-sm{width:1rem;height:1rem;stroke-width:1}.icon-md{width:2.5rem;height:2.5rem;stroke-width:1}.icon-lg{width:3.5rem;height:3.5rem;stroke-width:1}.img-responsive{background:no-repeat center/cover;padding-top:75%}.img-responsive-1x1{padding-top:100%}.img-responsive-4x3{padding-top:75%}.img-responsive-3x4{padding-top:133.3333333333%}.img-responsive-16x9{padding-top:56.25%}.img-responsive-9x16{padding-top:177.7777777778%}.img-responsive-21x9{padding-top:42.8571428571%}.img-responsive-9x21{padding-top:233.3333333333%}textarea[cols]{height:auto}.form-label{display:block;font-weight:500}.form-label.required:after{content:"*";margin-left:.25rem;color:#d63939}.form-label-description{float:right;font-weight:400;color:#626976}.form-hint{display:block;color:#626976}.form-hint:last-child{margin-bottom:0}.form-hint+.form-control{margin-top:.25rem}.form-label+.form-hint{margin-top:-.25rem}.form-control+.form-hint,.form-select+.form-hint,.input-group+.form-hint{margin-top:.5rem}.form-select:-moz-focusring{color:var(--tblr-body-color)}.form-control:-webkit-autofill{box-shadow:0 0 0 1000px var(--tblr-body-bg) inset;color:var(--tblr-body-color)}.form-control.disabled,.form-control:disabled{color:#626976;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-control[size]{width:auto}.form-control[type=number]::-webkit-inner-spin-button{opacity:1;cursor:pointer;height:calc(calc(1.4285714286em + .875rem + 2px) - 1px);margin:0 -.75rem 0 0}.form-control[type=number]::-moz-inner-spin-button{opacity:1;cursor:pointer;height:calc(calc(1.4285714286em + .875rem + 2px) - 1px);margin:0 -.75rem 0 0}.form-control-light{background-color:#f1f5f9;border-color:transparent}.form-control-dark{background-color:rgba(0,0,0,.1);color:#fff;border-color:transparent}.form-control-dark:focus{background-color:rgba(0,0,0,.1);box-shadow:none;border-color:rgba(255,255,255,.24)}.form-control-dark::-webkit-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::-moz-placeholder{color:rgba(255,255,255,.6)}.form-control-dark:-ms-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::-ms-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::placeholder{color:rgba(255,255,255,.6)}.form-control-rounded{border-radius:10rem}.form-control-flush{padding:0;background:0 0!important;border-color:transparent!important;resize:none;box-shadow:none!important;line-height:inherit}.form-footer{margin-top:2rem}.form-fieldset{padding:1rem;margin-bottom:1rem;background:var(--tblr-body-bg);border:1px solid var(--tblr-border-color);border-radius:4px}.form-help{display:inline-flex;font-weight:600;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;font-size:.75rem;color:#626976;text-align:center;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--tblr-border-color-light);border-radius:100rem;transition:background-color .3s,color .3s}@media (prefers-reduced-motion:reduce){.form-help{transition:none}}.form-help:hover,.form-help[aria-describedby]{color:#fff;background:#206bc4}.input-group-link{font-size:.75rem}.input-group-flat:focus-within{box-shadow:0 0 0 .25rem rgba(32,107,196,.25);border-radius:4px}.input-group-flat:focus-within .form-control,.input-group-flat:focus-within .input-group-text{border-color:#90b5e2!important}.input-group-flat .form-control:focus{border-color:#d9dbde;box-shadow:none}.input-group-flat .form-control:not(:last-child){border-right:0}.input-group-flat .form-control:not(:first-child){border-left:0}.input-group-flat .input-group-text{background:0 0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.input-group-flat .input-group-text{transition:none}}.input-group-flat .input-group-text:first-child{padding-right:0}.input-group-flat .input-group-text:last-child{padding-left:0}.form-file-button{margin-left:0;border-left:0}.input-icon{position:relative}.input-icon .form-control:not(:last-child),.input-icon .form-select:not(:last-child){padding-right:2.5rem}.input-icon .form-control:not(:first-child),.input-icon .form-select:not(:last-child){padding-left:2.5rem}.input-icon-addon{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;min-width:2.5rem;color:#626976;pointer-events:none;font-size:1.2em}.input-icon-addon:last-child{right:0;left:auto}.form-colorinput{position:relative;display:inline-block;margin:0;line-height:1;cursor:pointer}.form-colorinput-input{position:absolute;z-index:-1;opacity:0}.form-colorinput-color{display:block;width:1.5rem;height:1.5rem;color:#fff;border:1px solid rgba(98,105,118,.16);border-radius:3px;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.form-colorinput-color:before{position:absolute;top:0;left:0;width:100%;height:100%;content:"";background:no-repeat center center/1rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-colorinput-color:before{transition:none}}.form-colorinput-input:checked~.form-colorinput-color:before{opacity:1}.form-colorinput-input:focus~.form-colorinput-color{border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-colorinput-light .form-colorinput-color:before{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%231e293b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-imagecheck{position:relative;margin:0;cursor:pointer}.form-imagecheck-input{position:absolute;z-index:-1;opacity:0}.form-imagecheck-figure{position:relative;display:block;margin:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid var(--tblr-border-color);border-radius:3px}.form-imagecheck-input:focus~.form-imagecheck-figure{border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-imagecheck-input:checked~.form-imagecheck-figure{border-color:#206bc4}.form-imagecheck-figure:before{position:absolute;top:.25rem;left:.25rem;z-index:1;display:block;width:1rem;height:1rem;color:#fff;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;border:1px solid #e6e7e9;border-radius:3px;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-figure:before{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure:before{background-color:#206bc4;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");background-repeat:repeat;background-position:center;background-size:1rem;border-color:rgba(98,105,118,.24)}.form-imagecheck-image{max-width:100%;display:block;opacity:.64;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-image{transition:none}}.form-imagecheck-image:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.form-imagecheck-image:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck:hover .form-imagecheck-image{opacity:1}.form-imagecheck-caption{padding:.25rem;font-size:.765625rem;color:#626976;text-align:center;transition:color .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-caption{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck:hover .form-imagecheck-caption{color:#1e293b}.form-selectgroup{display:inline-flex;margin:0 -.5rem -.5rem 0;flex-wrap:wrap}.form-selectgroup .form-selectgroup-item{margin:0 .5rem .5rem 0}.form-selectgroup-vertical{flex-direction:column}.form-selectgroup-item{display:block;position:relative}.form-selectgroup-input{position:absolute;top:0;left:0;z-index:-1;opacity:0}.form-selectgroup-label{position:relative;display:block;min-width:calc(1.4285714286em + .875rem + 2px);margin:0;padding:.4375rem .75rem;font-size:.875rem;line-height:1.4285714286;color:#626976;background:#fff;text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid #d9dbde;border-radius:3px;transition:border-color .3s,background .3s,color .3s}@media (prefers-reduced-motion:reduce){.form-selectgroup-label{transition:none}}.form-selectgroup-label .icon:only-child{margin:0 -.25rem}.form-selectgroup-label:hover{color:#1e293b}.form-selectgroup-check{display:inline-block;width:1rem;height:1rem;border:1px solid rgba(98,105,118,.24);vertical-align:middle}.form-selectgroup-input[type=checkbox]+.form-selectgroup-label .form-selectgroup-check{border-radius:4px}.form-selectgroup-input[type=radio]+.form-selectgroup-label .form-selectgroup-check{border-radius:50%}.form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-check{background-color:#206bc4;background-repeat:repeat;background-position:center;background-size:1rem;border-color:rgba(98,105,118,.24)}.form-selectgroup-input[type=checkbox]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-selectgroup-input[type=radio]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-selectgroup-check-floated{position:absolute;top:.4375rem;right:.4375rem}.form-selectgroup-input:checked+.form-selectgroup-label{z-index:1;color:#206bc4;background:rgba(32,107,196,.04);border-color:#206bc4}.form-selectgroup-input:focus+.form-selectgroup-label{z-index:2;color:#206bc4;border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-selectgroup-boxes .form-selectgroup-label{text-align:left;padding:1.25rem 1rem;color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label{color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-title{color:#206bc4}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-label-content{opacity:1}.form-selectgroup-pills{flex-wrap:wrap;align-items:flex-start}.form-selectgroup-pills .form-selectgroup-item{flex-grow:0}.form-selectgroup-pills .form-selectgroup-label{border-radius:50px}.form-control-color::-webkit-color-swatch{border:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.form-control::-webkit-file-upload-button{background-color:var(--tblr-btn-color,#fafbfc)}.form-control::file-selector-button{background-color:var(--tblr-btn-color,#fafbfc)}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--tblr-btn-color,#eeeeef)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--tblr-btn-color,#eeeeef)}.form-check{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-check.form-check-highlight .form-check-input:not(:checked)~.form-check-label{opacity:.7}.form-check-input{background-size:1rem;margin-top:.125rem}.form-switch .form-check-input{transition:background-color .3s,background-position .3s}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-check-label{display:block}.form-check-label.required:after{content:"*";margin-left:.25rem;color:#d63939}.form-check-description{display:block;color:#626976;font-size:.75rem;margin-top:.25rem}.form-check-single{margin:0}.form-check-single .form-check-input{margin:0}.form-switch .form-check-input{height:1.125rem;margin-top:.0625rem}.form-switch-lg .form-check-input{height:1.5rem;width:2.75rem;background-size:1.5rem}.form-control.is-invalid-lite,.form-control.is-valid-lite,.form-select.is-invalid-lite,.form-select.is-valid-lite{border-color:var(--tblr-border-color)!important}.legend{display:inline-block;background:var(--tblr-border-color-light);width:.75em;height:.75em;border-radius:4px}.list-group{margin-left:0;margin-right:0}.list-group-header{background:#fafbfc;padding:.5rem 1.25rem;font-size:.75rem;font-weight:500;line-height:1;text-transform:uppercase;color:#626976;border-bottom:1px solid var(--tblr-border-color)}.list-group-flush>.list-group-header:last-child{border-bottom-width:0}.list-group-item{background-color:rgba(27,125,241,.02)}.list-group-item.active{background-color:inherit;border-left-color:#f59f00;border-left-width:2px}.list-group-item:active,.list-group-item:focus,.list-group-item:hover{background-color:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#64748b;background-color:rgba(27,125,241,.02)}.list-bordered .list-item{border-top:1px solid #e6e7e9;margin-top:-1px}.list-bordered .list-item:first-child{border-top:none}.list-group-hoverable .list-group-item-actions{opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.list-group-hoverable .list-group-item-actions{transition:none}}.list-group-hoverable .list-group-item-actions.show,.list-group-hoverable .list-group-item:hover .list-group-item-actions{opacity:1}.list-timeline{position:relative;padding:0;margin:0;list-style:none}.list-timeline>li{position:relative;margin-bottom:1.5rem}.list-timeline>li:last-child{margin-bottom:0}.list-timeline-time{float:right;margin-left:1rem;color:#626976}.list-timeline-icon{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:#fff;text-align:center;background:#626976;border-radius:100rem}.list-timeline-icon .icon{width:1rem;height:1rem;font-size:1rem}.list-timeline-title{margin:0;font-weight:600}.list-timeline-content{margin-left:3.5rem}@media screen and (min-width:768px){.list-timeline:not(.list-timeline-simple):before{position:absolute;top:0;bottom:0;left:calc(7.5rem + 2px);z-index:1;display:block;width:4px;content:"";background-color:#f5f7fb}.list-timeline:not(.list-timeline-simple)>li{z-index:2;min-height:40px}.list-timeline:not(.list-timeline-simple) .list-timeline-time{position:absolute;top:.5rem;left:0;width:5.5rem;margin:0;text-align:right}.list-timeline:not(.list-timeline-simple) .list-timeline-icon{top:0;left:6.5rem}.list-timeline:not(.list-timeline-simple) .list-timeline-content{padding:.625rem 0 0 10rem;margin:0}}.list-group-transparent{margin:0 -1.25rem}.list-group-transparent .list-group-item{background:0 0;border:0;border-radius:3px}.list-group-transparent .list-group-item .icon{color:#626976}.list-group-transparent .list-group-item.active{font-weight:600;color:inherit;background:rgba(32,107,196,.04)}.list-group-transparent .list-group-item.active .icon{color:inherit}.list-separated-item{padding:1rem 0}.list-separated-item:first-child{padding-top:0}.list-separated-item:last-child{padding-bottom:0}.list-separated-item+.list-separated-item{border-top:1px solid #e6e7e9}.list-inline-item:not(:last-child){margin-right:auto;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.list-inline-dots .list-inline-item+.list-inline-item:before{content:" · ";-webkit-margin-end:.5rem;margin-inline-end:.5rem}@-webkit-keyframes loader{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loader{from{transform:rotate(0)}to{transform:rotate(360deg)}}.loader{position:relative;display:block;width:2.5rem;height:2.5rem;color:#206bc4;vertical-align:middle}.loader:after{position:absolute;top:0;left:0;width:100%;height:100%;content:"";border:1px solid;border-color:transparent;border-top-color:currentColor;border-left-color:currentColor;border-radius:100rem;-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.dimmer{position:relative}.dimmer .loader{position:absolute;top:50%;right:0;left:0;display:none;margin:0 auto;transform:translateY(-50%)}.dimmer.active .loader{display:block}.dimmer.active .dimmer-content{pointer-events:none;opacity:.1}@-webkit-keyframes animated-dots{0%{transform:translateX(-100%)}}@keyframes animated-dots{0%{transform:translateX(-100%)}}.animated-dots{display:inline-block;overflow:hidden;vertical-align:bottom}.animated-dots:after{display:inline-block;content:"...";-webkit-animation:animated-dots 1.2s steps(4,jump-none) infinite;animation:animated-dots 1.2s steps(4,jump-none) infinite}.modal-content .btn-close{position:absolute;top:0;right:0;width:3.5rem;height:3.5rem;margin:0;padding:0;z-index:10}.modal-body::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.modal-body::-webkit-scrollbar{-webkit-transition:none;transition:none}}.modal-body::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.modal-body::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.modal-body:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.modal-body::-webkit-scrollbar-corner{background:0 0}.modal-body .modal-title{margin-bottom:1rem}.modal-body+.modal-body{border-top:1px solid var(--tblr-border-color)}.modal-status{position:absolute;top:0;left:0;right:0;height:2px;background:#626976;border-radius:4px 4px 0 0}.modal-header{align-items:center;min-height:3.5rem;background:#fff;padding:0 3.5rem 0 1.5rem}.modal-title{font-size:1rem;font-weight:600;line-height:1.4285714286}.modal-footer{padding-top:0;padding-bottom:.75rem}.modal-blur{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-full-width{max-width:none;margin:0 .5rem}.nav-vertical,.nav-vertical .nav{flex-direction:column;flex-wrap:nowrap}.nav-vertical .nav{margin-left:1.25rem;border-left:1px solid var(--tblr-border-color);padding-left:.5rem}.nav-vertical .nav-item.show .nav-link,.nav-vertical .nav-link.active{font-weight:600}.nav-vertical.nav-pills{margin:0 -.75rem}.nav-bordered{border-bottom:1px solid #e6e7e9}.nav-bordered .nav-item+.nav-item{margin-left:1.25rem}.nav-bordered .nav-link{padding-left:0;padding-right:0;margin:0 0 -1px;border:0;border-bottom:2px solid transparent;color:#626976}.nav-bordered .nav-item.show .nav-link,.nav-bordered .nav-link.active{color:#206bc4;border-color:#206bc4}.nav-tabs-alt .nav-link{font-size:13px;font-weight:600;text-transform:uppercase}.nav-link{display:flex;transition:color .3s;align-items:center}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link-toggle{margin-left:auto;padding:0 .25rem;transition:transform .3s}@media (prefers-reduced-motion:reduce){.nav-link-toggle{transition:none}}.nav-link-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(-45deg)}.nav-link-toggle:after{margin:0}.nav-link[aria-expanded=true] .nav-link-toggle{transform:rotate(180deg)}.nav-link-icon{width:1.5rem;height:1.25rem;margin-right:.25rem;opacity:.7}.nav-link-icon svg{display:block;height:100%}.stars{display:inline-flex;color:#94a3b8;font-size:.75rem}.stars .star:not(:first-child){margin-left:.25rem}.pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.page-link{min-width:1.75rem;border-radius:4px}.page-link:hover{background:0 0}.page-item{text-align:center}.page-item.page-next,.page-item.page-prev{flex:0 0 50%;text-align:left}.page-item.page-next{margin-left:auto;text-align:right}.page-item-subtitle{margin-bottom:2px;font-size:12px;color:#626976;text-transform:uppercase}.page-item.disabled .page-item-subtitle{color:rgba(98,105,118,.5)}.page-item-title{font-size:1rem;font-weight:400;color:#1e293b}.page-link:hover .page-item-title{color:#206bc4}.page-item.disabled .page-item-title{color:rgba(98,105,118,.5)}@-webkit-keyframes progress-indeterminate{0%{right:100%;left:-35%}100%,60%{right:-90%;left:100%}}@keyframes progress-indeterminate{0%{right:100%;left:-35%}100%,60%{right:-90%;left:100%}}.progress{position:relative;width:100%;line-height:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--tblr-border-color-light)}.progress::-webkit-progress-bar{background:#f1f5f9}.progress::-webkit-progress-value{background-color:#206bc4}.progress::-moz-progress-bar{background-color:#206bc4}.progress::-ms-fill{background-color:#206bc4;border:none}.progress-sm{height:.25rem}.progress-bar{height:100%}.progress-bar-indeterminate:after,.progress-bar-indeterminate:before{position:absolute;top:0;bottom:0;left:0;content:"";background-color:inherit;will-change:left,right}.progress-bar-indeterminate:before{-webkit-animation:progress-indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:progress-indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.progress-separated .progress-bar{border-right:2px solid var(--tblr-card-bg,#fff)}.ribbon{position:absolute;top:.75rem;right:-.25rem;z-index:1;padding:.25rem .75rem;font-size:.625rem;font-weight:600;line-height:1.5rem;color:#fff;text-align:center;text-transform:uppercase;background:#206bc4;border-color:#206bc4;display:inline-flex;align-items:center;justify-content:center;min-height:2rem;min-width:2rem}.ribbon:before{position:absolute;right:0;bottom:100%;width:0;height:0;content:"";filter:brightness(70%);border:.125rem solid;border-color:inherit;border-top-color:transparent;border-right-color:transparent}.ribbon.bg-blue{border-color:#206bc4}.ribbon.bg-blue-lt{border-color:#2b72c7!important}.ribbon.bg-azure{border-color:#4299e1}.ribbon.bg-azure-lt{border-color:#4b9ee3!important}.ribbon.bg-indigo{border-color:#4263eb}.ribbon.bg-indigo-lt{border-color:#4b6bec!important}.ribbon.bg-purple{border-color:#ae3ec9}.ribbon.bg-purple-lt{border-color:#b248cc!important}.ribbon.bg-pink{border-color:#d6336c}.ribbon.bg-pink-lt{border-color:#d83d73!important}.ribbon.bg-red{border-color:#d63939}.ribbon.bg-red-lt{border-color:#d84343!important}.ribbon.bg-orange{border-color:#f76707}.ribbon.bg-orange-lt{border-color:#f76f13!important}.ribbon.bg-yellow{border-color:#f59f00}.ribbon.bg-yellow-lt{border-color:#f6a40d!important}.ribbon.bg-lime{border-color:#74b816}.ribbon.bg-lime-lt{border-color:#7bbc22!important}.ribbon.bg-green{border-color:#2fb344}.ribbon.bg-green-lt{border-color:#39b74d!important}.ribbon.bg-teal{border-color:#0ca678}.ribbon.bg-teal-lt{border-color:#18aa7f!important}.ribbon.bg-cyan{border-color:#17a2b8}.ribbon.bg-cyan-lt{border-color:#23a7bc!important}.ribbon .icon{width:1.25rem;height:1.25rem;font-size:1.25rem}.ribbon-top{top:-.25rem;right:.75rem;width:2rem;padding:.5rem 0}.ribbon-top:before{top:0;right:100%;bottom:auto;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon-top.ribbon-start{right:auto;left:.75rem}.ribbon-top.ribbon-start:before{top:0;right:100%;left:auto}.ribbon-start{right:auto;left:-.25rem}.ribbon-start:before{top:auto;bottom:100%;left:0;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon-bottom{top:auto;bottom:.75rem}.ribbon-bookmark{padding-left:.25rem}.ribbon-bookmark:after{position:absolute;top:0;right:100%;display:block;width:0;height:0;content:"";border:1rem solid;border-color:inherit;border-right-width:0;border-left-color:transparent;border-left-width:.5rem}.ribbon-bookmark.ribbon-left{padding-right:.5rem;padding-left:.5rem}.ribbon-bookmark.ribbon-left:after{right:auto;left:100%;border-right-color:transparent;border-right-width:.5rem;border-left-width:0}.ribbon-bookmark.ribbon-top{padding-right:0;padding-bottom:.25rem;padding-left:0}.ribbon-bookmark.ribbon-top:after{top:100%;right:0;left:0;border-color:inherit;border-width:1rem;border-top-width:0;border-bottom-color:transparent;border-bottom-width:.5rem}.markdown{font-size:1rem;line-height:1.7142857143}.markdown>:first-child{margin-top:0}.markdown>:last-child,.markdown>:last-child .highlight{margin-bottom:0}@media (min-width:768px){.markdown>.hr,.markdown>hr{margin-top:3em;margin-bottom:3em}}.markdown>.h1,.markdown>.h2,.markdown>.h3,.markdown>.h4,.markdown>.h5,.markdown>.h6,.markdown>h1,.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{font-weight:600}.markdown>blockquote{font-size:1rem;margin:1.5rem 0;padding:.5rem 1.5rem}.markdown>img{border-radius:4px}.placeholder:not(.btn):not([class*=bg-]){background-color:currentColor!important}.placeholder:not(.avatar):not([class*=card-img-]){border-radius:4px}.steps{display:flex;flex-wrap:nowrap;width:100%;padding:0;margin:2rem 0;list-style:none}.steps .step-item{padding-top:calc(.5rem + 4px)}.steps .step-item:after{top:calc(.25rem + 2px);height:2px}.steps .step-item:before{width:.5rem;height:.5rem}.steps .step-item:after,.steps .step-item:before{color:#fff;background:#206bc4}.steps .step-item.active:before{color:inherit;border-color:#206bc4}.steps-blue .step-item:after,.steps-blue .step-item:before{color:#fff;background:#206bc4}.steps-blue .step-item.active:before{color:inherit;border-color:#206bc4}.steps-azure .step-item:after,.steps-azure .step-item:before{color:#fff;background:#4299e1}.steps-azure .step-item.active:before{color:inherit;border-color:#4299e1}.steps-indigo .step-item:after,.steps-indigo .step-item:before{color:#fff;background:#4263eb}.steps-indigo .step-item.active:before{color:inherit;border-color:#4263eb}.steps-purple .step-item:after,.steps-purple .step-item:before{color:#fff;background:#ae3ec9}.steps-purple .step-item.active:before{color:inherit;border-color:#ae3ec9}.steps-pink .step-item:after,.steps-pink .step-item:before{color:#fff;background:#d6336c}.steps-pink .step-item.active:before{color:inherit;border-color:#d6336c}.steps-red .step-item:after,.steps-red .step-item:before{color:#fff;background:#d63939}.steps-red .step-item.active:before{color:inherit;border-color:#d63939}.steps-orange .step-item:after,.steps-orange .step-item:before{color:#fff;background:#f76707}.steps-orange .step-item.active:before{color:inherit;border-color:#f76707}.steps-yellow .step-item:after,.steps-yellow .step-item:before{color:#fff;background:#f59f00}.steps-yellow .step-item.active:before{color:inherit;border-color:#f59f00}.steps-lime .step-item:after,.steps-lime .step-item:before{color:#fff;background:#74b816}.steps-lime .step-item.active:before{color:inherit;border-color:#74b816}.steps-green .step-item:after,.steps-green .step-item:before{color:#fff;background:#2fb344}.steps-green .step-item.active:before{color:inherit;border-color:#2fb344}.steps-teal .step-item:after,.steps-teal .step-item:before{color:#fff;background:#0ca678}.steps-teal .step-item.active:before{color:inherit;border-color:#0ca678}.steps-cyan .step-item:after,.steps-cyan .step-item:before{color:#fff;background:#17a2b8}.steps-cyan .step-item.active:before{color:inherit;border-color:#17a2b8}.step-item{position:relative;flex:1 1 0;min-height:1rem;margin-top:0;color:inherit;text-align:center;cursor:default}a.step-item{cursor:pointer}a.step-item:hover{color:inherit}.step-item:not(:first-child):after{position:absolute;left:-50%;width:100%;content:"";transform:translateY(-50%)}.step-item:before{position:absolute;top:0;left:50%;z-index:1;box-sizing:content-box;display:block;content:"";border:2px solid #fff;border-radius:100rem;transform:translateX(-50%)}.step-item.active{font-weight:600}.step-item.active:before{background:#fff}.step-item.active~.step-item{color:#626976}.step-item.active~.step-item:after,.step-item.active~.step-item:before{background:#f3f5f5}.step-item.active~.step-item:before{color:#626976!important}.steps-counter{counter-reset:steps}.steps-counter .step-item{padding-top:calc(1.5rem + 4px)}.steps-counter .step-item:after{top:calc(.75rem + 2px);height:2px}.steps-counter .step-item:before{width:1.5rem;height:1.5rem}.steps-counter .step-item{counter-increment:steps}.steps-counter .step-item:before{font-size:.75rem;line-height:1.5rem;content:counter(steps)}.steps-counter .step-item.active~.step-item:before{background:#fff}@-webkit-keyframes status-pulsate-main{40%{transform:scale(1.25,1.25)}60%{transform:scale(1.25,1.25)}}@keyframes status-pulsate-main{40%{transform:scale(1.25,1.25)}60%{transform:scale(1.25,1.25)}}@-webkit-keyframes status-pulsate-secondary{10%{transform:scale(1,1)}30%{transform:scale(3,3)}80%{transform:scale(3,3)}100%{transform:scale(1,1)}}@keyframes status-pulsate-secondary{10%{transform:scale(1,1)}30%{transform:scale(3,3)}80%{transform:scale(3,3)}100%{transform:scale(1,1)}}@-webkit-keyframes status-pulsate-tertiary{25%{transform:scale(1,1)}80%{transform:scale(3,3);opacity:0}100%{transform:scale(3,3);opacity:0}}@keyframes status-pulsate-tertiary{25%{transform:scale(1,1)}80%{transform:scale(3,3);opacity:0}100%{transform:scale(3,3);opacity:0}}.status{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118;display:inline-flex;align-items:center;height:2rem;padding:.5rem .75rem;gap:.5rem;color:var(--tblr-status-color);background:rgba(var(--tblr-status-color-rgb),.1);font-size:.875rem;text-transform:none;letter-spacing:normal;border-radius:100rem;font-weight:500;line-height:1;margin:0}.status .status-dot{background:var(--tblr-status-color)}.status .icon{font-size:1.25rem}.status-lite{border:1px solid var(--tblr-border-color)!important;background:0 0!important;color:var(--tblr-body-text)!important}.status-primary{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-secondary{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118}.status-success{--tblr-status-color:#2fb344;--tblr-status-color-rgb:47,179,68}.status-info{--tblr-status-color:#4299e1;--tblr-status-color-rgb:66,153,225}.status-warning{--tblr-status-color:#f76707;--tblr-status-color-rgb:247,103,7}.status-danger{--tblr-status-color:#d63939;--tblr-status-color-rgb:214,57,57}.status-light{--tblr-status-color:#fafbfc;--tblr-status-color-rgb:250,251,252}.status-dark{--tblr-status-color:#1e293b;--tblr-status-color-rgb:30,41,59}.status-muted{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118}.status-blue{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-azure{--tblr-status-color:#4299e1;--tblr-status-color-rgb:66,153,225}.status-indigo{--tblr-status-color:#4263eb;--tblr-status-color-rgb:66,99,235}.status-purple{--tblr-status-color:#ae3ec9;--tblr-status-color-rgb:174,62,201}.status-pink{--tblr-status-color:#d6336c;--tblr-status-color-rgb:214,51,108}.status-red{--tblr-status-color:#d63939;--tblr-status-color-rgb:214,57,57}.status-orange{--tblr-status-color:#f76707;--tblr-status-color-rgb:247,103,7}.status-yellow{--tblr-status-color:#f59f00;--tblr-status-color-rgb:245,159,0}.status-lime{--tblr-status-color:#74b816;--tblr-status-color-rgb:116,184,22}.status-green{--tblr-status-color:#2fb344;--tblr-status-color-rgb:47,179,68}.status-teal{--tblr-status-color:#0ca678;--tblr-status-color-rgb:12,166,120}.status-cyan{--tblr-status-color:#17a2b8;--tblr-status-color-rgb:23,162,184}.status-facebook{--tblr-status-color:#3b5998;--tblr-status-color-rgb:59,89,152}.status-twitter{--tblr-status-color:#1da1f2;--tblr-status-color-rgb:29,161,242}.status-linkedin{--tblr-status-color:#0a66c2;--tblr-status-color-rgb:10,102,194}.status-google{--tblr-status-color:#dc4e41;--tblr-status-color-rgb:220,78,65}.status-youtube{--tblr-status-color:#ff0000;--tblr-status-color-rgb:255,0,0}.status-vimeo{--tblr-status-color:#1ab7ea;--tblr-status-color-rgb:26,183,234}.status-dribbble{--tblr-status-color:#ea4c89;--tblr-status-color-rgb:234,76,137}.status-github{--tblr-status-color:#181717;--tblr-status-color-rgb:24,23,23}.status-instagram{--tblr-status-color:#e4405f;--tblr-status-color-rgb:228,64,95}.status-pinterest{--tblr-status-color:#bd081c;--tblr-status-color-rgb:189,8,28}.status-vk{--tblr-status-color:#6383a8;--tblr-status-color-rgb:99,131,168}.status-rss{--tblr-status-color:#ffa500;--tblr-status-color-rgb:255,165,0}.status-flickr{--tblr-status-color:#0063dc;--tblr-status-color-rgb:0,99,220}.status-bitbucket{--tblr-status-color:#0052cc;--tblr-status-color-rgb:0,82,204}.status-tabler{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-dot{--tblr-status-dot-color:var(--tblr-status-color, #626976);--tblr-status-size:0.5rem;position:relative;display:inline-block;width:var(--tblr-status-size);height:var(--tblr-status-size);background:var(--tblr-status-dot-color);border-radius:100rem}.status-dot-animated:before{content:"";position:absolute;inset:0;z-index:0;background:inherit;border-radius:inherit;opacity:.6;-webkit-animation:1s linear 2s backwards infinite status-pulsate-tertiary;animation:1s linear 2s backwards infinite status-pulsate-tertiary}.status-indicator{--tblr-status-indicator-size:2.5rem;--tblr-status-indicator-color:var(--tblr-status-color, #626976);display:block;position:relative;width:var(--tblr-status-indicator-size);height:var(--tblr-status-indicator-size)}.status-indicator-circle{--tblr-status-circle-size:.75rem;position:absolute;left:50%;top:50%;margin:calc(var(--tblr-status-circle-size)/ -2) 0 0 calc(var(--tblr-status-circle-size)/ -2);width:var(--tblr-status-circle-size);height:var(--tblr-status-circle-size);border-radius:100rem;background:var(--tblr-status-color)}.status-indicator-circle:nth-child(1){z-index:3}.status-indicator-circle:nth-child(2){z-index:2;opacity:.1}.status-indicator-circle:nth-child(3){z-index:1;opacity:.3}.status-indicator-animated .status-indicator-circle:nth-child(1){-webkit-animation:2s linear 1s infinite backwards status-pulsate-main;animation:2s linear 1s infinite backwards status-pulsate-main}.status-indicator-animated .status-indicator-circle:nth-child(2){-webkit-animation:2s linear 1s infinite backwards status-pulsate-secondary;animation:2s linear 1s infinite backwards status-pulsate-secondary}.status-indicator-animated .status-indicator-circle:nth-child(3){-webkit-animation:2s linear 1s infinite backwards status-pulsate-tertiary;animation:2s linear 1s infinite backwards status-pulsate-tertiary}.switch-icon{display:inline-block;line-height:1;border:0;padding:0;background:0 0;width:1.25rem;height:1.25rem;vertical-align:bottom;position:relative;cursor:pointer}.switch-icon.disabled{pointer-events:none;opacity:.65}.switch-icon:focus{outline:0}.switch-icon svg{display:block;width:100%;height:100%}.switch-icon .switch-icon-a,.switch-icon .switch-icon-b{display:block;width:100%;height:100%}.switch-icon .switch-icon-a{opacity:1}.switch-icon .switch-icon-b{position:absolute;top:0;left:0;opacity:0}.switch-icon.active .switch-icon-a{opacity:0}.switch-icon.active .switch-icon-b{opacity:1}.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:opacity .5s}@media (prefers-reduced-motion:reduce){.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:opacity .5s,transform 0s .5s}@media (prefers-reduced-motion:reduce){.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-b{transform:scale(1.5)}.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:opacity 0s,transform .5s}@media (prefers-reduced-motion:reduce){.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:none}}.switch-icon-scale.active .switch-icon-b{transform:scale(1)}.switch-icon-flip{perspective:10em}.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d;transition:opacity 0s .2s,transform .4s ease-in-out}@media (prefers-reduced-motion:reduce){.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{transition:none}}.switch-icon-flip .switch-icon-a{opacity:1;transform:rotateY(0)}.switch-icon-flip .switch-icon-b{opacity:1;transform:rotateY(-180deg)}.switch-icon-flip.active .switch-icon-a{opacity:1;transform:rotateY(180deg)}.switch-icon-flip.active .switch-icon-b{opacity:1;transform:rotateY(0)}.switch-icon-slide-down,.switch-icon-slide-left,.switch-icon-slide-right,.switch-icon-slide-up{overflow:hidden}.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b{transition:opacity .3s,transform .3s}@media (prefers-reduced-motion:reduce){.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b{transition:none}}.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-up .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-b{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-a,.switch-icon-slide-left.active .switch-icon-a,.switch-icon-slide-right.active .switch-icon-a,.switch-icon-slide-up.active .switch-icon-a{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-b,.switch-icon-slide-left.active .switch-icon-b,.switch-icon-slide-right.active .switch-icon-b,.switch-icon-slide-up.active .switch-icon-b{transform:translateY(0)}.switch-icon-slide-left .switch-icon-a{transform:translateX(0)}.switch-icon-slide-left .switch-icon-b{transform:translateX(100%)}.switch-icon-slide-left.active .switch-icon-a{transform:translateX(-100%)}.switch-icon-slide-left.active .switch-icon-b{transform:translateX(0)}.switch-icon-slide-right .switch-icon-a{transform:translateX(0)}.switch-icon-slide-right .switch-icon-b{transform:translateX(-100%)}.switch-icon-slide-right.active .switch-icon-a{transform:translateX(100%)}.switch-icon-slide-right.active .switch-icon-b{transform:translateX(0)}.switch-icon-slide-down .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-a{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-b{transform:translateY(0)}.markdown>table thead th,.table thead th{color:#626976;background:var(--tblr-border-color-light);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;padding-top:.5rem;padding-bottom:.5rem;white-space:nowrap}@media print{.markdown>table thead th,.table thead th{background:0 0}}.markdown>table>:not(:first-child),.table>:not(:first-child){border-top-width:1px}.table-responsive .markdown>table,.table-responsive .table{margin-bottom:0}.table-transparent thead th{background:0 0}.table-nowrap>:not(caption)>*>*{white-space:nowrap}.table-vcenter>:not(caption)>*>*{vertical-align:middle}.table-center>:not(caption)>*>*{text-align:center}.td-truncate{max-width:1px;width:100%}.table-mobile{display:block}.table-mobile thead{display:none}.table-mobile tbody,.table-mobile tr{display:flex;flex-direction:column}.table-mobile td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile .btn{display:block}@media (max-width:575.98px){.table-mobile-sm{display:block}.table-mobile-sm thead{display:none}.table-mobile-sm tbody,.table-mobile-sm tr{display:flex;flex-direction:column}.table-mobile-sm td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-sm td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-sm tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-sm .btn{display:block}}@media (max-width:767.98px){.table-mobile-md{display:block}.table-mobile-md thead{display:none}.table-mobile-md tbody,.table-mobile-md tr{display:flex;flex-direction:column}.table-mobile-md td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-md td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-md tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-md .btn{display:block}}@media (max-width:991.98px){.table-mobile-lg{display:block}.table-mobile-lg thead{display:none}.table-mobile-lg tbody,.table-mobile-lg tr{display:flex;flex-direction:column}.table-mobile-lg td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-lg td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-lg tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-lg .btn{display:block}}@media (max-width:1199.98px){.table-mobile-xl{display:block}.table-mobile-xl thead{display:none}.table-mobile-xl tbody,.table-mobile-xl tr{display:flex;flex-direction:column}.table-mobile-xl td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-xl td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-xl tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-xl .btn{display:block}}@media (max-width:1399.98px){.table-mobile-xxl{display:block}.table-mobile-xxl thead{display:none}.table-mobile-xxl tbody,.table-mobile-xxl tr{display:flex;flex-direction:column}.table-mobile-xxl td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-xxl td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-xxl tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-xxl .btn{display:block}}.table-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;border:0;background:inherit;display:block;width:100%;text-align:inherit;transition:color .3s;margin:-.5rem -.5rem;padding:.5rem .5rem}@media (prefers-reduced-motion:reduce){.table-sort{transition:none}}.table-sort.asc,.table-sort.desc,.table-sort:hover{color:#1e293b}.table-sort.asc:after,.table-sort.desc:after,.table-sort:after{content:"";display:inline-flex;width:1rem;height:1rem;vertical-align:bottom;background:url("data:image/svg+xml,") no-repeat center;opacity:.2}.table-sort.asc:after{background:url("data:image/svg+xml,") no-repeat center;opacity:1}.table-sort.desc:after{background:url("data:image/svg+xml,") no-repeat center;opacity:1}.toast{background:#fff;border:1px solid rgba(98,105,118,.16);border-left:.25rem solid var(--tblr-toast-color);box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.toast .toast-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.toast button[data-bs-dismiss=toast]{outline:0}.toast-primary{--tblr-toast-color:#206bc4}.toast-secondary{--tblr-toast-color:#626976}.toast-success{--tblr-toast-color:#2fb344}.toast-info{--tblr-toast-color:#4299e1}.toast-warning{--tblr-toast-color:#f76707}.toast-danger{--tblr-toast-color:#d63939}.toast-light{--tblr-toast-color:#fafbfc}.toast-dark{--tblr-toast-color:#1e293b}.toast-muted{--tblr-toast-color:#626976}.toolbar{display:flex;flex-wrap:nowrap;flex-shrink:0;margin:0 -.5rem}.toolbar>*{margin:0 .5rem}.hr-text{display:flex;align-items:center;margin:2rem 0;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;height:1px}.hr-text:after,.hr-text:before{flex:1 1 auto;height:1px;background-color:currentColor;opacity:.16}.hr-text:before{content:"";margin-right:.5rem}.hr-text:after{content:"";margin-left:.5rem}.hr-text>:first-child{padding-right:.5rem;padding-left:0;color:#626976}.hr-text.hr-text-left:before{content:none}.hr-text.hr-text-left>:first-child{padding-right:.5rem;padding-left:.5rem}.hr-text.hr-text-right:before{content:""}.hr-text.hr-text-right:after{content:none}.hr-text.hr-text-right>:first-child{padding-right:0;padding-left:.5rem}.card>.hr-text{margin:0}.hr-text-spaceless{margin:-.5rem 0}.lead{line-height:1.4}a{-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.h1 a,.h2 a,.h3 a,.h4 a,.h5 a,.h6 a,h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit}.h1 a:hover,.h2 a:hover,.h3 a:hover,.h4 a:hover,.h5 a:hover,.h6 a:hover,h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{color:inherit}.h1,h1{line-height:1.3333333333}.h2,h2{line-height:1.4}.h3,h3{line-height:1.5}.h4,h4{line-height:1.4285714286}.h5,h5{line-height:1.3333333333}.h6,h6{line-height:1.6}.strong,b,strong{font-weight:600}blockquote{padding-left:1rem;border-left:2px solid #e6e7e9}blockquote p{margin-bottom:1rem}blockquote cite{display:block;text-align:right}blockquote cite:before{content:"— "}ol,ul{padding-left:1.5rem}.hr,hr{margin:2rem 0}dl dd:last-child{margin-bottom:0}code{padding:2px 4px;background:rgba(75,84,98,.03);border:1px solid rgba(75,84,98,.064);border-radius:4px;font-weight:400}pre{padding:1rem;overflow:auto;font-size:.75rem;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.25rem;-moz-tab-size:3;-o-tab-size:3;tab-size:3;border-radius:4px;white-space:pre-wrap;background:#fdfdfe;border:1px solid rgba(98,105,118,.16);-webkit-font-smoothing:auto}pre code{padding:0;background:0 0;border:none;border-radius:0}img{max-width:100%}.list-unstyled{margin-left:0}::-moz-selection{color:#fff;background-color:#307fdd}::selection{color:#fff;background-color:#307fdd}[class*=" link-"].disabled,[class^=link-].disabled{color:#475569;pointer-events:none}.subheader{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976}.chart{display:block;min-height:10rem}.chart text{font-family:inherit}.chart-sm{height:2.5rem}.chart-lg{height:15rem}.chart-square{height:5.75rem}.chart-sparkline{position:relative;width:4rem;height:2.5rem;line-height:1;min-height:0!important}.chart-sparkline-sm{height:1.5rem}.chart-sparkline-square{width:2.5rem}.chart-sparkline-wide{width:6rem}.chart-sparkline-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.625rem}.chart-sparkline-label .icon{width:1rem;height:1rem;font-size:1rem}.offcanvas{background:var(--tblr-card-bg)}.offcanvas-header{border-bottom:1px solid rgba(98,105,118,.16)}.offcanvas-footer{padding:1.5rem 1.5rem}.offcanvas-title{font-size:1rem;font-weight:500;line-height:1.5rem}.offcanvas-narrow{width:20rem}.bg-white-overlay{color:#fff;background-color:rgba(250,251,252,.24)}.bg-dark-overlay{color:#fff;background-color:rgba(30,41,59,.24)}.bg-cover{background-repeat:no-repeat;background-size:cover;background-position:center}.bg-primary{color:#fff!important;background:#206bc4!important}.text-primary{color:#206bc4!important}.bg-primary-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.bg-secondary{color:#fff!important;background:#626976!important}.text-secondary{color:#626976!important}.bg-secondary-lt{color:#626976!important;background:rgba(98,105,118,.05)!important}.bg-success{color:#fff!important;background:#2fb344!important}.text-success{color:#2fb344!important}.bg-success-lt{color:#2fb344!important;background:rgba(47,179,68,.05)!important}.bg-info{color:#fff!important;background:#4299e1!important}.text-info{color:#4299e1!important}.bg-info-lt{color:#4299e1!important;background:rgba(66,153,225,.05)!important}.bg-warning{color:#fff!important;background:#f76707!important}.text-warning{color:#f76707!important}.bg-warning-lt{color:#f76707!important;background:rgba(247,103,7,.05)!important}.bg-danger{color:#fff!important;background:#d63939!important}.text-danger{color:#d63939!important}.bg-danger-lt{color:#d63939!important;background:rgba(214,57,57,.05)!important}.bg-light{color:#fff!important;background:#fafbfc!important}.text-light{color:#fafbfc!important}.bg-light-lt{color:#fafbfc!important;background:rgba(250,251,252,.05)!important}.bg-dark{color:#fff!important;background:#1e293b!important}.text-dark{color:#1e293b!important}.bg-dark-lt{color:#1e293b!important;background:rgba(30,41,59,.05)!important}.bg-muted{color:#fff!important;background:#626976!important}.text-muted{color:#626976!important}.bg-muted-lt{color:#626976!important;background:rgba(98,105,118,.05)!important}.bg-blue{color:#fff!important;background:#206bc4!important}.text-blue{color:#206bc4!important}.bg-blue-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.bg-azure{color:#fff!important;background:#4299e1!important}.text-azure{color:#4299e1!important}.bg-azure-lt{color:#4299e1!important;background:rgba(66,153,225,.05)!important}.bg-indigo{color:#fff!important;background:#4263eb!important}.text-indigo{color:#4263eb!important}.bg-indigo-lt{color:#4263eb!important;background:rgba(66,99,235,.05)!important}.bg-purple{color:#fff!important;background:#ae3ec9!important}.text-purple{color:#ae3ec9!important}.bg-purple-lt{color:#ae3ec9!important;background:rgba(174,62,201,.05)!important}.bg-pink{color:#fff!important;background:#d6336c!important}.text-pink{color:#d6336c!important}.bg-pink-lt{color:#d6336c!important;background:rgba(214,51,108,.05)!important}.bg-red{color:#fff!important;background:#d63939!important}.text-red{color:#d63939!important}.bg-red-lt{color:#d63939!important;background:rgba(214,57,57,.05)!important}.bg-orange{color:#fff!important;background:#f76707!important}.text-orange{color:#f76707!important}.bg-orange-lt{color:#f76707!important;background:rgba(247,103,7,.05)!important}.bg-yellow{color:#fff!important;background:#f59f00!important}.text-yellow{color:#f59f00!important}.bg-yellow-lt{color:#f59f00!important;background:rgba(245,159,0,.05)!important}.bg-lime{color:#fff!important;background:#74b816!important}.text-lime{color:#74b816!important}.bg-lime-lt{color:#74b816!important;background:rgba(116,184,22,.05)!important}.bg-green{color:#fff!important;background:#2fb344!important}.text-green{color:#2fb344!important}.bg-green-lt{color:#2fb344!important;background:rgba(47,179,68,.05)!important}.bg-teal{color:#fff!important;background:#0ca678!important}.text-teal{color:#0ca678!important}.bg-teal-lt{color:#0ca678!important;background:rgba(12,166,120,.05)!important}.bg-cyan{color:#fff!important;background:#17a2b8!important}.text-cyan{color:#17a2b8!important}.bg-cyan-lt{color:#17a2b8!important;background:rgba(23,162,184,.05)!important}.bg-facebook{color:#fff!important;background:#3b5998!important}.text-facebook{color:#3b5998!important}.bg-facebook-lt{color:#3b5998!important;background:rgba(59,89,152,.05)!important}.bg-twitter{color:#fff!important;background:#1da1f2!important}.text-twitter{color:#1da1f2!important}.bg-twitter-lt{color:#1da1f2!important;background:rgba(29,161,242,.05)!important}.bg-linkedin{color:#fff!important;background:#0a66c2!important}.text-linkedin{color:#0a66c2!important}.bg-linkedin-lt{color:#0a66c2!important;background:rgba(10,102,194,.05)!important}.bg-google{color:#fff!important;background:#dc4e41!important}.text-google{color:#dc4e41!important}.bg-google-lt{color:#dc4e41!important;background:rgba(220,78,65,.05)!important}.bg-youtube{color:#fff!important;background:red!important}.text-youtube{color:red!important}.bg-youtube-lt{color:red!important;background:rgba(255,0,0,.05)!important}.bg-vimeo{color:#fff!important;background:#1ab7ea!important}.text-vimeo{color:#1ab7ea!important}.bg-vimeo-lt{color:#1ab7ea!important;background:rgba(26,183,234,.05)!important}.bg-dribbble{color:#fff!important;background:#ea4c89!important}.text-dribbble{color:#ea4c89!important}.bg-dribbble-lt{color:#ea4c89!important;background:rgba(234,76,137,.05)!important}.bg-github{color:#fff!important;background:#181717!important}.text-github{color:#181717!important}.bg-github-lt{color:#181717!important;background:rgba(24,23,23,.05)!important}.bg-instagram{color:#fff!important;background:#e4405f!important}.text-instagram{color:#e4405f!important}.bg-instagram-lt{color:#e4405f!important;background:rgba(228,64,95,.05)!important}.bg-pinterest{color:#fff!important;background:#bd081c!important}.text-pinterest{color:#bd081c!important}.bg-pinterest-lt{color:#bd081c!important;background:rgba(189,8,28,.05)!important}.bg-vk{color:#fff!important;background:#6383a8!important}.text-vk{color:#6383a8!important}.bg-vk-lt{color:#6383a8!important;background:rgba(99,131,168,.05)!important}.bg-rss{color:#fff!important;background:orange!important}.text-rss{color:orange!important}.bg-rss-lt{color:orange!important;background:rgba(255,165,0,.05)!important}.bg-flickr{color:#fff!important;background:#0063dc!important}.text-flickr{color:#0063dc!important}.bg-flickr-lt{color:#0063dc!important;background:rgba(0,99,220,.05)!important}.bg-bitbucket{color:#fff!important;background:#0052cc!important}.text-bitbucket{color:#0052cc!important}.bg-bitbucket-lt{color:#0052cc!important;background:rgba(0,82,204,.05)!important}.bg-tabler{color:#fff!important;background:#206bc4!important}.text-tabler{color:#206bc4!important}.bg-tabler-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.scrollable{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.hover{overflow-y:hidden}.scrollable.hover>*{margin-top:-1px}.scrollable.hover:active,.scrollable.hover:focus,.scrollable.hover:hover{overflow:visible;overflow-y:auto}.touch .scrollable{overflow-y:auto!important}.scroll-x,.scroll-y{overflow:hidden;-webkit-overflow-scrolling:touch}.scroll-y{overflow-y:auto}.scroll-x{overflow-x:auto}.no-scroll{overflow:hidden}.w-0{width:0!important}.h-0{height:0!important}.w-1{width:.25rem!important}.h-1{height:.25rem!important}.w-2{width:.5rem!important}.h-2{height:.5rem!important}.w-3{width:1rem!important}.h-3{height:1rem!important}.w-4{width:2rem!important}.h-4{height:2rem!important}.w-5{width:4rem!important}.h-5{height:4rem!important}.w-auto{width:auto!important}.h-auto{height:auto!important}.w-px{width:1px!important}.h-px{height:1px!important}.w-full{width:100%!important}.h-full{height:100%!important}.opacity-0{opacity:0!important}.opacity-5{opacity:.05!important}.opacity-10{opacity:.1!important}.opacity-15{opacity:.15!important}.opacity-20{opacity:.2!important}.opacity-25{opacity:.25!important}.opacity-30{opacity:.3!important}.opacity-35{opacity:.35!important}.opacity-40{opacity:.4!important}.opacity-45{opacity:.45!important}.opacity-50{opacity:.5!important}.opacity-55{opacity:.55!important}.opacity-60{opacity:.6!important}.opacity-65{opacity:.65!important}.opacity-70{opacity:.7!important}.opacity-75{opacity:.75!important}.opacity-80{opacity:.8!important}.opacity-85{opacity:.85!important}.opacity-90{opacity:.9!important}.opacity-95{opacity:.95!important}.opacity-100{opacity:1!important}.hover-shadow-sm:hover{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.hover-shadow:hover{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.hover-shadow-lg:hover{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.hover-shadow-none:hover{box-shadow:none!important}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto} \ No newline at end of file + */body:not(.theme-dark) .hide-theme-light{display:none!important}@media not print{.theme-dark{--tblr-body-color:#fafbfc;--tblr-body-color-rgb:250,251,252;--tblr-body-bg:#1b2434;--tblr-body-bg-rgb:27,36,52;--tblr-card-bg:#1e293b;--tblr-card-bg-rgb:30,41,59;--tblr-border-color:#2c3c56;--tblr-border-color-light:#253249;--tblr-btn-color:#1e293b;color:#fafbfc;background-color:#1b2434}.theme-dark .page{color:#fafbfc}.theme-dark .hide-theme-dark{display:none!important}.theme-dark .text-body{color:#fafbfc!important}.theme-dark .alert:not(.alert-important),.theme-dark .card,.theme-dark .card-footer,.theme-dark .card-stacked::after,.theme-dark .dropdown-menu,.theme-dark .footer:not(.footer-transparent),.theme-dark .modal-content,.theme-dark .modal-header,.theme-dark .toast,.theme-dark .toast-header{background-color:#1e293b;color:inherit}.theme-dark .bg-light{background-color:#1b2434!important}.theme-dark .card{border-color:transparent}.theme-dark .card-tabs .nav-tabs .nav-link{background-color:#1b2434;color:inherit}.theme-dark pre{background-color:#1b2434;border-color:#2c3c56}.theme-dark .card-tabs .nav-tabs .nav-link.active{background-color:#1e293b;color:inherit}.theme-dark .btn-white,.theme-dark .form-file-button{background-image:none}.theme-dark .form-check-input:not(:checked),.theme-dark .form-control,.theme-dark .form-file-text,.theme-dark .form-imagecheck-figure:before,.theme-dark .form-select,.theme-dark .form-selectgroup-check,.theme-dark .form-selectgroup-label{background-color:#1b2434;color:#fafbfc;border-color:#2c3c56}.theme-dark .form-control-plaintext{color:#fafbfc}.theme-dark .input-group-flat .input-group-text{background-color:#1b2434}.theme-dark .input-group-text{border-color:#2c3c56}.theme-dark .highlight{background-color:#1b2434}.theme-dark .avatar{--tblr-avatar-bg:#212e42}.theme-dark .avatar-list-stacked .avatar{box-shadow:0 0 0 2px #1e293b}.theme-dark .accordion-button,.theme-dark .markdown,.theme-dark .markdown>*{color:inherit}.theme-dark .accordion-button:after,.theme-dark .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}.theme-dark .apexcharts-text{fill:#fafbfc}.theme-dark .apexcharts-gridline{stroke:var(--tblr-border-color)}.theme-dark .apexcharts-legend-text{color:inherit!important}.theme-dark .apexcharts-tooltip{background:#1e293b!important;border:1px solid #2c3c56!important;box-shadow:2px 2px 6px -4px #1b2434!important}.theme-dark .apexcharts-tooltip .apexcharts-tooltip-title{background:#1e293b!important;border-bottom:1px solid #2c3c56!important}.theme-dark .navbar-brand-autodark{filter:brightness(0) invert(1)}.theme-dark .input-group-text,.theme-dark .markdown>table thead th,.theme-dark .table thead th{background:0 0}.theme-dark .list-group-header{background:#1b2434}.theme-dark .list-group-item{border-color:rgba(98,105,118,.16)}.theme-dark .list-group-item:not(.disabled):not(:disabled){color:#fafbfc}.theme-dark .list-group-item.disabled,.theme-dark .list-group-item:disabled{color:#475569}.theme-dark .apexcharts-radialbar-area{stroke:#2c3c56}.theme-dark .form-control.is-invalid,.theme-dark .was-validated .form-control:invalid{border-color:var(--tblr-danger)}.theme-dark .form-control.is-valid,.theme-dark .was-validated .form-control:valid{border-color:var(--tblr-success)}}@media not print{@media (prefers-color-scheme:dark){.theme-dark-auto{--tblr-body-color:#fafbfc;--tblr-body-color-rgb:250,251,252;--tblr-body-bg:#1b2434;--tblr-body-bg-rgb:27,36,52;--tblr-card-bg:#1e293b;--tblr-card-bg-rgb:30,41,59;--tblr-border-color:#2c3c56;--tblr-border-color-light:#253249;--tblr-btn-color:#1e293b;color:#fafbfc;background-color:#1b2434}.theme-dark-auto .page{color:#fafbfc}.theme-dark-auto .hide-theme-dark{display:none!important}.theme-dark-auto .text-body{color:#fafbfc!important}.theme-dark-auto .alert:not(.alert-important),.theme-dark-auto .card,.theme-dark-auto .card-footer,.theme-dark-auto .card-stacked::after,.theme-dark-auto .dropdown-menu,.theme-dark-auto .footer:not(.footer-transparent),.theme-dark-auto .modal-content,.theme-dark-auto .modal-header,.theme-dark-auto .toast,.theme-dark-auto .toast-header{background-color:#1e293b;color:inherit}.theme-dark-auto .bg-light{background-color:#1b2434!important}.theme-dark-auto .card{border-color:transparent}.theme-dark-auto .card-tabs .nav-tabs .nav-link{background-color:#1b2434;color:inherit}.theme-dark-auto pre{background-color:#1b2434;border-color:#2c3c56}.theme-dark-auto .card-tabs .nav-tabs .nav-link.active{background-color:#1e293b;color:inherit}.theme-dark-auto .btn-white,.theme-dark-auto .form-file-button{background-image:none}.theme-dark-auto .form-check-input:not(:checked),.theme-dark-auto .form-control,.theme-dark-auto .form-file-text,.theme-dark-auto .form-imagecheck-figure:before,.theme-dark-auto .form-select,.theme-dark-auto .form-selectgroup-check,.theme-dark-auto .form-selectgroup-label{background-color:#1b2434;color:#fafbfc;border-color:#2c3c56}.theme-dark-auto .form-control-plaintext{color:#fafbfc}.theme-dark-auto .input-group-flat .input-group-text{background-color:#1b2434}.theme-dark-auto .input-group-text{border-color:#2c3c56}.theme-dark-auto .highlight{background-color:#1b2434}.theme-dark-auto .avatar{--tblr-avatar-bg:#212e42}.theme-dark-auto .avatar-list-stacked .avatar{box-shadow:0 0 0 2px #1e293b}.theme-dark-auto .accordion-button,.theme-dark-auto .markdown,.theme-dark-auto .markdown>*{color:inherit}.theme-dark-auto .accordion-button:after,.theme-dark-auto .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}.theme-dark-auto .apexcharts-text{fill:#fafbfc}.theme-dark-auto .apexcharts-gridline{stroke:var(--tblr-border-color)}.theme-dark-auto .apexcharts-legend-text{color:inherit!important}.theme-dark-auto .apexcharts-tooltip{background:#1e293b!important;border:1px solid #2c3c56!important;box-shadow:2px 2px 6px -4px #1b2434!important}.theme-dark-auto .apexcharts-tooltip .apexcharts-tooltip-title{background:#1e293b!important;border-bottom:1px solid #2c3c56!important}.theme-dark-auto .navbar-brand-autodark{filter:brightness(0) invert(1)}.theme-dark-auto .input-group-text,.theme-dark-auto .markdown>table thead th,.theme-dark-auto .table thead th{background:0 0}.theme-dark-auto .list-group-header{background:#1b2434}.theme-dark-auto .list-group-item{border-color:rgba(98,105,118,.16)}.theme-dark-auto .list-group-item:not(.disabled):not(:disabled){color:#fafbfc}.theme-dark-auto .list-group-item.disabled,.theme-dark-auto .list-group-item:disabled{color:#475569}.theme-dark-auto .apexcharts-radialbar-area{stroke:#2c3c56}.theme-dark-auto .form-control.is-invalid,.theme-dark-auto .was-validated .form-control:invalid{border-color:var(--tblr-danger)}.theme-dark-auto .form-control.is-valid,.theme-dark-auto .was-validated .form-control:valid{border-color:var(--tblr-success)}}}.accordion{--tblr-accordion-color:var(--tblr-body-color)}.accordion-button:focus:not(:focus-visible){outline:0;box-shadow:none}.accordion-button:after{opacity:.7}.accordion-button:not(.collapsed){font-weight:600;border-bottom-color:transparent;box-shadow:none}.accordion-button:not(.collapsed):after{opacity:1}.alert{--tblr-alert-color:#626976;background:#fff;border:1px solid rgba(98,105,118,.16);border-left:.25rem solid var(--tblr-alert-color);box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.alert>:last-child{margin-bottom:0}.alert-important{border-color:transparent;background:var(--tblr-alert-color);color:#fff}.alert-important .alert-icon,.alert-important .alert-link{color:inherit}.alert-important .alert-link:hover{color:inherit}.alert-link,.alert-link:hover{color:var(--tblr-alert-color)}.alert-primary{--tblr-alert-color:#206bc4}.alert-secondary{--tblr-alert-color:#626976}.alert-success{--tblr-alert-color:#2fb344}.alert-info{--tblr-alert-color:#4299e1}.alert-warning{--tblr-alert-color:#f76707}.alert-danger{--tblr-alert-color:#d63939}.alert-light{--tblr-alert-color:#fafbfc}.alert-dark{--tblr-alert-color:#1e293b}.alert-muted{--tblr-alert-color:#626976}.alert-blue{--tblr-alert-color:#206bc4}.alert-azure{--tblr-alert-color:#4299e1}.alert-indigo{--tblr-alert-color:#4263eb}.alert-purple{--tblr-alert-color:#ae3ec9}.alert-pink{--tblr-alert-color:#d6336c}.alert-red{--tblr-alert-color:#d63939}.alert-orange{--tblr-alert-color:#f76707}.alert-yellow{--tblr-alert-color:#f59f00}.alert-lime{--tblr-alert-color:#74b816}.alert-green{--tblr-alert-color:#2fb344}.alert-teal{--tblr-alert-color:#0ca678}.alert-cyan{--tblr-alert-color:#17a2b8}.alert-facebook{--tblr-alert-color:#3b5998}.alert-twitter{--tblr-alert-color:#1da1f2}.alert-linkedin{--tblr-alert-color:#0a66c2}.alert-google{--tblr-alert-color:#dc4e41}.alert-youtube{--tblr-alert-color:#ff0000}.alert-vimeo{--tblr-alert-color:#1ab7ea}.alert-dribbble{--tblr-alert-color:#ea4c89}.alert-github{--tblr-alert-color:#181717}.alert-instagram{--tblr-alert-color:#e4405f}.alert-pinterest{--tblr-alert-color:#bd081c}.alert-vk{--tblr-alert-color:#6383a8}.alert-rss{--tblr-alert-color:#ffa500}.alert-flickr{--tblr-alert-color:#0063dc}.alert-bitbucket{--tblr-alert-color:#0052cc}.alert-tabler{--tblr-alert-color:#206bc4}.alert-icon{color:var(--tblr-alert-color);width:1.5rem!important;height:1.5rem!important;margin:-.125rem 1rem -.125rem 0}.alert-title{font-size:.875rem;line-height:1.4285714286;font-weight:600;margin-bottom:.25rem;color:var(--tblr-alert-color)}.avatar{--tblr-avatar-size:2.5rem;--tblr-avatar-bg:var(--tblr-border-color-light);position:relative;width:var(--tblr-avatar-size);height:var(--tblr-avatar-size);font-size:calc(var(--tblr-avatar-size)/ 2.8571428572);font-weight:500;display:inline-flex;align-items:center;justify-content:center;color:#626976;text-align:center;text-transform:uppercase;vertical-align:bottom;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--tblr-avatar-bg) no-repeat center/cover;border-radius:4px}.avatar svg{width:calc(var(--tblr-avatar-size)/ 1.6666666667);height:calc(var(--tblr-avatar-size)/ 1.6666666667)}.avatar .badge{position:absolute;right:0;bottom:0;border-radius:100rem;box-shadow:0 0 0 2px #fff}a.avatar{cursor:pointer}.avatar-rounded{border-radius:100rem}.avatar-xs{--tblr-avatar-size:1.5rem}.avatar-xs .badge:empty{width:.375rem;height:.375rem}.avatar-sm{--tblr-avatar-size:2rem}.avatar-sm .badge:empty{width:.5rem;height:.5rem}.avatar-md{--tblr-avatar-size:3.75rem}.avatar-md .badge:empty{width:.9375rem;height:.9375rem}.avatar-lg{--tblr-avatar-size:5rem}.avatar-lg .badge:empty{width:1.25rem;height:1.25rem}.avatar-xl{--tblr-avatar-size:7rem}.avatar-xl .badge:empty{width:1.75rem;height:1.75rem}.avatar-2xl{--tblr-avatar-size:11rem}.avatar-2xl .badge:empty{width:2.75rem;height:2.75rem}.avatar-list{display:inline-flex;padding:0;margin:0 0 -.5rem;flex-wrap:wrap}.avatar-list .avatar{margin-bottom:.5rem}.avatar-list .avatar:not(:last-child){margin-right:.5rem}.avatar-list a.avatar:hover{z-index:1}.avatar-list-stacked .avatar{margin-right:-.5rem!important;box-shadow:0 0 0 2px var(--tblr-card-bg)}.avatar-upload{width:4rem;height:4rem;border:1px dashed #e6e7e9;background:#fff;flex-direction:column;transition:color .3s,background-color .3s}@media (prefers-reduced-motion:reduce){.avatar-upload{transition:none}}.avatar-upload svg{width:1.5rem;height:1.5rem;stroke-width:1}.avatar-upload:hover{border-color:#206bc4;color:#206bc4;text-decoration:none}.avatar-upload-text{font-size:.625rem;line-height:1;margin-top:.25rem}.page-cover~* .page-avatar{margin-top:calc(calc(-1 * calc(var(--tblr-avatar-size) * .5)) - 1.25rem);box-shadow:0 0 0 .25rem #f5f7fb}.badge{justify-content:center;align-items:center;background:#64748b;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;min-width:1.3571428571em;font-weight:600;letter-spacing:.04em;vertical-align:bottom}a.badge{color:#fff}.badge:empty{display:inline-block;width:.5rem;height:.5rem;min-width:0;min-height:auto;padding:0;border-radius:100rem;vertical-align:baseline}.badge .avatar{box-sizing:content-box;width:1.25rem;height:1.25rem;margin:0 .5rem 0 -.5rem}.badge .icon{width:1em;height:1em;font-size:1rem;stroke-width:2}.badge-sm{font-size:.625rem;line-height:1.6;padding:0 .25rem}.badge-outline{background-color:transparent;border:1px solid currentColor}.badge-pill{border-radius:100rem}.breadcrumb{padding:0;margin:0;background:0 0}.breadcrumb a{color:#626976}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-item.active a{color:inherit;pointer-events:none}.breadcrumb-dots{--tblr-breadcrumb-divider:"·"}.breadcrumb-arrows{--tblr-breadcrumb-divider:"›"}.breadcrumb-bullets{--tblr-breadcrumb-divider:"•"}.btn{--tblr-btn-icon-size:1.25rem;--tblr-btn-color:var(--tblr-color-text);--tblr-btn-border-color:var(--tblr-border-color);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.btn .icon{width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);min-width:var(--tblr-btn-icon-size);margin:0 calc(var(--tblr-btn-padding-x)/ 2) 0 calc(var(--tblr-btn-padding-x)/ -4);vertical-align:bottom;color:inherit}.btn .avatar{width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);margin:0 calc(var(--tblr-btn-padding-x)/ 2) 0 calc(var(--tblr-btn-padding-x)/ -4)}.btn .icon-right{margin:0 calc(var(--tblr-btn-padding-x)/ -4) 0 calc(var(--tblr-btn-padding-x)/ 2)}.btn .badge{top:auto}.btn-link{color:#206bc4;background-color:transparent;border-color:transparent}.btn-link .icon{color:inherit}.btn-link:hover{color:#1a569d;border-color:transparent}.btn-white{--tblr-btn-bg:var(--tblr-card-bg);--tblr-btn-hover-bg:var(--tblr-card-bg)}.btn-primary{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-secondary{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-success{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-info{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-warning{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-danger{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-light{--tblr-btn-border-color:transparent;--tblr-btn-color:#1e293b}.btn-dark{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-muted{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-blue{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-azure{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-indigo{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-purple{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-pink{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-red{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-orange{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-yellow{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-lime{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-green{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-teal{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-cyan{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-facebook{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-twitter{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-linkedin{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-google{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-youtube{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-vimeo{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-dribbble{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-github{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-instagram{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-pinterest{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-vk{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-rss{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-flickr{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-bitbucket{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-tabler{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-ghost-primary{--tblr-btn-color:#206bc4;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-secondary{--tblr-btn-color:#626976;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#626976;--tblr-btn-hover-border-color:#626976;--tblr-btn-focus-shadow-rgb:98,105,118;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#626976;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#626976;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-success{--tblr-btn-color:#2fb344;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#2fb344;--tblr-btn-hover-border-color:#2fb344;--tblr-btn-focus-shadow-rgb:47,179,68;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2fb344;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#2fb344;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-info{--tblr-btn-color:#4299e1;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4299e1;--tblr-btn-hover-border-color:#4299e1;--tblr-btn-focus-shadow-rgb:66,153,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4299e1;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4299e1;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-warning{--tblr-btn-color:#f76707;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f76707;--tblr-btn-hover-border-color:#f76707;--tblr-btn-focus-shadow-rgb:247,103,7;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f76707;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f76707;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-danger{--tblr-btn-color:#d63939;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d63939;--tblr-btn-hover-border-color:#d63939;--tblr-btn-focus-shadow-rgb:214,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d63939;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d63939;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-light{--tblr-btn-color:#fafbfc;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#1e293b;--tblr-btn-hover-bg:#fafbfc;--tblr-btn-hover-border-color:#fafbfc;--tblr-btn-focus-shadow-rgb:250,251,252;--tblr-btn-active-color:#1e293b;--tblr-btn-active-bg:#fafbfc;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-dark{--tblr-btn-color:#1e293b;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1e293b;--tblr-btn-hover-border-color:#1e293b;--tblr-btn-focus-shadow-rgb:30,41,59;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1e293b;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1e293b;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-muted{--tblr-btn-color:#626976;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#626976;--tblr-btn-hover-border-color:#626976;--tblr-btn-focus-shadow-rgb:98,105,118;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#626976;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#626976;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-blue{--tblr-btn-color:#206bc4;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-azure{--tblr-btn-color:#4299e1;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4299e1;--tblr-btn-hover-border-color:#4299e1;--tblr-btn-focus-shadow-rgb:66,153,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4299e1;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4299e1;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-indigo{--tblr-btn-color:#4263eb;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4263eb;--tblr-btn-hover-border-color:#4263eb;--tblr-btn-focus-shadow-rgb:66,99,235;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4263eb;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4263eb;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-purple{--tblr-btn-color:#ae3ec9;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ae3ec9;--tblr-btn-hover-border-color:#ae3ec9;--tblr-btn-focus-shadow-rgb:174,62,201;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ae3ec9;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ae3ec9;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-pink{--tblr-btn-color:#d6336c;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d6336c;--tblr-btn-hover-border-color:#d6336c;--tblr-btn-focus-shadow-rgb:214,51,108;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d6336c;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d6336c;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-red{--tblr-btn-color:#d63939;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d63939;--tblr-btn-hover-border-color:#d63939;--tblr-btn-focus-shadow-rgb:214,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d63939;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d63939;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-orange{--tblr-btn-color:#f76707;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f76707;--tblr-btn-hover-border-color:#f76707;--tblr-btn-focus-shadow-rgb:247,103,7;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f76707;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f76707;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-yellow{--tblr-btn-color:#f59f00;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f59f00;--tblr-btn-hover-border-color:#f59f00;--tblr-btn-focus-shadow-rgb:245,159,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f59f00;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f59f00;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-lime{--tblr-btn-color:#74b816;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#74b816;--tblr-btn-hover-border-color:#74b816;--tblr-btn-focus-shadow-rgb:116,184,22;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#74b816;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#74b816;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-green{--tblr-btn-color:#2fb344;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#2fb344;--tblr-btn-hover-border-color:#2fb344;--tblr-btn-focus-shadow-rgb:47,179,68;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2fb344;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#2fb344;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-teal{--tblr-btn-color:#0ca678;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0ca678;--tblr-btn-hover-border-color:#0ca678;--tblr-btn-focus-shadow-rgb:12,166,120;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0ca678;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0ca678;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-cyan{--tblr-btn-color:#17a2b8;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#17a2b8;--tblr-btn-hover-border-color:#17a2b8;--tblr-btn-focus-shadow-rgb:23,162,184;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#17a2b8;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#17a2b8;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-facebook{--tblr-btn-color:#3b5998;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3b5998;--tblr-btn-hover-border-color:#3b5998;--tblr-btn-focus-shadow-rgb:59,89,152;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#3b5998;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#3b5998;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-twitter{--tblr-btn-color:#1da1f2;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1da1f2;--tblr-btn-hover-border-color:#1da1f2;--tblr-btn-focus-shadow-rgb:29,161,242;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1da1f2;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1da1f2;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-linkedin{--tblr-btn-color:#0a66c2;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0a66c2;--tblr-btn-hover-border-color:#0a66c2;--tblr-btn-focus-shadow-rgb:10,102,194;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0a66c2;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0a66c2;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-google{--tblr-btn-color:#dc4e41;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#dc4e41;--tblr-btn-hover-border-color:#dc4e41;--tblr-btn-focus-shadow-rgb:220,78,65;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#dc4e41;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#dc4e41;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-youtube{--tblr-btn-color:#ff0000;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ff0000;--tblr-btn-hover-border-color:#ff0000;--tblr-btn-focus-shadow-rgb:255,0,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ff0000;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ff0000;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-vimeo{--tblr-btn-color:#1ab7ea;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1ab7ea;--tblr-btn-hover-border-color:#1ab7ea;--tblr-btn-focus-shadow-rgb:26,183,234;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1ab7ea;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1ab7ea;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-dribbble{--tblr-btn-color:#ea4c89;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ea4c89;--tblr-btn-hover-border-color:#ea4c89;--tblr-btn-focus-shadow-rgb:234,76,137;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ea4c89;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ea4c89;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-github{--tblr-btn-color:#181717;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#181717;--tblr-btn-hover-border-color:#181717;--tblr-btn-focus-shadow-rgb:24,23,23;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#181717;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#181717;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-instagram{--tblr-btn-color:#e4405f;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#e4405f;--tblr-btn-hover-border-color:#e4405f;--tblr-btn-focus-shadow-rgb:228,64,95;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#e4405f;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#e4405f;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-pinterest{--tblr-btn-color:#bd081c;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#bd081c;--tblr-btn-hover-border-color:#bd081c;--tblr-btn-focus-shadow-rgb:189,8,28;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#bd081c;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#bd081c;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-vk{--tblr-btn-color:#6383a8;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#6383a8;--tblr-btn-hover-border-color:#6383a8;--tblr-btn-focus-shadow-rgb:99,131,168;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#6383a8;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#6383a8;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-rss{--tblr-btn-color:#ffa500;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ffa500;--tblr-btn-hover-border-color:#ffa500;--tblr-btn-focus-shadow-rgb:255,165,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ffa500;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ffa500;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-flickr{--tblr-btn-color:#0063dc;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0063dc;--tblr-btn-hover-border-color:#0063dc;--tblr-btn-focus-shadow-rgb:0,99,220;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0063dc;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0063dc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-bitbucket{--tblr-btn-color:#0052cc;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0052cc;--tblr-btn-hover-border-color:#0052cc;--tblr-btn-focus-shadow-rgb:0,82,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0052cc;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0052cc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-tabler{--tblr-btn-color:#206bc4;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-group-sm>.btn,.btn-sm{--tblr-btn-line-height:1.5;--tblr-btn-icon-size:.75rem}.btn-group-lg>.btn,.btn-lg{--tblr-btn-line-height:1.5;--tblr-btn-icon-size:2rem}.btn-pill{padding-right:1.5em;padding-left:1.5em;border-radius:10rem}.btn-pill[class*=btn-icon]{padding:.375rem 15px}.btn-square{border-radius:0}.btn-icon{min-width:calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2);min-height:calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2);padding-left:0;padding-right:0}.btn-icon .icon{margin:calc(-1 * var(--tblr-btn-padding-x))}.btn-list{display:flex;flex-wrap:wrap;margin-bottom:-.5rem!important;margin-right:-.5rem}.btn-list>*{margin:0 .5rem .5rem 0!important}.btn-floating{position:fixed;z-index:1030;bottom:1.5rem;right:1.5rem;border-radius:100rem}.btn-loading{position:relative;color:transparent!important;text-shadow:none!important;pointer-events:none}.btn-loading>*{opacity:0}.btn-loading:after{content:"";display:inline-block;vertical-align:text-bottom;border:2px solid currentColor;border-right-color:transparent;border-radius:100rem;color:var(--tblr-btn-color);position:absolute;width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);left:calc(50% - var(--tblr-btn-icon-size)/ 2);top:calc(50% - var(--tblr-btn-icon-size)/ 2);-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.btn-action{padding:0;border:0;color:#626976;display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:4px}.btn-action:after{content:none}.btn-action:focus{outline:0;box-shadow:none}.btn-action.show,.btn-action:hover{color:#1e293b;background:#f5f7fb}.btn-action.show{color:#206bc4}.btn-action .icon{margin:0;width:1.25rem;height:1.25rem;font-size:1.25rem;stroke-width:1}.btn-actions{display:flex}.calendar{display:block;font-size:.765625rem;border:1px solid #e6e7e9;border-radius:4px}.calendar-nav{display:flex;align-items:center}.calendar-title{flex:1;text-align:center}.calendar-body,.calendar-header{display:flex;flex-wrap:wrap;justify-content:flex-start;padding:.5rem 0}.calendar-header{color:#626976}.calendar-date{flex:0 0 14.2857142857%;max-width:14.2857142857%;padding:.2rem;text-align:center;border:0}.calendar-date.next-month,.calendar-date.prev-month{opacity:.25}.calendar-date .date-item{position:relative;display:inline-block;width:1.4rem;height:1.4rem;line-height:1.4rem;color:#66758c;text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;background:0 0;border:1px solid transparent;border-radius:100rem;outline:0;transition:background .3s,border .3s,box-shadow .32s,color .3s}@media (prefers-reduced-motion:reduce){.calendar-date .date-item{transition:none}}.calendar-date .date-item:hover{color:#206bc4;text-decoration:none;background:#fefeff;border-color:#e6e7e9}.calendar-date .date-today{color:#206bc4;border-color:#e6e7e9}.calendar-range{position:relative}.calendar-range:before{position:absolute;top:50%;right:0;left:0;height:1.4rem;content:"";background:rgba(32,107,196,.1);transform:translateY(-50%)}.calendar-range.range-end .date-item,.calendar-range.range-start .date-item{color:#fff;background:#206bc4;border-color:#206bc4}.calendar-range.range-start:before{left:50%}.calendar-range.range-end:before{right:50%}.carousel-indicators-vertical{left:auto;top:0;margin:0 1rem 0 0;flex-direction:column}.carousel-indicators-vertical [data-bs-target]{margin:3px 0 3px;width:3px;height:30px;border:0;border-left:10px solid transparent;border-right:10px solid transparent}.carousel-indicators-dot [data-bs-target]{width:.5rem;height:.5rem;border-radius:100rem;border:10px solid transparent;margin:0}.carousel-indicators-thumb [data-bs-target]{width:2rem;height:auto;background:no-repeat center/cover;border:0;border-radius:4px;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0;margin:0 3px;opacity:.75}@media (min-width:992px){.carousel-indicators-thumb [data-bs-target]{width:4rem}}.carousel-indicators-thumb [data-bs-target]:before{content:"";padding-top:var(--tblr-aspect-ratio,100%);display:block}.carousel-indicators-thumb.carousel-indicators-vertical [data-bs-target]{margin:3px 0}.carousel-caption-background{background:red;position:absolute;left:0;right:0;bottom:0;height:90%;background:linear-gradient(0deg,rgba(30,41,59,.9),rgba(30,41,59,0))}.card{--tblr-card-border-radius:4px;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0;border:1px solid rgba(98,105,118,.16);background:var(--tblr-card-bg,#fff);border-radius:var(--tblr-card-border-radius);transition:transform .3s ease-out,opacity .3s ease-out,box-shadow .3s ease-out}@media (prefers-reduced-motion:reduce){.card{transition:none}}@media print{.card{border:none;box-shadow:none}}a.card{color:inherit}a.card:hover{text-decoration:none;box-shadow:rgba(30,41,59,.16) 0 2px 16px 0}.card .card{box-shadow:none}.card-borderless,.card-borderless .card-footer,.card-borderless .card-header{border-color:transparent}.card-stamp{--stamp-size:7rem;position:absolute;top:0;right:0;width:calc(var(--stamp-size) * 1);height:calc(var(--stamp-size) * 1);max-height:100%;border-top-right-radius:4px;opacity:.2;overflow:hidden;pointer-events:none}.card-stamp-lg{--stamp-size:13rem}.card-stamp-icon{background:var(--tblr-muted);color:var(--tblr-card-bg);display:flex;align-items:center;justify-content:center;border-radius:100rem;width:calc(var(--stamp-size) * 1);height:calc(var(--stamp-size) * 1);position:relative;top:calc(var(--stamp-size) * -.25);right:calc(var(--stamp-size) * -.25);font-size:calc(var(--stamp-size) * .75);transform:rotate(10deg)}.card-stamp-icon .icon{stroke-width:2;width:calc(var(--stamp-size) * .75);height:calc(var(--stamp-size) * .75)}.card-img,.card-img-start{border-top-left-radius:3px;border-bottom-left-radius:3px}.card-img,.card-img-end{border-top-right-radius:3px;border-bottom-right-radius:3px}.card-img-overlay{display:flex;flex-direction:column;justify-content:flex-end}.card-img-overlay-dark{background-image:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%)}.card-inactive{pointer-events:none;box-shadow:none}.card-inactive .card-body{opacity:.64}.card-active{position:relative;background-color:rgba(32,107,196,.03);z-index:1}.card-active:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;content:"";border:1px solid #206bc4;border-radius:inherit}.card-btn{display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem;text-align:center;transition:background .3s;border-top:1px solid var(--tblr-border-color);flex:1;color:inherit;font-weight:500}@media (prefers-reduced-motion:reduce){.card-btn{transition:none}}.card-btn:hover{text-decoration:none;background:rgba(32,107,196,.04)}.card-btn+.card-btn{border-left:1px solid var(--tblr-border-color)}.card-stacked{position:relative}.card-stacked:after{position:absolute;top:-5px;right:5px;left:5px;height:5px;content:"";background:#fff;border:1px solid rgba(98,105,118,.16);border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-cover{position:relative;padding:1rem 1.25rem;background:#666 no-repeat center/cover}.card-cover:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:rgba(30,41,59,.48)}.card-cover:first-child,.card-cover:first-child:before{border-radius:4px 4px 0 0}.card-cover-blurred:before{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.card-actions{margin:-.5rem -.5rem -.5rem auto;padding-left:.5rem}.card-actions a{text-decoration:none}.card-header{color:inherit;display:flex;align-items:center;background:0 0}.card-header:first-child{border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-header-light{border-bottom-color:transparent;background:var(--tblr-light)}.card-header-tabs{flex:1;margin:-.5rem -.625rem -1rem}.card-header-pills{flex:1;margin-top:-.5rem;margin-bottom:-.5rem}.card-rotate-left{transform:rotate(-1.5deg)}.card-rotate-right{transform:rotate(1.5deg)}.card-link{color:inherit}.card-link:hover{color:inherit;text-decoration:none;box-shadow:0 1px 6px 0 rgba(0,0,0,.08)}.card-link-rotate:hover{transform:rotate(1.5deg);opacity:1}.card-link-pop:hover{transform:translateY(-2px);opacity:1}.card-footer{margin-top:auto}.card-footer:last-child{border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-footer-transparent{background:0 0;border-color:transparent;padding-top:0}.card-progress{height:.25rem}.card-progress:last-child{border-radius:0 0 2px 2px}.card-progress:first-child{border-radius:2px 2px 0 0}.card-meta{color:#626976}.card-title{display:block;margin:0 0 1rem;font-size:1rem;font-weight:500;line-height:1.5rem}a.card-title:hover{color:inherit}.card-header .card-title{margin:0}.card-subtitle{margin-top:-.5rem;margin-bottom:1.25rem;color:#626976;font-weight:400}.card-header .card-subtitle{margin:0}.card-title .card-subtitle{margin:0 0 0 .25rem;font-size:.875rem}.card-body>:last-child{margin-bottom:0}.card-sm>.card-body{padding:1rem}@media (min-width:768px){.card-md>.card-body{padding:2.5rem}}@media (min-width:768px){.card-lg>.card-body{padding:2rem}}@media (min-width:992px){.card-lg>.card-body{padding:4rem}}@media print{.card-body{padding:0}}.card-body+.card-body{border-top:1px solid #e6e7e9}.card-body-scrollable{overflow:auto}.card-options{top:1.5rem;right:.75rem;display:flex;margin-left:auto}.card-options-link{display:inline-block;min-width:1rem;margin-left:.25rem;color:#626976}.card-status-top{position:absolute;top:0;right:0;left:0;height:2px;border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-status-start{position:absolute;right:auto;bottom:0;width:2px;height:100%;border-radius:var(--tblr-card-border-radius) 0 0 var(--tblr-card-border-radius)}.card-status-bottom{position:absolute;top:initial;bottom:0;width:100%;height:2px;border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-table{margin-bottom:0!important}.card-table tr td:first-child,.card-table tr th:first-child{padding-left:1.25rem;border-left:0}.card-table tr td:last-child,.card-table tr th:last-child{padding-right:1.25rem;border-right:0}.card-table tbody tr:first-child,.card-table tfoot tr:first-child,.card-table thead tr:first-child{border-top:0}.card-table tbody tr:first-child td,.card-table tbody tr:first-child th,.card-table tfoot tr:first-child td,.card-table tfoot tr:first-child th,.card-table thead tr:first-child td,.card-table thead tr:first-child th{border-top:0}.card-table tbody tr:last-child,.card-table tfoot tr:last-child,.card-table thead tr:last-child{border-bottom:0}.card-table tbody tr:last-child td,.card-table tbody tr:last-child th,.card-table tfoot tr:last-child td,.card-table tfoot tr:last-child th,.card-table thead tr:last-child td,.card-table thead tr:last-child th{border-bottom:0}.card-body+.card-table{border-top:1px solid #e6e7e9}.card-code{padding:0}.card-code .highlight{margin:0;border:0}.card-code pre{margin:0!important;border:0!important}.card-chart{position:relative;z-index:1;height:3.5rem}.card-avatar{margin-left:auto;margin-right:auto;box-shadow:0 0 0 .25rem #fff;margin-top:calc(-1 * var(--tblr-avatar-size) * .5)}.card-body+.card-list-group{border-top:1px solid #e6e7e9}.card-list-group .list-group-item{padding-right:1.25rem;padding-left:1.25rem;border-right:0;border-left:0;border-radius:0}.card-list-group .list-group-item:last-child{border-bottom:0}.card-list-group .list-group-item:first-child{border-top:0}.card-tabs .nav-tabs{position:relative;z-index:1000;border-bottom:0}.card-tabs .nav-tabs .nav-link{color:#626976;background:#fafbfc;border:1px solid rgba(98,105,118,.16)}.card-tabs .nav-tabs .nav-link.active,.card-tabs .nav-tabs .nav-link:active,.card-tabs .nav-tabs .nav-link:hover{border-color:rgba(98,105,118,.16);color:#1e293b}.card-tabs .nav-tabs .nav-link.active{background:#fff;border-bottom-color:transparent}.card-tabs .nav-tabs .nav-item:not(:first-child) .nav-link{border-top-left-radius:0}.card-tabs .nav-tabs .nav-item:not(:last-child) .nav-link{border-top-right-radius:0}.card-tabs .nav-tabs .nav-item+.nav-item{margin-left:-1px}.card-tabs .nav-tabs-bottom{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link.active{border-top-color:transparent}.card-tabs .nav-tabs-bottom .nav-item{margin-top:-1px;margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-item .nav-link{border-bottom:1px solid rgba(98,105,118,.16);border-radius:0 0 4px 4px}.card-tabs .nav-tabs-bottom .nav-item:not(:first-child) .nav-link{border-bottom-left-radius:0}.card-tabs .nav-tabs-bottom .nav-item:not(:last-child) .nav-link{border-bottom-right-radius:0}.card-tabs .card{border-bottom-left-radius:0}.card-tabs .nav-tabs+.tab-content .card{border-bottom-left-radius:var(--tblr-card-border-radius);border-top-left-radius:0}.btn-close{cursor:pointer}.btn-close:focus{outline:0}.dropdown-menu{box-shadow:0 .5rem 1rem rgba(0,0,0,.15);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:0!important}.dropdown-menu.card{padding:0;min-width:25rem;display:none}.dropdown-menu.card.show{display:flex}.dropdown-item{min-width:11rem;display:flex;align-items:center;margin:0;line-height:1.4285714286}.dropdown-item-icon{width:1.25rem!important;height:1.25rem!important;margin-right:.5rem;color:#626976;opacity:.7;text-align:center}.dropdown-item-indicator{margin-right:.5rem;margin-left:-.25rem;height:1.25rem;display:inline-flex;line-height:1;vertical-align:bottom;align-items:center}.dropdown-header{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;padding-bottom:.25rem;pointer-events:none}.dropdown-menu-scrollable{height:auto;max-height:13rem;overflow-x:hidden}.dropdown-menu-column{min-width:11rem}.dropdown-menu-column .dropdown-item{min-width:0}.dropdown-menu-columns{display:flex;flex:0 .25rem}.dropdown-menu-arrow:before{content:"";position:absolute;top:-.25rem;left:.75rem;display:block;background:inherit;width:14px;height:14px;transform:rotate(45deg);transform-origin:center;border:1px solid;border-color:inherit;z-index:-1;clip:rect(0,9px,9px,0)}.dropdown-menu-arrow.dropdown-menu-end:before{right:.75rem;left:auto}.dropend>.dropdown-menu{margin-top:calc(-.25rem - 1px);margin-left:-.25rem}.dropend .dropdown-toggle:after{margin-left:auto}.dropdown-menu-card{padding:0}.dropdown-menu-card>.card{margin:0;border:0;box-shadow:none}.datagrid{--tblr-datagrid-padding:1.5rem;--tblr-datagrid-item-width:15rem;display:grid;grid-gap:var(--tblr-datagrid-padding);grid-template-columns:repeat(auto-fit,minmax(var(--tblr-datagrid-item-width),1fr))}.datagrid-title{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;margin-bottom:.25rem}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center}@media (min-width:768px){.empty{padding:3rem}}.empty-icon{margin:0 0 1rem;width:3rem;height:3rem;line-height:1;color:#626976}.empty-icon svg{width:100%;height:100%}.empty-img{margin:0 0 2rem;line-height:1}.empty-img img{height:8rem;width:auto}.empty-header{margin:0 0 1rem;font-size:4rem;font-weight:300;line-height:1;color:#626976}.empty-title{font-size:1.25rem;line-height:1.4;font-weight:600}.empty-subtitle,.empty-title{margin:0 0 .5rem}.empty-action{margin-top:1.5rem}.empty-bordered{border:1px solid #e6e7e9;border-radius:4px}.row>*{min-width:0}.col-separator{border-left:1px solid #e6e7e9}@media (max-width:991.98px){.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--tblr-gutter-x:1rem}}.container-tight{--tblr-gutter-x:1.5rem;--tblr-gutter-y:0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto;max-width:30rem}.container-narrow{--tblr-gutter-x:1.5rem;--tblr-gutter-y:0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto;max-width:45rem}.row-0{margin-right:0;margin-left:0}.row-0>.col,.row-0>[class*=col-]{padding-right:0;padding-left:0}.row-0 .card{margin-bottom:0}.row-sm{margin-right:-.375rem;margin-left:-.375rem}.row-sm>.col,.row-sm>[class*=col-]{padding-right:.375rem;padding-left:.375rem}.row-sm .card{margin-bottom:.75rem}.row-md{margin-right:-1.5rem;margin-left:-1.5rem}.row-md>.col,.row-md>[class*=col-]{padding-right:1.5rem;padding-left:1.5rem}.row-md .card{margin-bottom:3rem}.row-lg{margin-right:-3rem;margin-left:-3rem}.row-lg>.col,.row-lg>[class*=col-]{padding-right:3rem;padding-left:3rem}.row-lg .card{margin-bottom:6rem}.row-deck>.col,.row-deck>[class*=col-]{display:flex;align-items:stretch}.row-deck>.col .card,.row-deck>[class*=col-] .card{flex:1 1 auto}.row-cards{--tblr-gutter-x:1rem;--tblr-gutter-y:1rem;min-width:0}.row-cards .row-cards{flex:1}@media (max-width:991.98px){.row-cards{--tblr-gutter-x:0.5rem;--tblr-gutter-y:0.5rem}}.space-y>:not(template)~:not(template){margin-top:1rem!important}.space-x>:not(template)~:not(template){margin-left:1rem!important}.space-y-0>:not(template)~:not(template){margin-top:0!important}.space-x-0>:not(template)~:not(template){margin-left:0!important}.space-y-1>:not(template)~:not(template){margin-top:.25rem!important}.space-x-1>:not(template)~:not(template){margin-left:.25rem!important}.space-y-2>:not(template)~:not(template){margin-top:.5rem!important}.space-x-2>:not(template)~:not(template){margin-left:.5rem!important}.space-y-3>:not(template)~:not(template){margin-top:1rem!important}.space-x-3>:not(template)~:not(template){margin-left:1rem!important}.space-y-4>:not(template)~:not(template){margin-top:2rem!important}.space-x-4>:not(template)~:not(template){margin-left:2rem!important}.space-y-5>:not(template)~:not(template){margin-top:4rem!important}.space-x-5>:not(template)~:not(template){margin-left:4rem!important}.divide-y>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y>:not(template):not(:first-child){padding-top:1rem!important}.divide-y>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x>:not(template):not(:first-child){padding-left:1rem!important}.divide-x>:not(template):not(:last-child){padding-right:1rem!important}.divide-y-0>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-0>:not(template):not(:first-child){padding-top:0!important}.divide-y-0>:not(template):not(:last-child){padding-bottom:0!important}.divide-x-0>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-0>:not(template):not(:first-child){padding-left:0!important}.divide-x-0>:not(template):not(:last-child){padding-right:0!important}.divide-y-1>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-1>:not(template):not(:first-child){padding-top:.25rem!important}.divide-y-1>:not(template):not(:last-child){padding-bottom:.25rem!important}.divide-x-1>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-1>:not(template):not(:first-child){padding-left:.25rem!important}.divide-x-1>:not(template):not(:last-child){padding-right:.25rem!important}.divide-y-2>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-2>:not(template):not(:first-child){padding-top:.5rem!important}.divide-y-2>:not(template):not(:last-child){padding-bottom:.5rem!important}.divide-x-2>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-2>:not(template):not(:first-child){padding-left:.5rem!important}.divide-x-2>:not(template):not(:last-child){padding-right:.5rem!important}.divide-y-3>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-3>:not(template):not(:first-child){padding-top:1rem!important}.divide-y-3>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x-3>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-3>:not(template):not(:first-child){padding-left:1rem!important}.divide-x-3>:not(template):not(:last-child){padding-right:1rem!important}.divide-y-4>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-4>:not(template):not(:first-child){padding-top:2rem!important}.divide-y-4>:not(template):not(:last-child){padding-bottom:2rem!important}.divide-x-4>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-4>:not(template):not(:first-child){padding-left:2rem!important}.divide-x-4>:not(template):not(:last-child){padding-right:2rem!important}.divide-y-5>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-5>:not(template):not(:first-child){padding-top:4rem!important}.divide-y-5>:not(template):not(:last-child){padding-bottom:4rem!important}.divide-x-5>:not(template)~:not(template){border-left:1px solid rgba(98,105,118,.16)!important}.divide-x-5>:not(template):not(:first-child){padding-left:4rem!important}.divide-x-5>:not(template):not(:last-child){padding-right:4rem!important}.divide-y-fill{display:flex;flex-direction:column;height:100%}.divide-y-fill>:not(template){flex:1;display:flex;justify-content:center;flex-direction:column}.icon{width:1.25rem;height:1.25rem;font-size:1.25rem;vertical-align:bottom;stroke-width:1.5}.icon:hover{text-decoration:none}.icon-inline{width:1em;height:1em;font-size:1.1428571429em;vertical-align:-.2em}.icon-filled{fill:currentColor}.icon-sm{width:1rem;height:1rem;stroke-width:1}.icon-md{width:2.5rem;height:2.5rem;stroke-width:1}.icon-lg{width:3.5rem;height:3.5rem;stroke-width:1}.img-responsive{background:no-repeat center/cover;padding-top:75%}.img-responsive-1x1{padding-top:100%}.img-responsive-4x3{padding-top:75%}.img-responsive-3x4{padding-top:133.3333333333%}.img-responsive-16x9{padding-top:56.25%}.img-responsive-9x16{padding-top:177.7777777778%}.img-responsive-21x9{padding-top:42.8571428571%}.img-responsive-9x21{padding-top:233.3333333333%}textarea[cols]{height:auto}.col-form-label,.form-label{display:block;font-weight:500}.col-form-label.required:after,.form-label.required:after{content:"*";margin-left:.25rem;color:#d63939}.form-label-description{float:right;font-weight:400;color:#626976}.form-hint{display:block;color:#626976}.form-hint:last-child{margin-bottom:0}.form-hint+.form-control{margin-top:.25rem}.form-label+.form-hint{margin-top:-.25rem}.form-control+.form-hint,.form-select+.form-hint,.input-group+.form-hint{margin-top:.5rem}.form-select:-moz-focusring{color:var(--tblr-body-color)}.form-control:-webkit-autofill{box-shadow:0 0 0 1000px var(--tblr-body-bg) inset;color:var(--tblr-body-color)}.form-control.disabled,.form-control:disabled{color:#626976;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-control[size]{width:auto}.form-control[type=number]::-webkit-inner-spin-button{opacity:1;cursor:pointer;height:calc(calc(1.4285714286em + .875rem + 2px) - 1px);margin:0 -.75rem 0 0}.form-control[type=number]::-moz-inner-spin-button{opacity:1;cursor:pointer;height:calc(calc(1.4285714286em + .875rem + 2px) - 1px);margin:0 -.75rem 0 0}.form-control-light{background-color:#f1f5f9;border-color:transparent}.form-control-dark{background-color:rgba(0,0,0,.1);color:#fff;border-color:transparent}.form-control-dark:focus{background-color:rgba(0,0,0,.1);box-shadow:none;border-color:rgba(255,255,255,.24)}.form-control-dark::-webkit-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::-moz-placeholder{color:rgba(255,255,255,.6)}.form-control-dark:-ms-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::-ms-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::placeholder{color:rgba(255,255,255,.6)}.form-control-rounded{border-radius:10rem}.form-control-flush{padding:0;background:0 0!important;border-color:transparent!important;resize:none;box-shadow:none!important;line-height:inherit}.form-footer{margin-top:2rem}.form-fieldset{padding:1rem;margin-bottom:1rem;background:var(--tblr-body-bg);border:1px solid var(--tblr-border-color);border-radius:4px}.form-help{display:inline-flex;font-weight:600;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;font-size:.75rem;color:#626976;text-align:center;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--tblr-border-color-light);border-radius:100rem;transition:background-color .3s,color .3s}@media (prefers-reduced-motion:reduce){.form-help{transition:none}}.form-help:hover,.form-help[aria-describedby]{color:#fff;background:#206bc4}.input-group-link{font-size:.75rem}.input-group-flat:focus-within{box-shadow:0 0 0 .25rem rgba(32,107,196,.25);border-radius:4px}.input-group-flat:focus-within .form-control,.input-group-flat:focus-within .input-group-text{border-color:#90b5e2!important}.input-group-flat .form-control:focus{border-color:#d9dbde;box-shadow:none}.input-group-flat .form-control:not(:last-child){border-right:0}.input-group-flat .form-control:not(:first-child){border-left:0}.input-group-flat .input-group-text{background:0 0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.input-group-flat .input-group-text{transition:none}}.input-group-flat .input-group-text:first-child{padding-right:0}.input-group-flat .input-group-text:last-child{padding-left:0}.form-file-button{margin-left:0;border-left:0}.input-icon{position:relative}.input-icon .form-control:not(:last-child),.input-icon .form-select:not(:last-child){padding-right:2.5rem}.input-icon .form-control:not(:first-child),.input-icon .form-select:not(:last-child){padding-left:2.5rem}.input-icon-addon{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;min-width:2.5rem;color:#626976;pointer-events:none;font-size:1.2em}.input-icon-addon:last-child{right:0;left:auto}.form-colorinput{position:relative;display:inline-block;margin:0;line-height:1;cursor:pointer}.form-colorinput-input{position:absolute;z-index:-1;opacity:0}.form-colorinput-color{display:block;width:1.5rem;height:1.5rem;color:#fff;border:1px solid rgba(98,105,118,.16);border-radius:3px;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.form-colorinput-color:before{position:absolute;top:0;left:0;width:100%;height:100%;content:"";background:no-repeat center center/1rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-colorinput-color:before{transition:none}}.form-colorinput-input:checked~.form-colorinput-color:before{opacity:1}.form-colorinput-input:focus~.form-colorinput-color{border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-colorinput-light .form-colorinput-color:before{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%231e293b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-imagecheck{position:relative;margin:0;cursor:pointer}.form-imagecheck-input{position:absolute;z-index:-1;opacity:0}.form-imagecheck-figure{position:relative;display:block;margin:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid var(--tblr-border-color);border-radius:3px}.form-imagecheck-input:focus~.form-imagecheck-figure{border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-imagecheck-input:checked~.form-imagecheck-figure{border-color:#206bc4}.form-imagecheck-figure:before{position:absolute;top:.25rem;left:.25rem;z-index:1;display:block;width:1rem;height:1rem;color:#fff;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;border:1px solid #e6e7e9;border-radius:3px;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-figure:before{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure:before{background-color:#206bc4;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");background-repeat:repeat;background-position:center;background-size:1rem;border-color:rgba(98,105,118,.24)}.form-imagecheck-image{max-width:100%;display:block;opacity:.64;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-image{transition:none}}.form-imagecheck-image:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.form-imagecheck-image:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck:hover .form-imagecheck-image{opacity:1}.form-imagecheck-caption{padding:.25rem;font-size:.765625rem;color:#626976;text-align:center;transition:color .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-caption{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck:hover .form-imagecheck-caption{color:#1e293b}.form-selectgroup{display:inline-flex;margin:0 -.5rem -.5rem 0;flex-wrap:wrap}.form-selectgroup .form-selectgroup-item{margin:0 .5rem .5rem 0}.form-selectgroup-vertical{flex-direction:column}.form-selectgroup-item{display:block;position:relative}.form-selectgroup-input{position:absolute;top:0;left:0;z-index:-1;opacity:0}.form-selectgroup-label{position:relative;display:block;min-width:calc(1.4285714286em + .875rem + 2px);margin:0;padding:.4375rem .75rem;font-size:.875rem;line-height:1.4285714286;color:#626976;background:#fff;text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid #d9dbde;border-radius:3px;transition:border-color .3s,background .3s,color .3s}@media (prefers-reduced-motion:reduce){.form-selectgroup-label{transition:none}}.form-selectgroup-label .icon:only-child{margin:0 -.25rem}.form-selectgroup-label:hover{color:#1e293b}.form-selectgroup-check{display:inline-block;width:1rem;height:1rem;border:1px solid rgba(98,105,118,.24);vertical-align:middle}.form-selectgroup-input[type=checkbox]+.form-selectgroup-label .form-selectgroup-check{border-radius:4px}.form-selectgroup-input[type=radio]+.form-selectgroup-label .form-selectgroup-check{border-radius:50%}.form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-check{background-color:#206bc4;background-repeat:repeat;background-position:center;background-size:1rem;border-color:rgba(98,105,118,.24)}.form-selectgroup-input[type=checkbox]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-selectgroup-input[type=radio]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-selectgroup-check-floated{position:absolute;top:.4375rem;right:.4375rem}.form-selectgroup-input:checked+.form-selectgroup-label{z-index:1;color:#206bc4;background:rgba(32,107,196,.04);border-color:#206bc4}.form-selectgroup-input:focus+.form-selectgroup-label{z-index:2;color:#206bc4;border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-selectgroup-boxes .form-selectgroup-label{text-align:left;padding:1.25rem 1rem;color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label{color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-title{color:#206bc4}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-label-content{opacity:1}.form-selectgroup-pills{flex-wrap:wrap;align-items:flex-start}.form-selectgroup-pills .form-selectgroup-item{flex-grow:0}.form-selectgroup-pills .form-selectgroup-label{border-radius:50px}.form-control-color::-webkit-color-swatch{border:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.form-control::-webkit-file-upload-button{background-color:var(--tblr-btn-color,#fafbfc)}.form-control::file-selector-button{background-color:var(--tblr-btn-color,#fafbfc)}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--tblr-btn-color,#eeeeef)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--tblr-btn-color,#eeeeef)}.form-check{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-check.form-check-highlight .form-check-input:not(:checked)~.form-check-label{opacity:.7}.form-check-input{background-size:1rem;margin-top:.125rem}.form-switch .form-check-input{transition:background-color .3s,background-position .3s}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-check-label{display:block}.form-check-label.required:after{content:"*";margin-left:.25rem;color:#d63939}.form-check-description{display:block;color:#626976;font-size:.75rem;margin-top:.25rem}.form-check-single{margin:0}.form-check-single .form-check-input{margin:0}.form-switch .form-check-input{height:1.125rem;margin-top:.0625rem}.form-switch-lg .form-check-input{height:1.5rem;width:2.75rem;background-size:1.5rem}.form-control.is-invalid-lite,.form-control.is-valid-lite,.form-select.is-invalid-lite,.form-select.is-valid-lite{border-color:var(--tblr-border-color)!important}.legend{display:inline-block;background:var(--tblr-border-color-light);width:.75em;height:.75em;border-radius:4px}.list-group{margin-left:0;margin-right:0}.list-group-header{background:#fafbfc;padding:.5rem 1.25rem;font-size:.75rem;font-weight:500;line-height:1;text-transform:uppercase;color:#626976;border-bottom:1px solid var(--tblr-border-color)}.list-group-flush>.list-group-header:last-child{border-bottom-width:0}.list-group-item{background-color:inherit}.list-group-item.active{background-color:rgba(27,125,241,.02);border-left-color:#f59f00;border-left-width:2px}.list-group-item:active,.list-group-item:focus,.list-group-item:hover{background-color:rgba(27,125,241,.02)}.list-group-item.disabled,.list-group-item:disabled{color:#64748b;background-color:rgba(27,125,241,.02)}.list-bordered .list-item{border-top:1px solid #e6e7e9;margin-top:-1px}.list-bordered .list-item:first-child{border-top:none}.list-group-hoverable .list-group-item-actions{opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.list-group-hoverable .list-group-item-actions{transition:none}}.list-group-hoverable .list-group-item-actions.show,.list-group-hoverable .list-group-item:hover .list-group-item-actions{opacity:1}.list-timeline{position:relative;padding:0;margin:0;list-style:none}.list-timeline>li{position:relative;margin-bottom:1.5rem}.list-timeline>li:last-child{margin-bottom:0}.list-timeline-time{float:right;margin-left:1rem;color:#626976}.list-timeline-icon{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:#fff;text-align:center;background:#626976;border-radius:100rem}.list-timeline-icon .icon{width:1rem;height:1rem;font-size:1rem}.list-timeline-title{margin:0;font-weight:600}.list-timeline-content{margin-left:3.5rem}@media screen and (min-width:768px){.list-timeline:not(.list-timeline-simple):before{position:absolute;top:0;bottom:0;left:calc(7.5rem + 2px);z-index:1;display:block;width:4px;content:"";background-color:#f5f7fb}.list-timeline:not(.list-timeline-simple)>li{z-index:2;min-height:40px}.list-timeline:not(.list-timeline-simple) .list-timeline-time{position:absolute;top:.5rem;left:0;width:5.5rem;margin:0;text-align:right}.list-timeline:not(.list-timeline-simple) .list-timeline-icon{top:0;left:6.5rem}.list-timeline:not(.list-timeline-simple) .list-timeline-content{padding:.625rem 0 0 10rem;margin:0}}.list-group-transparent{margin:0 -1.25rem}.list-group-transparent .list-group-item{background:0 0;border:0;border-radius:3px}.list-group-transparent .list-group-item .icon{color:#626976}.list-group-transparent .list-group-item.active{font-weight:600;color:inherit;background:rgba(32,107,196,.04)}.list-group-transparent .list-group-item.active .icon{color:inherit}.list-separated-item{padding:1rem 0}.list-separated-item:first-child{padding-top:0}.list-separated-item:last-child{padding-bottom:0}.list-separated-item+.list-separated-item{border-top:1px solid #e6e7e9}.list-inline-item:not(:last-child){margin-right:auto;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.list-inline-dots .list-inline-item+.list-inline-item:before{content:" · ";-webkit-margin-end:.5rem;margin-inline-end:.5rem}@-webkit-keyframes loader{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loader{from{transform:rotate(0)}to{transform:rotate(360deg)}}.loader{position:relative;display:block;width:2.5rem;height:2.5rem;color:#206bc4;vertical-align:middle}.loader:after{position:absolute;top:0;left:0;width:100%;height:100%;content:"";border:1px solid;border-color:transparent;border-top-color:currentColor;border-left-color:currentColor;border-radius:100rem;-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.dimmer{position:relative}.dimmer .loader{position:absolute;top:50%;right:0;left:0;display:none;margin:0 auto;transform:translateY(-50%)}.dimmer.active .loader{display:block}.dimmer.active .dimmer-content{pointer-events:none;opacity:.1}@-webkit-keyframes animated-dots{0%{transform:translateX(-100%)}}@keyframes animated-dots{0%{transform:translateX(-100%)}}.animated-dots{display:inline-block;overflow:hidden;vertical-align:bottom}.animated-dots:after{display:inline-block;content:"...";-webkit-animation:animated-dots 1.2s steps(4,jump-none) infinite;animation:animated-dots 1.2s steps(4,jump-none) infinite}.modal-content .btn-close{position:absolute;top:0;right:0;width:3.5rem;height:3.5rem;margin:0;padding:0;z-index:10}.modal-body::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.modal-body::-webkit-scrollbar{-webkit-transition:none;transition:none}}.modal-body::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.modal-body::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.modal-body:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.modal-body::-webkit-scrollbar-corner{background:0 0}.modal-body .modal-title{margin-bottom:1rem}.modal-body+.modal-body{border-top:1px solid var(--tblr-border-color)}.modal-status{position:absolute;top:0;left:0;right:0;height:2px;background:#626976;border-radius:4px 4px 0 0}.modal-header{align-items:center;min-height:3.5rem;background:#fff;padding:0 3.5rem 0 1.5rem}.modal-title{font-size:1rem;font-weight:600;line-height:1.4285714286}.modal-footer{padding-top:0;padding-bottom:.75rem}.modal-blur{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-full-width{max-width:none;margin:0 .5rem}.nav-vertical,.nav-vertical .nav{flex-direction:column;flex-wrap:nowrap}.nav-vertical .nav{margin-left:1.25rem;border-left:1px solid var(--tblr-border-color);padding-left:.5rem}.nav-vertical .nav-item.show .nav-link,.nav-vertical .nav-link.active{font-weight:600}.nav-vertical.nav-pills{margin:0 -.75rem}.nav-bordered{border-bottom:1px solid #e6e7e9}.nav-bordered .nav-item+.nav-item{margin-left:1.25rem}.nav-bordered .nav-link{padding-left:0;padding-right:0;margin:0 0 -1px;border:0;border-bottom:2px solid transparent;color:#626976}.nav-bordered .nav-item.show .nav-link,.nav-bordered .nav-link.active{color:#206bc4;border-color:#206bc4}.nav-tabs-alt .nav-link{font-size:13px;font-weight:600;text-transform:uppercase}.nav-link{display:flex;transition:color .3s;align-items:center}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link-toggle{margin-left:auto;padding:0 .25rem;transition:transform .3s}@media (prefers-reduced-motion:reduce){.nav-link-toggle{transition:none}}.nav-link-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-left:1px solid;margin-right:.1em;margin-left:.4em;transform:rotate(-45deg)}.nav-link-toggle:after{margin:0}.nav-link[aria-expanded=true] .nav-link-toggle{transform:rotate(180deg)}.nav-link-icon{width:1.5rem;height:1.25rem;margin-right:.25rem;opacity:.7}.nav-link-icon svg{display:block;height:100%}.stars{display:inline-flex;color:#94a3b8;font-size:.75rem}.stars .star:not(:first-child){margin-left:.25rem}.pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.page-link{min-width:1.75rem;border-radius:4px}.page-link:hover{background:0 0}.page-item{text-align:center}.page-item.page-next,.page-item.page-prev{flex:0 0 50%;text-align:left}.page-item.page-next{margin-left:auto;text-align:right}.page-item-subtitle{margin-bottom:2px;font-size:12px;color:#626976;text-transform:uppercase}.page-item.disabled .page-item-subtitle{color:rgba(98,105,118,.5)}.page-item-title{font-size:1rem;font-weight:400;color:#1e293b}.page-link:hover .page-item-title{color:#206bc4}.page-item.disabled .page-item-title{color:rgba(98,105,118,.5)}@-webkit-keyframes progress-indeterminate{0%{right:100%;left:-35%}100%,60%{right:-90%;left:100%}}@keyframes progress-indeterminate{0%{right:100%;left:-35%}100%,60%{right:-90%;left:100%}}.progress{position:relative;width:100%;line-height:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--tblr-border-color-light)}.progress::-webkit-progress-bar{background:#f1f5f9}.progress::-webkit-progress-value{background-color:#206bc4}.progress::-moz-progress-bar{background-color:#206bc4}.progress::-ms-fill{background-color:#206bc4;border:none}.progress-sm{height:.25rem}.progress-bar{height:100%}.progress-bar-indeterminate:after,.progress-bar-indeterminate:before{position:absolute;top:0;bottom:0;left:0;content:"";background-color:inherit;will-change:left,right}.progress-bar-indeterminate:before{-webkit-animation:progress-indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:progress-indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.progress-separated .progress-bar{border-right:2px solid var(--tblr-card-bg,#fff)}.ribbon{position:absolute;top:.75rem;right:-.25rem;z-index:1;padding:.25rem .75rem;font-size:.625rem;font-weight:600;line-height:1.5rem;color:#fff;text-align:center;text-transform:uppercase;background:#206bc4;border-color:#206bc4;display:inline-flex;align-items:center;justify-content:center;min-height:2rem;min-width:2rem}.ribbon:before{position:absolute;right:0;bottom:100%;width:0;height:0;content:"";filter:brightness(70%);border:.125rem solid;border-color:inherit;border-top-color:transparent;border-right-color:transparent}.ribbon.bg-blue{border-color:#206bc4}.ribbon.bg-blue-lt{border-color:#2b72c7!important}.ribbon.bg-azure{border-color:#4299e1}.ribbon.bg-azure-lt{border-color:#4b9ee3!important}.ribbon.bg-indigo{border-color:#4263eb}.ribbon.bg-indigo-lt{border-color:#4b6bec!important}.ribbon.bg-purple{border-color:#ae3ec9}.ribbon.bg-purple-lt{border-color:#b248cc!important}.ribbon.bg-pink{border-color:#d6336c}.ribbon.bg-pink-lt{border-color:#d83d73!important}.ribbon.bg-red{border-color:#d63939}.ribbon.bg-red-lt{border-color:#d84343!important}.ribbon.bg-orange{border-color:#f76707}.ribbon.bg-orange-lt{border-color:#f76f13!important}.ribbon.bg-yellow{border-color:#f59f00}.ribbon.bg-yellow-lt{border-color:#f6a40d!important}.ribbon.bg-lime{border-color:#74b816}.ribbon.bg-lime-lt{border-color:#7bbc22!important}.ribbon.bg-green{border-color:#2fb344}.ribbon.bg-green-lt{border-color:#39b74d!important}.ribbon.bg-teal{border-color:#0ca678}.ribbon.bg-teal-lt{border-color:#18aa7f!important}.ribbon.bg-cyan{border-color:#17a2b8}.ribbon.bg-cyan-lt{border-color:#23a7bc!important}.ribbon .icon{width:1.25rem;height:1.25rem;font-size:1.25rem}.ribbon-top{top:-.25rem;right:.75rem;width:2rem;padding:.5rem 0}.ribbon-top:before{top:0;right:100%;bottom:auto;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon-top.ribbon-start{right:auto;left:.75rem}.ribbon-top.ribbon-start:before{top:0;right:100%;left:auto}.ribbon-start{right:auto;left:-.25rem}.ribbon-start:before{top:auto;bottom:100%;left:0;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon-bottom{top:auto;bottom:.75rem}.ribbon-bookmark{padding-left:.25rem}.ribbon-bookmark:after{position:absolute;top:0;right:100%;display:block;width:0;height:0;content:"";border:1rem solid;border-color:inherit;border-right-width:0;border-left-color:transparent;border-left-width:.5rem}.ribbon-bookmark.ribbon-left{padding-right:.5rem;padding-left:.5rem}.ribbon-bookmark.ribbon-left:after{right:auto;left:100%;border-right-color:transparent;border-right-width:.5rem;border-left-width:0}.ribbon-bookmark.ribbon-top{padding-right:0;padding-bottom:.25rem;padding-left:0}.ribbon-bookmark.ribbon-top:after{top:100%;right:0;left:0;border-color:inherit;border-width:1rem;border-top-width:0;border-bottom-color:transparent;border-bottom-width:.5rem}.markdown{font-size:1rem;line-height:1.7142857143}.markdown>:first-child{margin-top:0}.markdown>:last-child,.markdown>:last-child .highlight{margin-bottom:0}@media (min-width:768px){.markdown>.hr,.markdown>hr{margin-top:3em;margin-bottom:3em}}.markdown>.h1,.markdown>.h2,.markdown>.h3,.markdown>.h4,.markdown>.h5,.markdown>.h6,.markdown>h1,.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{font-weight:600}.markdown>blockquote{font-size:1rem;margin:1.5rem 0;padding:.5rem 1.5rem}.markdown>img{border-radius:4px}.placeholder:not(.btn):not([class*=bg-]){background-color:currentColor!important}.placeholder:not(.avatar):not([class*=card-img-]){border-radius:4px}.steps{display:flex;flex-wrap:nowrap;width:100%;padding:0;margin:2rem 0;list-style:none}.steps .step-item{padding-top:calc(.5rem + 4px)}.steps .step-item:after{top:calc(.25rem + 2px);height:2px}.steps .step-item:before{width:.5rem;height:.5rem}.steps .step-item:after,.steps .step-item:before{color:#fff;background:#206bc4}.steps .step-item.active:before{color:inherit;border-color:#206bc4}.steps-blue .step-item:after,.steps-blue .step-item:before{color:#fff;background:#206bc4}.steps-blue .step-item.active:before{color:inherit;border-color:#206bc4}.steps-azure .step-item:after,.steps-azure .step-item:before{color:#fff;background:#4299e1}.steps-azure .step-item.active:before{color:inherit;border-color:#4299e1}.steps-indigo .step-item:after,.steps-indigo .step-item:before{color:#fff;background:#4263eb}.steps-indigo .step-item.active:before{color:inherit;border-color:#4263eb}.steps-purple .step-item:after,.steps-purple .step-item:before{color:#fff;background:#ae3ec9}.steps-purple .step-item.active:before{color:inherit;border-color:#ae3ec9}.steps-pink .step-item:after,.steps-pink .step-item:before{color:#fff;background:#d6336c}.steps-pink .step-item.active:before{color:inherit;border-color:#d6336c}.steps-red .step-item:after,.steps-red .step-item:before{color:#fff;background:#d63939}.steps-red .step-item.active:before{color:inherit;border-color:#d63939}.steps-orange .step-item:after,.steps-orange .step-item:before{color:#fff;background:#f76707}.steps-orange .step-item.active:before{color:inherit;border-color:#f76707}.steps-yellow .step-item:after,.steps-yellow .step-item:before{color:#fff;background:#f59f00}.steps-yellow .step-item.active:before{color:inherit;border-color:#f59f00}.steps-lime .step-item:after,.steps-lime .step-item:before{color:#fff;background:#74b816}.steps-lime .step-item.active:before{color:inherit;border-color:#74b816}.steps-green .step-item:after,.steps-green .step-item:before{color:#fff;background:#2fb344}.steps-green .step-item.active:before{color:inherit;border-color:#2fb344}.steps-teal .step-item:after,.steps-teal .step-item:before{color:#fff;background:#0ca678}.steps-teal .step-item.active:before{color:inherit;border-color:#0ca678}.steps-cyan .step-item:after,.steps-cyan .step-item:before{color:#fff;background:#17a2b8}.steps-cyan .step-item.active:before{color:inherit;border-color:#17a2b8}.step-item{position:relative;flex:1 1 0;min-height:1rem;margin-top:0;color:inherit;text-align:center;cursor:default}a.step-item{cursor:pointer}a.step-item:hover{color:inherit}.step-item:not(:first-child):after{position:absolute;left:-50%;width:100%;content:"";transform:translateY(-50%)}.step-item:before{position:absolute;top:0;left:50%;z-index:1;box-sizing:content-box;display:block;content:"";border:2px solid #fff;border-radius:100rem;transform:translateX(-50%)}.step-item.active{font-weight:600}.step-item.active:before{background:#fff}.step-item.active~.step-item{color:#626976}.step-item.active~.step-item:after,.step-item.active~.step-item:before{background:#f3f5f5}.step-item.active~.step-item:before{color:#626976!important}.steps-counter{counter-reset:steps}.steps-counter .step-item{padding-top:calc(1.5rem + 4px)}.steps-counter .step-item:after{top:calc(.75rem + 2px);height:2px}.steps-counter .step-item:before{width:1.5rem;height:1.5rem}.steps-counter .step-item{counter-increment:steps}.steps-counter .step-item:before{font-size:.75rem;line-height:1.5rem;content:counter(steps)}.steps-counter .step-item.active~.step-item:before{background:#fff}@-webkit-keyframes status-pulsate-main{40%{transform:scale(1.25,1.25)}60%{transform:scale(1.25,1.25)}}@keyframes status-pulsate-main{40%{transform:scale(1.25,1.25)}60%{transform:scale(1.25,1.25)}}@-webkit-keyframes status-pulsate-secondary{10%{transform:scale(1,1)}30%{transform:scale(3,3)}80%{transform:scale(3,3)}100%{transform:scale(1,1)}}@keyframes status-pulsate-secondary{10%{transform:scale(1,1)}30%{transform:scale(3,3)}80%{transform:scale(3,3)}100%{transform:scale(1,1)}}@-webkit-keyframes status-pulsate-tertiary{25%{transform:scale(1,1)}80%{transform:scale(3,3);opacity:0}100%{transform:scale(3,3);opacity:0}}@keyframes status-pulsate-tertiary{25%{transform:scale(1,1)}80%{transform:scale(3,3);opacity:0}100%{transform:scale(3,3);opacity:0}}.status{--tblr-status-height:1.5rem;--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118;display:inline-flex;align-items:center;height:var(--tblr-status-height);padding:.25rem .75rem;gap:.5rem;color:var(--tblr-status-color);background:rgba(var(--tblr-status-color-rgb),.1);font-size:.875rem;text-transform:none;letter-spacing:normal;border-radius:100rem;font-weight:500;line-height:1;margin:0}.status .status-dot{background:var(--tblr-status-color)}.status .icon{font-size:1.25rem}.status-lite{border:1px solid var(--tblr-border-color)!important;background:0 0!important;color:var(--tblr-body-text)!important}.status-primary{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-secondary{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118}.status-success{--tblr-status-color:#2fb344;--tblr-status-color-rgb:47,179,68}.status-info{--tblr-status-color:#4299e1;--tblr-status-color-rgb:66,153,225}.status-warning{--tblr-status-color:#f76707;--tblr-status-color-rgb:247,103,7}.status-danger{--tblr-status-color:#d63939;--tblr-status-color-rgb:214,57,57}.status-light{--tblr-status-color:#fafbfc;--tblr-status-color-rgb:250,251,252}.status-dark{--tblr-status-color:#1e293b;--tblr-status-color-rgb:30,41,59}.status-muted{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118}.status-blue{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-azure{--tblr-status-color:#4299e1;--tblr-status-color-rgb:66,153,225}.status-indigo{--tblr-status-color:#4263eb;--tblr-status-color-rgb:66,99,235}.status-purple{--tblr-status-color:#ae3ec9;--tblr-status-color-rgb:174,62,201}.status-pink{--tblr-status-color:#d6336c;--tblr-status-color-rgb:214,51,108}.status-red{--tblr-status-color:#d63939;--tblr-status-color-rgb:214,57,57}.status-orange{--tblr-status-color:#f76707;--tblr-status-color-rgb:247,103,7}.status-yellow{--tblr-status-color:#f59f00;--tblr-status-color-rgb:245,159,0}.status-lime{--tblr-status-color:#74b816;--tblr-status-color-rgb:116,184,22}.status-green{--tblr-status-color:#2fb344;--tblr-status-color-rgb:47,179,68}.status-teal{--tblr-status-color:#0ca678;--tblr-status-color-rgb:12,166,120}.status-cyan{--tblr-status-color:#17a2b8;--tblr-status-color-rgb:23,162,184}.status-facebook{--tblr-status-color:#3b5998;--tblr-status-color-rgb:59,89,152}.status-twitter{--tblr-status-color:#1da1f2;--tblr-status-color-rgb:29,161,242}.status-linkedin{--tblr-status-color:#0a66c2;--tblr-status-color-rgb:10,102,194}.status-google{--tblr-status-color:#dc4e41;--tblr-status-color-rgb:220,78,65}.status-youtube{--tblr-status-color:#ff0000;--tblr-status-color-rgb:255,0,0}.status-vimeo{--tblr-status-color:#1ab7ea;--tblr-status-color-rgb:26,183,234}.status-dribbble{--tblr-status-color:#ea4c89;--tblr-status-color-rgb:234,76,137}.status-github{--tblr-status-color:#181717;--tblr-status-color-rgb:24,23,23}.status-instagram{--tblr-status-color:#e4405f;--tblr-status-color-rgb:228,64,95}.status-pinterest{--tblr-status-color:#bd081c;--tblr-status-color-rgb:189,8,28}.status-vk{--tblr-status-color:#6383a8;--tblr-status-color-rgb:99,131,168}.status-rss{--tblr-status-color:#ffa500;--tblr-status-color-rgb:255,165,0}.status-flickr{--tblr-status-color:#0063dc;--tblr-status-color-rgb:0,99,220}.status-bitbucket{--tblr-status-color:#0052cc;--tblr-status-color-rgb:0,82,204}.status-tabler{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-dot{--tblr-status-dot-color:var(--tblr-status-color, #626976);--tblr-status-size:0.5rem;position:relative;display:inline-block;width:var(--tblr-status-size);height:var(--tblr-status-size);background:var(--tblr-status-dot-color);border-radius:100rem}.status-dot-animated:before{content:"";position:absolute;inset:0;z-index:0;background:inherit;border-radius:inherit;opacity:.6;-webkit-animation:1s linear 2s backwards infinite status-pulsate-tertiary;animation:1s linear 2s backwards infinite status-pulsate-tertiary}.status-indicator{--tblr-status-indicator-size:2.5rem;--tblr-status-indicator-color:var(--tblr-status-color, #626976);display:block;position:relative;width:var(--tblr-status-indicator-size);height:var(--tblr-status-indicator-size)}.status-indicator-circle{--tblr-status-circle-size:.75rem;position:absolute;left:50%;top:50%;margin:calc(var(--tblr-status-circle-size)/ -2) 0 0 calc(var(--tblr-status-circle-size)/ -2);width:var(--tblr-status-circle-size);height:var(--tblr-status-circle-size);border-radius:100rem;background:var(--tblr-status-color)}.status-indicator-circle:nth-child(1){z-index:3}.status-indicator-circle:nth-child(2){z-index:2;opacity:.1}.status-indicator-circle:nth-child(3){z-index:1;opacity:.3}.status-indicator-animated .status-indicator-circle:nth-child(1){-webkit-animation:2s linear 1s infinite backwards status-pulsate-main;animation:2s linear 1s infinite backwards status-pulsate-main}.status-indicator-animated .status-indicator-circle:nth-child(2){-webkit-animation:2s linear 1s infinite backwards status-pulsate-secondary;animation:2s linear 1s infinite backwards status-pulsate-secondary}.status-indicator-animated .status-indicator-circle:nth-child(3){-webkit-animation:2s linear 1s infinite backwards status-pulsate-tertiary;animation:2s linear 1s infinite backwards status-pulsate-tertiary}.switch-icon{display:inline-block;line-height:1;border:0;padding:0;background:0 0;width:1.25rem;height:1.25rem;vertical-align:bottom;position:relative;cursor:pointer}.switch-icon.disabled{pointer-events:none;opacity:.65}.switch-icon:focus{outline:0}.switch-icon svg{display:block;width:100%;height:100%}.switch-icon .switch-icon-a,.switch-icon .switch-icon-b{display:block;width:100%;height:100%}.switch-icon .switch-icon-a{opacity:1}.switch-icon .switch-icon-b{position:absolute;top:0;left:0;opacity:0}.switch-icon.active .switch-icon-a{opacity:0}.switch-icon.active .switch-icon-b{opacity:1}.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:opacity .5s}@media (prefers-reduced-motion:reduce){.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:opacity .5s,transform 0s .5s}@media (prefers-reduced-motion:reduce){.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-b{transform:scale(1.5)}.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:opacity 0s,transform .5s}@media (prefers-reduced-motion:reduce){.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:none}}.switch-icon-scale.active .switch-icon-b{transform:scale(1)}.switch-icon-flip{perspective:10em}.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d;transition:opacity 0s .2s,transform .4s ease-in-out}@media (prefers-reduced-motion:reduce){.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{transition:none}}.switch-icon-flip .switch-icon-a{opacity:1;transform:rotateY(0)}.switch-icon-flip .switch-icon-b{opacity:1;transform:rotateY(-180deg)}.switch-icon-flip.active .switch-icon-a{opacity:1;transform:rotateY(180deg)}.switch-icon-flip.active .switch-icon-b{opacity:1;transform:rotateY(0)}.switch-icon-slide-down,.switch-icon-slide-left,.switch-icon-slide-right,.switch-icon-slide-up{overflow:hidden}.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b{transition:opacity .3s,transform .3s}@media (prefers-reduced-motion:reduce){.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b{transition:none}}.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-up .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-b{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-a,.switch-icon-slide-left.active .switch-icon-a,.switch-icon-slide-right.active .switch-icon-a,.switch-icon-slide-up.active .switch-icon-a{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-b,.switch-icon-slide-left.active .switch-icon-b,.switch-icon-slide-right.active .switch-icon-b,.switch-icon-slide-up.active .switch-icon-b{transform:translateY(0)}.switch-icon-slide-left .switch-icon-a{transform:translateX(0)}.switch-icon-slide-left .switch-icon-b{transform:translateX(100%)}.switch-icon-slide-left.active .switch-icon-a{transform:translateX(-100%)}.switch-icon-slide-left.active .switch-icon-b{transform:translateX(0)}.switch-icon-slide-right .switch-icon-a{transform:translateX(0)}.switch-icon-slide-right .switch-icon-b{transform:translateX(-100%)}.switch-icon-slide-right.active .switch-icon-a{transform:translateX(100%)}.switch-icon-slide-right.active .switch-icon-b{transform:translateX(0)}.switch-icon-slide-down .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-a{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-b{transform:translateY(0)}.markdown>table thead th,.table thead th{color:#626976;background:var(--tblr-border-color-light);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;padding-top:.5rem;padding-bottom:.5rem;white-space:nowrap}@media print{.markdown>table thead th,.table thead th{background:0 0}}.markdown>table>:not(:first-child),.table>:not(:first-child){border-top-width:1px}.table-responsive .markdown>table,.table-responsive .table{margin-bottom:0}.table-transparent thead th{background:0 0}.table-nowrap>:not(caption)>*>*{white-space:nowrap}.table-vcenter>:not(caption)>*>*{vertical-align:middle}.table-center>:not(caption)>*>*{text-align:center}.td-truncate{max-width:1px;width:100%}.table-mobile{display:block}.table-mobile thead{display:none}.table-mobile tbody,.table-mobile tr{display:flex;flex-direction:column}.table-mobile td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile .btn{display:block}@media (max-width:575.98px){.table-mobile-sm{display:block}.table-mobile-sm thead{display:none}.table-mobile-sm tbody,.table-mobile-sm tr{display:flex;flex-direction:column}.table-mobile-sm td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-sm td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-sm tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-sm .btn{display:block}}@media (max-width:767.98px){.table-mobile-md{display:block}.table-mobile-md thead{display:none}.table-mobile-md tbody,.table-mobile-md tr{display:flex;flex-direction:column}.table-mobile-md td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-md td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-md tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-md .btn{display:block}}@media (max-width:991.98px){.table-mobile-lg{display:block}.table-mobile-lg thead{display:none}.table-mobile-lg tbody,.table-mobile-lg tr{display:flex;flex-direction:column}.table-mobile-lg td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-lg td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-lg tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-lg .btn{display:block}}@media (max-width:1199.98px){.table-mobile-xl{display:block}.table-mobile-xl thead{display:none}.table-mobile-xl tbody,.table-mobile-xl tr{display:flex;flex-direction:column}.table-mobile-xl td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-xl td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-xl tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-xl .btn{display:block}}@media (max-width:1399.98px){.table-mobile-xxl{display:block}.table-mobile-xxl thead{display:none}.table-mobile-xxl tbody,.table-mobile-xxl tr{display:flex;flex-direction:column}.table-mobile-xxl td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-xxl td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-xxl tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-xxl .btn{display:block}}.table-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;border:0;background:inherit;display:block;width:100%;text-align:inherit;transition:color .3s;margin:-.5rem -.75rem;padding:.5rem .75rem}@media (prefers-reduced-motion:reduce){.table-sort{transition:none}}.table-sort.asc,.table-sort.desc,.table-sort:hover{color:#1e293b}.table-sort.asc:after,.table-sort.desc:after,.table-sort:after{content:"";display:inline-flex;width:1rem;height:1rem;vertical-align:bottom;background:url("data:image/svg+xml,") no-repeat center;opacity:.2}.table-sort.asc:after{background:url("data:image/svg+xml,") no-repeat center;opacity:1}.table-sort.desc:after{background:url("data:image/svg+xml,") no-repeat center;opacity:1}.toast{background:#fff;border:1px solid rgba(98,105,118,.16);border-left:.25rem solid var(--tblr-toast-color);box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.toast .toast-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.toast button[data-bs-dismiss=toast]{outline:0}.toast-primary{--tblr-toast-color:#206bc4}.toast-secondary{--tblr-toast-color:#626976}.toast-success{--tblr-toast-color:#2fb344}.toast-info{--tblr-toast-color:#4299e1}.toast-warning{--tblr-toast-color:#f76707}.toast-danger{--tblr-toast-color:#d63939}.toast-light{--tblr-toast-color:#fafbfc}.toast-dark{--tblr-toast-color:#1e293b}.toast-muted{--tblr-toast-color:#626976}.toast-blue{--tblr-toast-color:#206bc4}.toast-azure{--tblr-toast-color:#4299e1}.toast-indigo{--tblr-toast-color:#4263eb}.toast-purple{--tblr-toast-color:#ae3ec9}.toast-pink{--tblr-toast-color:#d6336c}.toast-red{--tblr-toast-color:#d63939}.toast-orange{--tblr-toast-color:#f76707}.toast-yellow{--tblr-toast-color:#f59f00}.toast-lime{--tblr-toast-color:#74b816}.toast-green{--tblr-toast-color:#2fb344}.toast-teal{--tblr-toast-color:#0ca678}.toast-cyan{--tblr-toast-color:#17a2b8}.toast-facebook{--tblr-toast-color:#3b5998}.toast-twitter{--tblr-toast-color:#1da1f2}.toast-linkedin{--tblr-toast-color:#0a66c2}.toast-google{--tblr-toast-color:#dc4e41}.toast-youtube{--tblr-toast-color:#ff0000}.toast-vimeo{--tblr-toast-color:#1ab7ea}.toast-dribbble{--tblr-toast-color:#ea4c89}.toast-github{--tblr-toast-color:#181717}.toast-instagram{--tblr-toast-color:#e4405f}.toast-pinterest{--tblr-toast-color:#bd081c}.toast-vk{--tblr-toast-color:#6383a8}.toast-rss{--tblr-toast-color:#ffa500}.toast-flickr{--tblr-toast-color:#0063dc}.toast-bitbucket{--tblr-toast-color:#0052cc}.toast-tabler{--tblr-toast-color:#206bc4}.toolbar{display:flex;flex-wrap:nowrap;flex-shrink:0;margin:0 -.5rem}.toolbar>*{margin:0 .5rem}.hr-text{display:flex;align-items:center;margin:2rem 0;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;height:1px}.hr-text:after,.hr-text:before{flex:1 1 auto;background-color:currentColor;opacity:.16}.hr-text:before{content:"";margin-right:.5rem}.hr-text:after{content:"";margin-left:.5rem}.hr-text>:first-child{padding-right:.5rem;padding-left:0;color:#626976}.hr-text.hr-text-left:before{content:none}.hr-text.hr-text-left>:first-child{padding-right:.5rem;padding-left:.5rem}.hr-text.hr-text-right:before{content:""}.hr-text.hr-text-right:after{content:none}.hr-text.hr-text-right>:first-child{padding-right:0;padding-left:.5rem}.card>.hr-text{margin:0}.hr-text-spaceless{margin:-.5rem 0}.lead{line-height:1.4}a{-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.h1 a,.h2 a,.h3 a,.h4 a,.h5 a,.h6 a,h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit}.h1 a:hover,.h2 a:hover,.h3 a:hover,.h4 a:hover,.h5 a:hover,.h6 a:hover,h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{color:inherit}.h1,h1{line-height:1.3333333333}.h2,h2{line-height:1.4}.h3,h3{line-height:1.5}.h4,h4{line-height:1.4285714286}.h5,h5{line-height:1.3333333333}.h6,h6{line-height:1.6}.strong,b,strong{font-weight:600}blockquote{padding-left:1rem;border-left:2px solid #e6e7e9}blockquote p{margin-bottom:1rem}blockquote cite{display:block;text-align:right}blockquote cite:before{content:"— "}ol,ul{padding-left:1.5rem}.hr,hr{margin:2rem 0}dl dd:last-child{margin-bottom:0}code{padding:2px 4px;background:rgba(75,84,98,.03);border:1px solid rgba(75,84,98,.064);border-radius:4px;font-weight:400}pre{padding:1rem;overflow:auto;font-size:.75rem;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.25rem;-moz-tab-size:3;-o-tab-size:3;tab-size:3;border-radius:4px;white-space:pre-wrap;background:#fdfdfe;border:1px solid rgba(98,105,118,.16);-webkit-font-smoothing:auto}pre code{padding:0;background:0 0;border:none;border-radius:0}img{max-width:100%}.list-unstyled{margin-left:0}::-moz-selection{color:#fff;background-color:#307fdd}::selection{color:#fff;background-color:#307fdd}[class*=" link-"].disabled,[class^=link-].disabled{color:#475569;pointer-events:none}.subheader{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976}.chart{display:block;min-height:10rem}.chart text{font-family:inherit}.chart-sm{height:2.5rem}.chart-lg{height:15rem}.chart-square{height:5.75rem}.chart-sparkline{position:relative;width:4rem;height:2.5rem;line-height:1;min-height:0!important}.chart-sparkline-sm{height:1.5rem}.chart-sparkline-square{width:2.5rem}.chart-sparkline-wide{width:6rem}.chart-sparkline-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.625rem}.chart-sparkline-label .icon{width:1rem;height:1rem;font-size:1rem}.offcanvas{background:var(--tblr-card-bg)}.offcanvas-header{border-bottom:1px solid rgba(98,105,118,.16)}.offcanvas-footer{padding:1.5rem 1.5rem}.offcanvas-title{font-size:1rem;font-weight:500;line-height:1.5rem}.offcanvas-narrow{width:20rem}.bg-white-overlay{color:#fff;background-color:rgba(250,251,252,.24)}.bg-dark-overlay{color:#fff;background-color:rgba(30,41,59,.24)}.bg-cover{background-repeat:no-repeat;background-size:cover;background-position:center}.bg-primary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-primary-rgb),var(--tblr-bg-opacity))!important}.bg-primary-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.bg-secondary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-secondary-rgb),var(--tblr-bg-opacity))!important}.bg-secondary-lt{color:#626976!important;background:rgba(98,105,118,.05)!important}.bg-success{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-success-rgb),var(--tblr-bg-opacity))!important}.bg-success-lt{color:#2fb344!important;background:rgba(47,179,68,.05)!important}.bg-info{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-info-rgb),var(--tblr-bg-opacity))!important}.bg-info-lt{color:#4299e1!important;background:rgba(66,153,225,.05)!important}.bg-warning{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-warning-rgb),var(--tblr-bg-opacity))!important}.bg-warning-lt{color:#f76707!important;background:rgba(247,103,7,.05)!important}.bg-danger{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-danger-rgb),var(--tblr-bg-opacity))!important}.bg-danger-lt{color:#d63939!important;background:rgba(214,57,57,.05)!important}.bg-light{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-light-rgb),var(--tblr-bg-opacity))!important}.bg-light-lt{color:#fafbfc!important;background:rgba(250,251,252,.05)!important}.bg-dark{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dark-rgb),var(--tblr-bg-opacity))!important}.bg-dark-lt{color:#1e293b!important;background:rgba(30,41,59,.05)!important}.bg-muted{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-muted-rgb),var(--tblr-bg-opacity))!important}.bg-muted-lt{color:#626976!important;background:rgba(98,105,118,.05)!important}.bg-blue{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-blue-rgb),var(--tblr-bg-opacity))!important}.bg-blue-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.bg-azure{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-azure-rgb),var(--tblr-bg-opacity))!important}.bg-azure-lt{color:#4299e1!important;background:rgba(66,153,225,.05)!important}.bg-indigo{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-indigo-rgb),var(--tblr-bg-opacity))!important}.bg-indigo-lt{color:#4263eb!important;background:rgba(66,99,235,.05)!important}.bg-purple{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-purple-rgb),var(--tblr-bg-opacity))!important}.bg-purple-lt{color:#ae3ec9!important;background:rgba(174,62,201,.05)!important}.bg-pink{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-pink-rgb),var(--tblr-bg-opacity))!important}.bg-pink-lt{color:#d6336c!important;background:rgba(214,51,108,.05)!important}.bg-red{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-red-rgb),var(--tblr-bg-opacity))!important}.bg-red-lt{color:#d63939!important;background:rgba(214,57,57,.05)!important}.bg-orange{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-orange-rgb),var(--tblr-bg-opacity))!important}.bg-orange-lt{color:#f76707!important;background:rgba(247,103,7,.05)!important}.bg-yellow{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-yellow-rgb),var(--tblr-bg-opacity))!important}.bg-yellow-lt{color:#f59f00!important;background:rgba(245,159,0,.05)!important}.bg-lime{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-lime-rgb),var(--tblr-bg-opacity))!important}.bg-lime-lt{color:#74b816!important;background:rgba(116,184,22,.05)!important}.bg-green{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-green-rgb),var(--tblr-bg-opacity))!important}.bg-green-lt{color:#2fb344!important;background:rgba(47,179,68,.05)!important}.bg-teal{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-teal-rgb),var(--tblr-bg-opacity))!important}.bg-teal-lt{color:#0ca678!important;background:rgba(12,166,120,.05)!important}.bg-cyan{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-cyan-rgb),var(--tblr-bg-opacity))!important}.bg-cyan-lt{color:#17a2b8!important;background:rgba(23,162,184,.05)!important}.bg-facebook{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-facebook-rgb),var(--tblr-bg-opacity))!important}.bg-facebook-lt{color:#3b5998!important;background:rgba(59,89,152,.05)!important}.bg-twitter{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-twitter-rgb),var(--tblr-bg-opacity))!important}.bg-twitter-lt{color:#1da1f2!important;background:rgba(29,161,242,.05)!important}.bg-linkedin{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-bg-opacity))!important}.bg-linkedin-lt{color:#0a66c2!important;background:rgba(10,102,194,.05)!important}.bg-google{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-google-rgb),var(--tblr-bg-opacity))!important}.bg-google-lt{color:#dc4e41!important;background:rgba(220,78,65,.05)!important}.bg-youtube{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-youtube-rgb),var(--tblr-bg-opacity))!important}.bg-youtube-lt{color:red!important;background:rgba(255,0,0,.05)!important}.bg-vimeo{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-bg-opacity))!important}.bg-vimeo-lt{color:#1ab7ea!important;background:rgba(26,183,234,.05)!important}.bg-dribbble{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-bg-opacity))!important}.bg-dribbble-lt{color:#ea4c89!important;background:rgba(234,76,137,.05)!important}.bg-github{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-github-rgb),var(--tblr-bg-opacity))!important}.bg-github-lt{color:#181717!important;background:rgba(24,23,23,.05)!important}.bg-instagram{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-instagram-rgb),var(--tblr-bg-opacity))!important}.bg-instagram-lt{color:#e4405f!important;background:rgba(228,64,95,.05)!important}.bg-pinterest{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-bg-opacity))!important}.bg-pinterest-lt{color:#bd081c!important;background:rgba(189,8,28,.05)!important}.bg-vk{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-vk-rgb),var(--tblr-bg-opacity))!important}.bg-vk-lt{color:#6383a8!important;background:rgba(99,131,168,.05)!important}.bg-rss{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-rss-rgb),var(--tblr-bg-opacity))!important}.bg-rss-lt{color:orange!important;background:rgba(255,165,0,.05)!important}.bg-flickr{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-flickr-rgb),var(--tblr-bg-opacity))!important}.bg-flickr-lt{color:#0063dc!important;background:rgba(0,99,220,.05)!important}.bg-bitbucket{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-bg-opacity))!important}.bg-bitbucket-lt{color:#0052cc!important;background:rgba(0,82,204,.05)!important}.bg-tabler{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-tabler-rgb),var(--tblr-bg-opacity))!important}.bg-tabler-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.text-primary{color:var(--tblr-primary)!important}.text-secondary{color:var(--tblr-secondary)!important}.text-success{color:var(--tblr-success)!important}.text-info{color:var(--tblr-info)!important}.text-warning{color:var(--tblr-warning)!important}.text-danger{color:var(--tblr-danger)!important}.text-light{color:var(--tblr-light)!important}.text-dark{color:var(--tblr-dark)!important}.text-muted{color:var(--tblr-muted)!important}.text-blue{color:var(--tblr-blue)!important}.text-azure{color:var(--tblr-azure)!important}.text-indigo{color:var(--tblr-indigo)!important}.text-purple{color:var(--tblr-purple)!important}.text-pink{color:var(--tblr-pink)!important}.text-red{color:var(--tblr-red)!important}.text-orange{color:var(--tblr-orange)!important}.text-yellow{color:var(--tblr-yellow)!important}.text-lime{color:var(--tblr-lime)!important}.text-green{color:var(--tblr-green)!important}.text-teal{color:var(--tblr-teal)!important}.text-cyan{color:var(--tblr-cyan)!important}.text-facebook{color:var(--tblr-facebook)!important}.text-twitter{color:var(--tblr-twitter)!important}.text-linkedin{color:var(--tblr-linkedin)!important}.text-google{color:var(--tblr-google)!important}.text-youtube{color:var(--tblr-youtube)!important}.text-vimeo{color:var(--tblr-vimeo)!important}.text-dribbble{color:var(--tblr-dribbble)!important}.text-github{color:var(--tblr-github)!important}.text-instagram{color:var(--tblr-instagram)!important}.text-pinterest{color:var(--tblr-pinterest)!important}.text-vk{color:var(--tblr-vk)!important}.text-rss{color:var(--tblr-rss)!important}.text-flickr{color:var(--tblr-flickr)!important}.text-bitbucket{color:var(--tblr-bitbucket)!important}.text-tabler{color:var(--tblr-tabler)!important}.scrollable{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.hover{overflow-y:hidden}.scrollable.hover>*{margin-top:-1px}.scrollable.hover:active,.scrollable.hover:focus,.scrollable.hover:hover{overflow:visible;overflow-y:auto}.touch .scrollable{overflow-y:auto!important}.scroll-x,.scroll-y{overflow:hidden;-webkit-overflow-scrolling:touch}.scroll-y{overflow-y:auto}.scroll-x{overflow-x:auto}.no-scroll{overflow:hidden}.w-0{width:0!important}.h-0{height:0!important}.w-1{width:.25rem!important}.h-1{height:.25rem!important}.w-2{width:.5rem!important}.h-2{height:.5rem!important}.w-3{width:1rem!important}.h-3{height:1rem!important}.w-4{width:2rem!important}.h-4{height:2rem!important}.w-5{width:4rem!important}.h-5{height:4rem!important}.w-auto{width:auto!important}.h-auto{height:auto!important}.w-px{width:1px!important}.h-px{height:1px!important}.w-full{width:100%!important}.h-full{height:100%!important}.opacity-0{opacity:0!important}.opacity-5{opacity:.05!important}.opacity-10{opacity:.1!important}.opacity-15{opacity:.15!important}.opacity-20{opacity:.2!important}.opacity-25{opacity:.25!important}.opacity-30{opacity:.3!important}.opacity-35{opacity:.35!important}.opacity-40{opacity:.4!important}.opacity-45{opacity:.45!important}.opacity-50{opacity:.5!important}.opacity-55{opacity:.55!important}.opacity-60{opacity:.6!important}.opacity-65{opacity:.65!important}.opacity-70{opacity:.7!important}.opacity-75{opacity:.75!important}.opacity-80{opacity:.8!important}.opacity-85{opacity:.85!important}.opacity-90{opacity:.9!important}.opacity-95{opacity:.95!important}.opacity-100{opacity:1!important}.hover-shadow-sm:hover{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.hover-shadow:hover{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.hover-shadow-lg:hover{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.hover-shadow-none:hover{box-shadow:none!important}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto} \ No newline at end of file diff --git a/demo/dist/css/tabler.rtl.css b/demo/dist/css/tabler.rtl.css index 5c3ecfeba..c59880fc6 100644 --- a/demo/dist/css/tabler.rtl.css +++ b/demo/dist/css/tabler.rtl.css @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna @@ -18,6 +18,7 @@ --tblr-green: #2fb344; --tblr-teal: #0ca678; --tblr-cyan: #17a2b8; + --tblr-black: #000000; --tblr-white: #ffffff; --tblr-gray: #475569; --tblr-gray-dark: #1e293b; @@ -39,6 +40,33 @@ --tblr-light: #fafbfc; --tblr-dark: #1e293b; --tblr-muted: #626976; + --tblr-blue: #206bc4; + --tblr-azure: #4299e1; + --tblr-indigo: #4263eb; + --tblr-purple: #ae3ec9; + --tblr-pink: #d6336c; + --tblr-red: #d63939; + --tblr-orange: #f76707; + --tblr-yellow: #f59f00; + --tblr-lime: #74b816; + --tblr-green: #2fb344; + --tblr-teal: #0ca678; + --tblr-cyan: #17a2b8; + --tblr-facebook: #3b5998; + --tblr-twitter: #1da1f2; + --tblr-linkedin: #0a66c2; + --tblr-google: #dc4e41; + --tblr-youtube: #ff0000; + --tblr-vimeo: #1ab7ea; + --tblr-dribbble: #ea4c89; + --tblr-github: #181717; + --tblr-instagram: #e4405f; + --tblr-pinterest: #bd081c; + --tblr-vk: #6383a8; + --tblr-rss: #ffa500; + --tblr-flickr: #0063dc; + --tblr-bitbucket: #0052cc; + --tblr-tabler: #206bc4; --tblr-primary-rgb: 32, 107, 196; --tblr-secondary-rgb: 98, 105, 118; --tblr-success-rgb: 47, 179, 68; @@ -48,6 +76,33 @@ --tblr-light-rgb: 250, 251, 252; --tblr-dark-rgb: 30, 41, 59; --tblr-muted-rgb: 98, 105, 118; + --tblr-blue-rgb: 32, 107, 196; + --tblr-azure-rgb: 66, 153, 225; + --tblr-indigo-rgb: 66, 99, 235; + --tblr-purple-rgb: 174, 62, 201; + --tblr-pink-rgb: 214, 51, 108; + --tblr-red-rgb: 214, 57, 57; + --tblr-orange-rgb: 247, 103, 7; + --tblr-yellow-rgb: 245, 159, 0; + --tblr-lime-rgb: 116, 184, 22; + --tblr-green-rgb: 47, 179, 68; + --tblr-teal-rgb: 12, 166, 120; + --tblr-cyan-rgb: 23, 162, 184; + --tblr-facebook-rgb: 59, 89, 152; + --tblr-twitter-rgb: 29, 161, 242; + --tblr-linkedin-rgb: 10, 102, 194; + --tblr-google-rgb: 220, 78, 65; + --tblr-youtube-rgb: 255, 0, 0; + --tblr-vimeo-rgb: 26, 183, 234; + --tblr-dribbble-rgb: 234, 76, 137; + --tblr-github-rgb: 24, 23, 23; + --tblr-instagram-rgb: 228, 64, 95; + --tblr-pinterest-rgb: 189, 8, 28; + --tblr-vk-rgb: 99, 131, 168; + --tblr-rss-rgb: 255, 165, 0; + --tblr-flickr-rgb: 0, 99, 220; + --tblr-bitbucket-rgb: 0, 82, 204; + --tblr-tabler-rgb: 32, 107, 196; --tblr-white-rgb: 255, 255, 255; --tblr-black-rgb: 0, 0, 0; --tblr-body-color-rgb: 30, 41, 59; @@ -61,6 +116,20 @@ --tblr-body-line-height: 1.4285714286; --tblr-body-color: #1e293b; --tblr-body-bg: #f5f7fb; + --tblr-border-width: 1px; + --tblr-border-style: solid; + --tblr-border-color: #e6e7e9; + --tblr-border-color-translucent: rgba(0, 0, 0, 0.175); + --tblr-border-radius: 4px; + --tblr-border-radius-sm: 2px; + --tblr-border-radius-lg: 8px; + --tblr-border-radius-xl: 1rem; + --tblr-border-radius-2xl: 2rem; + --tblr-border-radius-pill: 100rem; + --tblr-link-color: #206bc4; + --tblr-link-hover-color: #1a569d; + --tblr-code-color: #4b5462; + --tblr-highlight-bg: #fdeccc; } *, @@ -91,15 +160,11 @@ body { hr, .hr { margin: 2rem 0; color: inherit; - background-color: currentColor; border: 0; + border-top: 1px solid; opacity: 0.16; } -hr:not([size]), .hr:not([size]) { - height: 1px; -} - h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { margin-top: 0; margin-bottom: 0.5rem; @@ -136,8 +201,7 @@ p { margin-bottom: 1rem; } -abbr[title], -abbr[data-bs-original-title] { +abbr[title] { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; cursor: help; @@ -193,8 +257,8 @@ small, .small { } mark, .mark { - padding: 0.2em; - background-color: #fcf8e3; + padding: 0.1875em; + background-color: var(--tblr-highlight-bg); } sub, @@ -214,11 +278,11 @@ sup { } a { - color: #206bc4; + color: var(--tblr-link-color); text-decoration: none; } a:hover { - color: #1a569d; + color: var(--tblr-link-hover-color); text-decoration: underline; } @@ -233,8 +297,6 @@ kbd, samp { font-family: var(--tblr-font-monospace); font-size: 1em; - direction: ltr ; - unicode-bidi: bidi-override; } pre { @@ -252,7 +314,7 @@ pre code { code { font-size: 85.71428571%; - color: #4b5462; + color: var(--tblr-code-color); word-wrap: break-word; } a > code { @@ -260,16 +322,15 @@ a > code { } kbd { - padding: 0.2rem 0.4rem; + padding: 0.1875rem 0.375rem; font-size: 85.71428571%; - color: #ffffff; - background-color: #0f172a; + color: var(--tblr-body-bg); + background-color: var(--tblr-body-color); border-radius: 2px; } kbd kbd { padding: 0; font-size: 1em; - font-weight: 600; } figure { @@ -348,8 +409,8 @@ select:disabled { opacity: 1; } -[list]::-webkit-calendar-picker-indicator { - display: none; +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; } button, @@ -428,14 +489,11 @@ legend + * { ::-webkit-file-upload-button { font: inherit; + -webkit-appearance: button; } ::file-selector-button { font: inherit; -} - -::-webkit-file-upload-button { - font: inherit; -webkit-appearance: button; } @@ -496,7 +554,7 @@ progress { } .display-6 { - font-size: 2.5rem; + font-size: 2rem; font-weight: 300; line-height: 1.2; } @@ -549,7 +607,7 @@ progress { .img-thumbnail { padding: 0.25rem; background-color: #f5f7fb; - border: 1px solid #cbd5e1; + border: 1px solid var(--tblr-border-color); border-radius: 4px; max-width: 100%; height: auto; @@ -576,9 +634,11 @@ progress { .container-lg, .container-md, .container-sm { + --tblr-gutter-x: 1.5rem; + --tblr-gutter-y: 0; width: 100%; - padding-left: var(--tblr-gutter-x, 1.5rem); - padding-right: var(--tblr-gutter-x, 1.5rem); + padding-left: calc(var(--tblr-gutter-x) * 0.5); + padding-right: calc(var(--tblr-gutter-x) * 0.5); margin-left: auto; margin-right: auto; } @@ -838,210 +898,166 @@ progress { .col-sm { flex: 1 0 0%; } - .row-cols-sm-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-sm-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-sm-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-sm-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-sm-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-sm-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-sm-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-sm-auto { flex: 0 0 auto; width: auto; } - .col-sm-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-sm-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-sm-3 { flex: 0 0 auto; width: 25%; } - .col-sm-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-sm-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-sm-6 { flex: 0 0 auto; width: 50%; } - .col-sm-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-sm-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-sm-9 { flex: 0 0 auto; width: 75%; } - .col-sm-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-sm-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-sm-12 { flex: 0 0 auto; width: 100%; } - .offset-sm-0 { margin-right: 0; } - .offset-sm-1 { margin-right: 8.33333333%; } - .offset-sm-2 { margin-right: 16.66666667%; } - .offset-sm-3 { margin-right: 25%; } - .offset-sm-4 { margin-right: 33.33333333%; } - .offset-sm-5 { margin-right: 41.66666667%; } - .offset-sm-6 { margin-right: 50%; } - .offset-sm-7 { margin-right: 58.33333333%; } - .offset-sm-8 { margin-right: 66.66666667%; } - .offset-sm-9 { margin-right: 75%; } - .offset-sm-10 { margin-right: 83.33333333%; } - .offset-sm-11 { margin-right: 91.66666667%; } - .g-sm-0, .gx-sm-0 { --tblr-gutter-x: 0; } - .g-sm-0, .gy-sm-0 { --tblr-gutter-y: 0; } - .g-sm-1, .gx-sm-1 { --tblr-gutter-x: 0.25rem; } - .g-sm-1, .gy-sm-1 { --tblr-gutter-y: 0.25rem; } - .g-sm-2, .gx-sm-2 { --tblr-gutter-x: 0.5rem; } - .g-sm-2, .gy-sm-2 { --tblr-gutter-y: 0.5rem; } - .g-sm-3, .gx-sm-3 { --tblr-gutter-x: 1rem; } - .g-sm-3, .gy-sm-3 { --tblr-gutter-y: 1rem; } - .g-sm-4, .gx-sm-4 { --tblr-gutter-x: 2rem; } - .g-sm-4, .gy-sm-4 { --tblr-gutter-y: 2rem; } - .g-sm-5, .gx-sm-5 { --tblr-gutter-x: 4rem; } - .g-sm-5, .gy-sm-5 { --tblr-gutter-y: 4rem; @@ -1051,210 +1067,166 @@ progress { .col-md { flex: 1 0 0%; } - .row-cols-md-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-md-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-md-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-md-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-md-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-md-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-md-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-md-auto { flex: 0 0 auto; width: auto; } - .col-md-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-md-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-md-3 { flex: 0 0 auto; width: 25%; } - .col-md-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-md-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-md-6 { flex: 0 0 auto; width: 50%; } - .col-md-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-md-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-md-9 { flex: 0 0 auto; width: 75%; } - .col-md-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-md-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-md-12 { flex: 0 0 auto; width: 100%; } - .offset-md-0 { margin-right: 0; } - .offset-md-1 { margin-right: 8.33333333%; } - .offset-md-2 { margin-right: 16.66666667%; } - .offset-md-3 { margin-right: 25%; } - .offset-md-4 { margin-right: 33.33333333%; } - .offset-md-5 { margin-right: 41.66666667%; } - .offset-md-6 { margin-right: 50%; } - .offset-md-7 { margin-right: 58.33333333%; } - .offset-md-8 { margin-right: 66.66666667%; } - .offset-md-9 { margin-right: 75%; } - .offset-md-10 { margin-right: 83.33333333%; } - .offset-md-11 { margin-right: 91.66666667%; } - .g-md-0, .gx-md-0 { --tblr-gutter-x: 0; } - .g-md-0, .gy-md-0 { --tblr-gutter-y: 0; } - .g-md-1, .gx-md-1 { --tblr-gutter-x: 0.25rem; } - .g-md-1, .gy-md-1 { --tblr-gutter-y: 0.25rem; } - .g-md-2, .gx-md-2 { --tblr-gutter-x: 0.5rem; } - .g-md-2, .gy-md-2 { --tblr-gutter-y: 0.5rem; } - .g-md-3, .gx-md-3 { --tblr-gutter-x: 1rem; } - .g-md-3, .gy-md-3 { --tblr-gutter-y: 1rem; } - .g-md-4, .gx-md-4 { --tblr-gutter-x: 2rem; } - .g-md-4, .gy-md-4 { --tblr-gutter-y: 2rem; } - .g-md-5, .gx-md-5 { --tblr-gutter-x: 4rem; } - .g-md-5, .gy-md-5 { --tblr-gutter-y: 4rem; @@ -1264,210 +1236,166 @@ progress { .col-lg { flex: 1 0 0%; } - .row-cols-lg-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-lg-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-lg-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-lg-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-lg-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-lg-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-lg-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-lg-auto { flex: 0 0 auto; width: auto; } - .col-lg-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-lg-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-lg-3 { flex: 0 0 auto; width: 25%; } - .col-lg-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-lg-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-lg-6 { flex: 0 0 auto; width: 50%; } - .col-lg-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-lg-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-lg-9 { flex: 0 0 auto; width: 75%; } - .col-lg-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-lg-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-lg-12 { flex: 0 0 auto; width: 100%; } - .offset-lg-0 { margin-right: 0; } - .offset-lg-1 { margin-right: 8.33333333%; } - .offset-lg-2 { margin-right: 16.66666667%; } - .offset-lg-3 { margin-right: 25%; } - .offset-lg-4 { margin-right: 33.33333333%; } - .offset-lg-5 { margin-right: 41.66666667%; } - .offset-lg-6 { margin-right: 50%; } - .offset-lg-7 { margin-right: 58.33333333%; } - .offset-lg-8 { margin-right: 66.66666667%; } - .offset-lg-9 { margin-right: 75%; } - .offset-lg-10 { margin-right: 83.33333333%; } - .offset-lg-11 { margin-right: 91.66666667%; } - .g-lg-0, .gx-lg-0 { --tblr-gutter-x: 0; } - .g-lg-0, .gy-lg-0 { --tblr-gutter-y: 0; } - .g-lg-1, .gx-lg-1 { --tblr-gutter-x: 0.25rem; } - .g-lg-1, .gy-lg-1 { --tblr-gutter-y: 0.25rem; } - .g-lg-2, .gx-lg-2 { --tblr-gutter-x: 0.5rem; } - .g-lg-2, .gy-lg-2 { --tblr-gutter-y: 0.5rem; } - .g-lg-3, .gx-lg-3 { --tblr-gutter-x: 1rem; } - .g-lg-3, .gy-lg-3 { --tblr-gutter-y: 1rem; } - .g-lg-4, .gx-lg-4 { --tblr-gutter-x: 2rem; } - .g-lg-4, .gy-lg-4 { --tblr-gutter-y: 2rem; } - .g-lg-5, .gx-lg-5 { --tblr-gutter-x: 4rem; } - .g-lg-5, .gy-lg-5 { --tblr-gutter-y: 4rem; @@ -1477,210 +1405,166 @@ progress { .col-xl { flex: 1 0 0%; } - .row-cols-xl-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-xl-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-xl-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-xl-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-xl-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-xl-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-xl-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-xl-auto { flex: 0 0 auto; width: auto; } - .col-xl-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-xl-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-xl-3 { flex: 0 0 auto; width: 25%; } - .col-xl-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-xl-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-xl-6 { flex: 0 0 auto; width: 50%; } - .col-xl-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-xl-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-xl-9 { flex: 0 0 auto; width: 75%; } - .col-xl-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-xl-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-xl-12 { flex: 0 0 auto; width: 100%; } - .offset-xl-0 { margin-right: 0; } - .offset-xl-1 { margin-right: 8.33333333%; } - .offset-xl-2 { margin-right: 16.66666667%; } - .offset-xl-3 { margin-right: 25%; } - .offset-xl-4 { margin-right: 33.33333333%; } - .offset-xl-5 { margin-right: 41.66666667%; } - .offset-xl-6 { margin-right: 50%; } - .offset-xl-7 { margin-right: 58.33333333%; } - .offset-xl-8 { margin-right: 66.66666667%; } - .offset-xl-9 { margin-right: 75%; } - .offset-xl-10 { margin-right: 83.33333333%; } - .offset-xl-11 { margin-right: 91.66666667%; } - .g-xl-0, .gx-xl-0 { --tblr-gutter-x: 0; } - .g-xl-0, .gy-xl-0 { --tblr-gutter-y: 0; } - .g-xl-1, .gx-xl-1 { --tblr-gutter-x: 0.25rem; } - .g-xl-1, .gy-xl-1 { --tblr-gutter-y: 0.25rem; } - .g-xl-2, .gx-xl-2 { --tblr-gutter-x: 0.5rem; } - .g-xl-2, .gy-xl-2 { --tblr-gutter-y: 0.5rem; } - .g-xl-3, .gx-xl-3 { --tblr-gutter-x: 1rem; } - .g-xl-3, .gy-xl-3 { --tblr-gutter-y: 1rem; } - .g-xl-4, .gx-xl-4 { --tblr-gutter-x: 2rem; } - .g-xl-4, .gy-xl-4 { --tblr-gutter-y: 2rem; } - .g-xl-5, .gx-xl-5 { --tblr-gutter-x: 4rem; } - .g-xl-5, .gy-xl-5 { --tblr-gutter-y: 4rem; @@ -1690,217 +1574,175 @@ progress { .col-xxl { flex: 1 0 0%; } - .row-cols-xxl-auto > * { flex: 0 0 auto; width: auto; } - .row-cols-xxl-1 > * { flex: 0 0 auto; width: 100%; } - .row-cols-xxl-2 > * { flex: 0 0 auto; width: 50%; } - .row-cols-xxl-3 > * { flex: 0 0 auto; width: 33.3333333333%; } - .row-cols-xxl-4 > * { flex: 0 0 auto; width: 25%; } - .row-cols-xxl-5 > * { flex: 0 0 auto; width: 20%; } - .row-cols-xxl-6 > * { flex: 0 0 auto; width: 16.6666666667%; } - .col-xxl-auto { flex: 0 0 auto; width: auto; } - .col-xxl-1 { flex: 0 0 auto; width: 8.33333333%; } - .col-xxl-2 { flex: 0 0 auto; width: 16.66666667%; } - .col-xxl-3 { flex: 0 0 auto; width: 25%; } - .col-xxl-4 { flex: 0 0 auto; width: 33.33333333%; } - .col-xxl-5 { flex: 0 0 auto; width: 41.66666667%; } - .col-xxl-6 { flex: 0 0 auto; width: 50%; } - .col-xxl-7 { flex: 0 0 auto; width: 58.33333333%; } - .col-xxl-8 { flex: 0 0 auto; width: 66.66666667%; } - .col-xxl-9 { flex: 0 0 auto; width: 75%; } - .col-xxl-10 { flex: 0 0 auto; width: 83.33333333%; } - .col-xxl-11 { flex: 0 0 auto; width: 91.66666667%; } - .col-xxl-12 { flex: 0 0 auto; width: 100%; } - .offset-xxl-0 { margin-right: 0; } - .offset-xxl-1 { margin-right: 8.33333333%; } - .offset-xxl-2 { margin-right: 16.66666667%; } - .offset-xxl-3 { margin-right: 25%; } - .offset-xxl-4 { margin-right: 33.33333333%; } - .offset-xxl-5 { margin-right: 41.66666667%; } - .offset-xxl-6 { margin-right: 50%; } - .offset-xxl-7 { margin-right: 58.33333333%; } - .offset-xxl-8 { margin-right: 66.66666667%; } - .offset-xxl-9 { margin-right: 75%; } - .offset-xxl-10 { margin-right: 83.33333333%; } - .offset-xxl-11 { margin-right: 91.66666667%; } - .g-xxl-0, .gx-xxl-0 { --tblr-gutter-x: 0; } - .g-xxl-0, .gy-xxl-0 { --tblr-gutter-y: 0; } - .g-xxl-1, .gx-xxl-1 { --tblr-gutter-x: 0.25rem; } - .g-xxl-1, .gy-xxl-1 { --tblr-gutter-y: 0.25rem; } - .g-xxl-2, .gx-xxl-2 { --tblr-gutter-x: 0.5rem; } - .g-xxl-2, .gy-xxl-2 { --tblr-gutter-y: 0.5rem; } - .g-xxl-3, .gx-xxl-3 { --tblr-gutter-x: 1rem; } - .g-xxl-3, .gy-xxl-3 { --tblr-gutter-y: 1rem; } - .g-xxl-4, .gx-xxl-4 { --tblr-gutter-x: 2rem; } - .g-xxl-4, .gy-xxl-4 { --tblr-gutter-y: 2rem; } - .g-xxl-5, .gx-xxl-5 { --tblr-gutter-x: 4rem; } - .g-xxl-5, .gy-xxl-5 { --tblr-gutter-y: 4rem; } } .table, .markdown > table { + --tblr-table-color: inherit; --tblr-table-bg: transparent; + --tblr-table-border-color: rgba(98, 105, 118, 0.16); --tblr-table-accent-bg: transparent; --tblr-table-striped-color: inherit; --tblr-table-striped-bg: var(--tblr-border-color-light); @@ -1910,12 +1752,12 @@ progress { --tblr-table-hover-bg: rgba(0, 0, 0, 0.075); width: 100%; margin-bottom: 1rem; - color: inherit; + color: var(--tblr-table-color); vertical-align: top; - border-color: rgba(98, 105, 118, 0.16); + border-color: var(--tblr-table-border-color); } .table > :not(caption) > * > *, .markdown > table > :not(caption) > * > * { - padding: 0.75rem 0.5rem; + padding: 0.75rem 0.75rem; background-color: var(--tblr-table-bg); border-bottom-width: 1px; box-shadow: inset 0 0 0 9999px var(--tblr-table-accent-bg); @@ -1926,7 +1768,8 @@ progress { .table > thead, .markdown > table > thead { vertical-align: bottom; } -.table > :not(:first-child), .markdown > table > :not(:first-child) { + +.table-group-divider { border-top: 2px solid rgba(98, 105, 118, 0.16); } @@ -1957,6 +1800,11 @@ progress { color: var(--tblr-table-striped-color); } +.table-striped-columns > :not(caption) > tr > :nth-child(even) { + --tblr-table-accent-bg: var(--tblr-table-striped-bg); + color: var(--tblr-table-striped-color); +} + .table-active { --tblr-table-accent-bg: var(--tblr-table-active-bg); color: var(--tblr-table-active-color); @@ -1968,99 +1816,115 @@ progress { } .table-primary { + --tblr-table-color: #1e293b; --tblr-table-bg: #d2e1f3; + --tblr-table-border-color: #c0cfe1; --tblr-table-striped-bg: #c9d8ea; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #c0cfe1; --tblr-table-active-color: #fafbfc; --tblr-table-hover-bg: #c5d3e5; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #c0cfe1; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-secondary { + --tblr-table-color: #1e293b; --tblr-table-bg: #e0e1e4; + --tblr-table-border-color: #cdcfd3; --tblr-table-striped-bg: #d6d8dc; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #cdcfd3; --tblr-table-active-color: #fafbfc; --tblr-table-hover-bg: #d1d3d7; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #cdcfd3; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-success { + --tblr-table-color: #1e293b; --tblr-table-bg: #d5f0da; + --tblr-table-border-color: #c3dcca; --tblr-table-striped-bg: #cce6d2; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #c3dcca; --tblr-table-active-color: #1e293b; --tblr-table-hover-bg: #c7e1ce; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #c3dcca; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-info { + --tblr-table-color: #1e293b; --tblr-table-bg: #d9ebf9; + --tblr-table-border-color: #c6d8e6; --tblr-table-striped-bg: #d0e1f0; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #c6d8e6; --tblr-table-active-color: #1e293b; --tblr-table-hover-bg: #cbdceb; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #c6d8e6; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-warning { + --tblr-table-color: #1e293b; --tblr-table-bg: #fde1cd; + --tblr-table-border-color: #e7cfbe; --tblr-table-striped-bg: #f2d8c6; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #e7cfbe; --tblr-table-active-color: #1e293b; --tblr-table-hover-bg: #ecd3c2; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #e7cfbe; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-danger { + --tblr-table-color: #1e293b; --tblr-table-bg: #f7d7d7; + --tblr-table-border-color: #e1c6c7; --tblr-table-striped-bg: #eccecf; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #e1c6c7; --tblr-table-active-color: #fafbfc; --tblr-table-hover-bg: #e7cacb; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #e1c6c7; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-light { + --tblr-table-color: #1e293b; --tblr-table-bg: #fafbfc; + --tblr-table-border-color: #e4e6e9; --tblr-table-striped-bg: #eff1f2; --tblr-table-striped-color: #1e293b; --tblr-table-active-bg: #e4e6e9; --tblr-table-active-color: #1e293b; --tblr-table-hover-bg: #eaebee; --tblr-table-hover-color: #1e293b; - color: #1e293b; - border-color: #e4e6e9; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-dark { + --tblr-table-color: #fafbfc; --tblr-table-bg: #1e293b; + --tblr-table-border-color: #343e4e; --tblr-table-striped-bg: #293445; --tblr-table-striped-color: #fafbfc; --tblr-table-active-bg: #343e4e; --tblr-table-active-color: #fafbfc; --tblr-table-hover-bg: #2f3949; --tblr-table-hover-color: #fafbfc; - color: #fafbfc; - border-color: #343e4e; + color: var(--tblr-table-color); + border-color: var(--tblr-table-border-color); } .table-responsive { @@ -2189,7 +2053,7 @@ progress { color: #a5a9b1; opacity: 1; } -.form-control:disabled, .form-control[readonly] { +.form-control:disabled { background-color: #fafbfc; opacity: 1; } @@ -2239,31 +2103,6 @@ progress { .form-control:hover:not(:disabled):not([readonly])::file-selector-button { background-color: #eeeeef; } -.form-control::-webkit-file-upload-button { - padding: 0.4375rem 0.75rem; - margin: -0.4375rem -0.75rem; - -webkit-margin-end: 0.75rem; - margin-inline-end: 0.75rem; - color: inherit; - background-color: #fafbfc; - pointer-events: none; - border-color: inherit; - border-style: solid; - border-width: 0; - border-inline-end-width: 1px; - border-radius: 0; - -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - .form-control::-webkit-file-upload-button { - -webkit-transition: none; - transition: none; - } -} -.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { - background-color: #eeeeef; -} .form-control-plaintext { display: block; @@ -2276,6 +2115,9 @@ progress { border: solid transparent; border-width: 1px 0; } +.form-control-plaintext:focus { + outline: 0; +} .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { padding-left: 0; padding-right: 0; @@ -2299,12 +2141,6 @@ progress { -webkit-margin-end: 0.5rem; margin-inline-end: 0.5rem; } -.form-control-sm::-webkit-file-upload-button { - padding: 0.125rem 0.5rem; - margin: -0.125rem -0.5rem; - -webkit-margin-end: 0.5rem; - margin-inline-end: 0.5rem; -} .form-control-lg { min-height: calc(1.4285714286em + 1rem + 2px); @@ -2324,12 +2160,6 @@ progress { -webkit-margin-end: 1.5rem; margin-inline-end: 1.5rem; } -.form-control-lg::-webkit-file-upload-button { - padding: 0.5rem 1.5rem; - margin: -0.5rem -1.5rem; - -webkit-margin-end: 1.5rem; - margin-inline-end: 1.5rem; -} textarea.form-control { min-height: calc(1.4285714286em + 0.875rem + 2px); @@ -2343,20 +2173,25 @@ textarea.form-control-lg { .form-control-color { width: 3rem; - height: auto; + height: calc(1.4285714286em + 0.875rem + 2px); padding: 0.4375rem; } .form-control-color:not(:disabled):not([readonly]) { cursor: pointer; } .form-control-color::-moz-color-swatch { - height: 1.4285714286em; + border: 0 !important; border-radius: 4px; } .form-control-color::-webkit-color-swatch { - height: 1.4285714286em; border-radius: 4px; } +.form-control-color.form-control-sm { + height: calc(1.4285714286em + 0.25rem + 2px); +} +.form-control-color.form-control-lg { + height: calc(1.4285714286em + 1rem + 2px); +} .form-select { display: block; @@ -2368,7 +2203,7 @@ textarea.form-control-lg { line-height: 1.4285714286; color: inherit; background-color: #ffffff; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: left 0.75rem center; background-size: 16px 12px; @@ -2428,6 +2263,17 @@ textarea.form-control-lg { margin-right: -1.5rem; } +.form-check-reverse { + padding-left: 1.5rem; + padding-right: 0; + text-align: left; +} +.form-check-reverse .form-check-input { + float: left; + margin-left: -1.5rem; + margin-right: 0; +} + .form-check-input { width: 1rem; height: 1rem; @@ -2442,7 +2288,8 @@ textarea.form-control-lg { -moz-appearance: none; appearance: none; -webkit-print-color-adjust: exact; - color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; } .form-check-input[type=checkbox] { border-radius: 4px; @@ -2479,6 +2326,7 @@ textarea.form-control-lg { opacity: 0.5; } .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; opacity: 0.7; } @@ -2505,6 +2353,14 @@ textarea.form-control-lg { background-position: left center; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e"); } +.form-switch.form-check-reverse { + padding-left: 2.5rem; + padding-right: 0; +} +.form-switch.form-check-reverse .form-check-input { + margin-left: -2.5rem; + margin-right: 0; +} .form-check-inline { display: inline-block; @@ -2616,6 +2472,7 @@ textarea.form-control-lg { position: relative; } .form-floating > .form-control, +.form-floating > .form-control-plaintext, .form-floating > .form-select { height: calc(3.5rem + 2px); line-height: 1.25; @@ -2624,8 +2481,12 @@ textarea.form-control-lg { position: absolute; top: 0; right: 0; + width: 100%; height: 100%; padding: 1rem 0.75rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; pointer-events: none; border: 1px solid transparent; transform-origin: 100% 0; @@ -2636,37 +2497,42 @@ textarea.form-control-lg { transition: none; } } -.form-floating > .form-control { +.form-floating > .form-control, +.form-floating > .form-control-plaintext { padding: 1rem 0.75rem; } -.form-floating > .form-control::-webkit-input-placeholder { +.form-floating > .form-control::-webkit-input-placeholder, .form-floating > .form-control-plaintext::-webkit-input-placeholder { color: transparent; } -.form-floating > .form-control::-moz-placeholder { +.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder { color: transparent; } -.form-floating > .form-control:-ms-input-placeholder { +.form-floating > .form-control:-ms-input-placeholder, .form-floating > .form-control-plaintext:-ms-input-placeholder { color: transparent; } -.form-floating > .form-control::-ms-input-placeholder { +.form-floating > .form-control::-ms-input-placeholder, .form-floating > .form-control-plaintext::-ms-input-placeholder { color: transparent; } -.form-floating > .form-control::placeholder { +.form-floating > .form-control::placeholder, +.form-floating > .form-control-plaintext::placeholder { color: transparent; } -.form-floating > .form-control:not(:-moz-placeholder-shown) { +.form-floating > .form-control:not(:-moz-placeholder-shown), .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { padding-top: 1.625rem; padding-bottom: 0.625rem; } -.form-floating > .form-control:not(:-ms-input-placeholder) { +.form-floating > .form-control:not(:-ms-input-placeholder), .form-floating > .form-control-plaintext:not(:-ms-input-placeholder) { padding-top: 1.625rem; padding-bottom: 0.625rem; } -.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) { +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { padding-top: 1.625rem; padding-bottom: 0.625rem; } -.form-floating > .form-control:-webkit-autofill { +.form-floating > .form-control:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { padding-top: 1.625rem; padding-bottom: 0.625rem; } @@ -2684,6 +2550,7 @@ textarea.form-control-lg { } .form-floating > .form-control:focus ~ label, .form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, .form-floating > .form-select ~ label { opacity: 0.65; transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); @@ -2692,6 +2559,9 @@ textarea.form-control-lg { opacity: 0.65; transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); } +.form-floating > .form-control-plaintext ~ label { + border-width: 1px 0; +} .input-group { position: relative; @@ -2701,14 +2571,16 @@ textarea.form-control-lg { width: 100%; } .input-group > .form-control, -.input-group > .form-select { +.input-group > .form-select, +.input-group > .form-floating { position: relative; flex: 1 1 auto; width: 1%; min-width: 0; } .input-group > .form-control:focus, -.input-group > .form-select:focus { +.input-group > .form-select:focus, +.input-group > .form-floating:focus-within { z-index: 3; } .input-group .btn { @@ -2757,17 +2629,23 @@ textarea.form-control-lg { padding-left: 3rem; } -.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu), -.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3) { +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { border-top-left-radius: 0; border-bottom-left-radius: 0; } -.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu), -.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4) { +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { border-top-left-radius: 0; border-bottom-left-radius: 0; } -.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { +.input-group > :not(:first-child):not(.dropdown-menu):not(.form-floating):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback), +.input-group > .form-floating:not(:first-child) > .form-control, +.input-group > .form-floating:not(:first-child) > .form-select { margin-right: -1px; border-top-right-radius: 0; border-bottom-right-radius: 0; @@ -2825,7 +2703,7 @@ textarea.form-control-lg { } .was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { padding-left: 4.125rem; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e"); background-position: left 0.75rem center, center left 2.25rem; background-size: 16px 12px, calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); } @@ -2834,6 +2712,10 @@ textarea.form-control-lg { box-shadow: 0 0 0 0.25rem rgba(47, 179, 68, 0.25); } +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.4285714286em + 0.875rem)); +} + .was-validated .form-check-input:valid, .form-check-input.is-valid { border-color: #2fb344; } @@ -2914,7 +2796,7 @@ textarea.form-control-lg { } .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { padding-left: 4.125rem; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e"); background-position: left 0.75rem center, center left 2.25rem; background-size: 16px 12px, calc(0.7142857143em + 0.4375rem) calc(0.7142857143em + 0.4375rem); } @@ -2923,6 +2805,10 @@ textarea.form-control-lg { box-shadow: 0 0 0 0.25rem rgba(214, 57, 57, 0.25); } +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.4285714286em + 0.875rem)); +} + .was-validated .form-check-input:invalid, .form-check-input.is-invalid { border-color: #d63939; } @@ -2952,10 +2838,27 @@ textarea.form-control-lg { } .btn { + --tblr-btn-padding-x: 1rem; + --tblr-btn-padding-y: 0.4375rem; + --tblr-btn-font-family: ; + --tblr-btn-font-size: 0.875rem; + --tblr-btn-font-weight: 500; + --tblr-btn-line-height: 1.4285714286; + --tblr-btn-color: #1e293b; + --tblr-btn-bg: transparent; + --tblr-btn-border-width: 1px; + --tblr-btn-border-color: transparent; + --tblr-btn-border-radius: 4px; + --tblr-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --tblr-btn-disabled-opacity: 0.65; + --tblr-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--tblr-btn-focus-shadow-rgb), .5); display: inline-block; - font-weight: 500; - line-height: 1.4285714286; - color: #1e293b; + padding: var(--tblr-btn-padding-y) var(--tblr-btn-padding-x); + font-family: var(--tblr-btn-font-family); + font-size: var(--tblr-btn-font-size); + font-weight: var(--tblr-btn-font-weight); + line-height: var(--tblr-btn-line-height); + color: var(--tblr-btn-color); text-align: center; vertical-align: middle; cursor: pointer; @@ -2963,11 +2866,9 @@ textarea.form-control-lg { -moz-user-select: none; -ms-user-select: none; user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.4375rem 1rem; - font-size: 0.875rem; - border-radius: 4px; + border: var(--tblr-btn-border-width) solid var(--tblr-btn-border-color); + border-radius: var(--tblr-btn-border-radius); + background-color: var(--tblr-btn-bg); transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } @media (prefers-reduced-motion: reduce) { @@ -2976,44 +2877,1295 @@ textarea.form-control-lg { } } .btn:hover { - color: #1e293b; + color: var(--tblr-btn-hover-color); text-decoration: none; + background-color: var(--tblr-btn-hover-bg); + border-color: var(--tblr-btn-hover-border-color); } .btn-check:focus + .btn, .btn:focus { + color: var(--tblr-btn-hover-color); + background-color: var(--tblr-btn-hover-bg); + border-color: var(--tblr-btn-hover-border-color); outline: 0; - box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + box-shadow: var(--tblr-btn-focus-box-shadow); +} +.btn-check:checked + .btn, .btn-check:active + .btn, .btn:active, .btn.active, .btn.show { + color: var(--tblr-btn-active-color); + background-color: var(--tblr-btn-active-bg); + border-color: var(--tblr-btn-active-border-color); +} +.btn-check:checked + .btn:focus, .btn-check:active + .btn:focus, .btn:active:focus, .btn.active:focus, .btn.show:focus { + box-shadow: var(--tblr-btn-focus-box-shadow); } .btn:disabled, .btn.disabled, fieldset:disabled .btn { + color: var(--tblr-btn-disabled-color); pointer-events: none; - opacity: 0.65; + background-color: var(--tblr-btn-disabled-bg); + border-color: var(--tblr-btn-disabled-border-color); + opacity: var(--tblr-btn-disabled-opacity); +} + +.btn-primary { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1b5ba7; + --tblr-btn-hover-border-color: #1a569d; + --tblr-btn-focus-shadow-rgb: 65, 129, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1a569d; + --tblr-btn-active-border-color: #185093; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #206bc4; + --tblr-btn-disabled-border-color: #206bc4; +} + +.btn-secondary { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #626976; + --tblr-btn-border-color: #626976; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #535964; + --tblr-btn-hover-border-color: #4e545e; + --tblr-btn-focus-shadow-rgb: 121, 127, 138; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4e545e; + --tblr-btn-active-border-color: #4a4f59; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #626976; + --tblr-btn-disabled-border-color: #626976; +} + +.btn-success { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #2fb344; + --tblr-btn-border-color: #2fb344; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #28983a; + --tblr-btn-hover-border-color: #268f36; + --tblr-btn-focus-shadow-rgb: 77, 190, 96; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #268f36; + --tblr-btn-active-border-color: #238633; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #2fb344; + --tblr-btn-disabled-border-color: #2fb344; +} + +.btn-info { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #4299e1; + --tblr-btn-border-color: #4299e1; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3882bf; + --tblr-btn-hover-border-color: #357ab4; + --tblr-btn-focus-shadow-rgb: 94, 168, 229; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #357ab4; + --tblr-btn-active-border-color: #3273a9; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #4299e1; + --tblr-btn-disabled-border-color: #4299e1; +} + +.btn-warning { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #f76707; + --tblr-btn-border-color: #f76707; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d25806; + --tblr-btn-hover-border-color: #c65206; + --tblr-btn-focus-shadow-rgb: 247, 125, 44; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #c65206; + --tblr-btn-active-border-color: #b94d05; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #f76707; + --tblr-btn-disabled-border-color: #f76707; +} + +.btn-danger { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #d63939; + --tblr-btn-border-color: #d63939; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #b63030; + --tblr-btn-hover-border-color: #ab2e2e; + --tblr-btn-focus-shadow-rgb: 219, 86, 86; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ab2e2e; + --tblr-btn-active-border-color: #a12b2b; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #d63939; + --tblr-btn-disabled-border-color: #d63939; +} + +.btn-light { + --tblr-btn-color: #1e293b; + --tblr-btn-bg: #fafbfc; + --tblr-btn-border-color: #fafbfc; + --tblr-btn-hover-color: #1e293b; + --tblr-btn-hover-bg: #d5d5d6; + --tblr-btn-hover-border-color: #c8c9ca; + --tblr-btn-focus-shadow-rgb: 217, 220, 223; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #c8c9ca; + --tblr-btn-active-border-color: #bcbcbd; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1e293b; + --tblr-btn-disabled-bg: #fafbfc; + --tblr-btn-disabled-border-color: #fafbfc; +} + +.btn-dark { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #1e293b; + --tblr-btn-border-color: #1e293b; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #404958; + --tblr-btn-hover-border-color: #353e4f; + --tblr-btn-focus-shadow-rgb: 63, 73, 88; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4b5462; + --tblr-btn-active-border-color: #353e4f; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #1e293b; + --tblr-btn-disabled-border-color: #1e293b; +} + +.btn-muted { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #626976; + --tblr-btn-border-color: #626976; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #535964; + --tblr-btn-hover-border-color: #4e545e; + --tblr-btn-focus-shadow-rgb: 121, 127, 138; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4e545e; + --tblr-btn-active-border-color: #4a4f59; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #626976; + --tblr-btn-disabled-border-color: #626976; +} + +.btn-blue { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1b5ba7; + --tblr-btn-hover-border-color: #1a569d; + --tblr-btn-focus-shadow-rgb: 65, 129, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1a569d; + --tblr-btn-active-border-color: #185093; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #206bc4; + --tblr-btn-disabled-border-color: #206bc4; +} + +.btn-azure { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #4299e1; + --tblr-btn-border-color: #4299e1; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3882bf; + --tblr-btn-hover-border-color: #357ab4; + --tblr-btn-focus-shadow-rgb: 94, 168, 229; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #357ab4; + --tblr-btn-active-border-color: #3273a9; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #4299e1; + --tblr-btn-disabled-border-color: #4299e1; +} + +.btn-indigo { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #4263eb; + --tblr-btn-border-color: #4263eb; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3854c8; + --tblr-btn-hover-border-color: #354fbc; + --tblr-btn-focus-shadow-rgb: 94, 122, 238; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #354fbc; + --tblr-btn-active-border-color: #324ab0; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #4263eb; + --tblr-btn-disabled-border-color: #4263eb; +} + +.btn-purple { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #ae3ec9; + --tblr-btn-border-color: #ae3ec9; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #9435ab; + --tblr-btn-hover-border-color: #8b32a1; + --tblr-btn-focus-shadow-rgb: 185, 90, 209; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #8b32a1; + --tblr-btn-active-border-color: #832f97; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #ae3ec9; + --tblr-btn-disabled-border-color: #ae3ec9; +} + +.btn-pink { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #d6336c; + --tblr-btn-border-color: #d6336c; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #b62b5c; + --tblr-btn-hover-border-color: #ab2956; + --tblr-btn-focus-shadow-rgb: 219, 81, 130; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ab2956; + --tblr-btn-active-border-color: #a12651; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #d6336c; + --tblr-btn-disabled-border-color: #d6336c; +} + +.btn-red { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #d63939; + --tblr-btn-border-color: #d63939; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #b63030; + --tblr-btn-hover-border-color: #ab2e2e; + --tblr-btn-focus-shadow-rgb: 219, 86, 86; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ab2e2e; + --tblr-btn-active-border-color: #a12b2b; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #d63939; + --tblr-btn-disabled-border-color: #d63939; +} + +.btn-orange { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #f76707; + --tblr-btn-border-color: #f76707; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d25806; + --tblr-btn-hover-border-color: #c65206; + --tblr-btn-focus-shadow-rgb: 247, 125, 44; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #c65206; + --tblr-btn-active-border-color: #b94d05; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #f76707; + --tblr-btn-disabled-border-color: #f76707; +} + +.btn-yellow { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #f59f00; + --tblr-btn-border-color: #f59f00; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d08700; + --tblr-btn-hover-border-color: #c47f00; + --tblr-btn-focus-shadow-rgb: 246, 173, 38; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #c47f00; + --tblr-btn-active-border-color: #b87700; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #f59f00; + --tblr-btn-disabled-border-color: #f59f00; +} + +.btn-lime { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #74b816; + --tblr-btn-border-color: #74b816; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #639c13; + --tblr-btn-hover-border-color: #5d9312; + --tblr-btn-focus-shadow-rgb: 136, 194, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #5d9312; + --tblr-btn-active-border-color: #578a11; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #74b816; + --tblr-btn-disabled-border-color: #74b816; +} + +.btn-green { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #2fb344; + --tblr-btn-border-color: #2fb344; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #28983a; + --tblr-btn-hover-border-color: #268f36; + --tblr-btn-focus-shadow-rgb: 77, 190, 96; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #268f36; + --tblr-btn-active-border-color: #238633; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #2fb344; + --tblr-btn-disabled-border-color: #2fb344; +} + +.btn-teal { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #0ca678; + --tblr-btn-border-color: #0ca678; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0a8d66; + --tblr-btn-hover-border-color: #0a8560; + --tblr-btn-focus-shadow-rgb: 48, 179, 140; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0a8560; + --tblr-btn-active-border-color: #097d5a; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #0ca678; + --tblr-btn-disabled-border-color: #0ca678; +} + +.btn-cyan { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #17a2b8; + --tblr-btn-border-color: #17a2b8; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #148a9c; + --tblr-btn-hover-border-color: #128293; + --tblr-btn-focus-shadow-rgb: 57, 175, 194; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #128293; + --tblr-btn-active-border-color: #117a8a; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #17a2b8; + --tblr-btn-disabled-border-color: #17a2b8; +} + +.btn-facebook { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #3b5998; + --tblr-btn-border-color: #3b5998; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #324c81; + --tblr-btn-hover-border-color: #2f477a; + --tblr-btn-focus-shadow-rgb: 88, 113, 167; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2f477a; + --tblr-btn-active-border-color: #2c4372; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #3b5998; + --tblr-btn-disabled-border-color: #3b5998; +} + +.btn-twitter { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #1da1f2; + --tblr-btn-border-color: #1da1f2; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1989ce; + --tblr-btn-hover-border-color: #1781c2; + --tblr-btn-focus-shadow-rgb: 62, 175, 244; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1781c2; + --tblr-btn-active-border-color: #1679b6; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #1da1f2; + --tblr-btn-disabled-border-color: #1da1f2; +} + +.btn-linkedin { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #0a66c2; + --tblr-btn-border-color: #0a66c2; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0957a5; + --tblr-btn-hover-border-color: #08529b; + --tblr-btn-focus-shadow-rgb: 46, 124, 203; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #08529b; + --tblr-btn-active-border-color: #084d92; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #0a66c2; + --tblr-btn-disabled-border-color: #0a66c2; +} + +.btn-google { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #dc4e41; + --tblr-btn-border-color: #dc4e41; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #bb4237; + --tblr-btn-hover-border-color: #b03e34; + --tblr-btn-focus-shadow-rgb: 225, 104, 93; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #b03e34; + --tblr-btn-active-border-color: #a53b31; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #dc4e41; + --tblr-btn-disabled-border-color: #dc4e41; +} + +.btn-youtube { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #ff0000; + --tblr-btn-border-color: #ff0000; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d90000; + --tblr-btn-hover-border-color: #cc0000; + --tblr-btn-focus-shadow-rgb: 254, 38, 38; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #cc0000; + --tblr-btn-active-border-color: #bf0000; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #ff0000; + --tblr-btn-disabled-border-color: #ff0000; +} + +.btn-vimeo { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #1ab7ea; + --tblr-btn-border-color: #1ab7ea; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #169cc7; + --tblr-btn-hover-border-color: #1592bb; + --tblr-btn-focus-shadow-rgb: 60, 193, 237; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1592bb; + --tblr-btn-active-border-color: #1489b0; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #1ab7ea; + --tblr-btn-disabled-border-color: #1ab7ea; +} + +.btn-dribbble { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #ea4c89; + --tblr-btn-border-color: #ea4c89; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #c74174; + --tblr-btn-hover-border-color: #bb3d6e; + --tblr-btn-focus-shadow-rgb: 236, 102, 154; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #bb3d6e; + --tblr-btn-active-border-color: #b03967; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #ea4c89; + --tblr-btn-disabled-border-color: #ea4c89; +} + +.btn-github { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #181717; + --tblr-btn-border-color: #181717; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #141414; + --tblr-btn-hover-border-color: #131212; + --tblr-btn-focus-shadow-rgb: 58, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #131212; + --tblr-btn-active-border-color: #121111; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #181717; + --tblr-btn-disabled-border-color: #181717; +} + +.btn-instagram { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #e4405f; + --tblr-btn-border-color: #e4405f; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #c23651; + --tblr-btn-hover-border-color: #b6334c; + --tblr-btn-focus-shadow-rgb: 231, 92, 119; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #b6334c; + --tblr-btn-active-border-color: #ab3047; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #e4405f; + --tblr-btn-disabled-border-color: #e4405f; +} + +.btn-pinterest { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #bd081c; + --tblr-btn-border-color: #bd081c; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #a10718; + --tblr-btn-hover-border-color: #970616; + --tblr-btn-focus-shadow-rgb: 198, 44, 62; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #970616; + --tblr-btn-active-border-color: #8e0615; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #bd081c; + --tblr-btn-disabled-border-color: #bd081c; +} + +.btn-vk { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #6383a8; + --tblr-btn-border-color: #6383a8; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #546f8f; + --tblr-btn-hover-border-color: #4f6986; + --tblr-btn-focus-shadow-rgb: 122, 149, 181; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4f6986; + --tblr-btn-active-border-color: #4a627e; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #6383a8; + --tblr-btn-disabled-border-color: #6383a8; +} + +.btn-rss { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #ffa500; + --tblr-btn-border-color: #ffa500; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d98c00; + --tblr-btn-hover-border-color: #cc8400; + --tblr-btn-focus-shadow-rgb: 254, 178, 38; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #cc8400; + --tblr-btn-active-border-color: #bf7c00; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #ffa500; + --tblr-btn-disabled-border-color: #ffa500; +} + +.btn-flickr { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #0063dc; + --tblr-btn-border-color: #0063dc; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0054bb; + --tblr-btn-hover-border-color: #004fb0; + --tblr-btn-focus-shadow-rgb: 38, 122, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #004fb0; + --tblr-btn-active-border-color: #004aa5; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #0063dc; + --tblr-btn-disabled-border-color: #0063dc; +} + +.btn-bitbucket { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #0052cc; + --tblr-btn-border-color: #0052cc; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0046ad; + --tblr-btn-hover-border-color: #0042a3; + --tblr-btn-focus-shadow-rgb: 38, 107, 211; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0042a3; + --tblr-btn-active-border-color: #003e99; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #0052cc; + --tblr-btn-disabled-border-color: #0052cc; +} + +.btn-tabler { + --tblr-btn-color: #fafbfc; + --tblr-btn-bg: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1b5ba7; + --tblr-btn-hover-border-color: #1a569d; + --tblr-btn-focus-shadow-rgb: 65, 129, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1a569d; + --tblr-btn-active-border-color: #185093; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: #206bc4; + --tblr-btn-disabled-border-color: #206bc4; +} + +.btn-outline-primary { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: #206bc4; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #206bc4; + --tblr-gradient: none; +} + +.btn-outline-secondary { + --tblr-btn-color: #626976; + --tblr-btn-border-color: #626976; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #626976; + --tblr-btn-hover-border-color: #626976; + --tblr-btn-focus-shadow-rgb: 98, 105, 118; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #626976; + --tblr-btn-active-border-color: #626976; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #626976; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #626976; + --tblr-gradient: none; +} + +.btn-outline-success { + --tblr-btn-color: #2fb344; + --tblr-btn-border-color: #2fb344; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #2fb344; + --tblr-btn-hover-border-color: #2fb344; + --tblr-btn-focus-shadow-rgb: 47, 179, 68; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2fb344; + --tblr-btn-active-border-color: #2fb344; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #2fb344; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #2fb344; + --tblr-gradient: none; +} + +.btn-outline-info { + --tblr-btn-color: #4299e1; + --tblr-btn-border-color: #4299e1; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4299e1; + --tblr-btn-hover-border-color: #4299e1; + --tblr-btn-focus-shadow-rgb: 66, 153, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4299e1; + --tblr-btn-active-border-color: #4299e1; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4299e1; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #4299e1; + --tblr-gradient: none; +} + +.btn-outline-warning { + --tblr-btn-color: #f76707; + --tblr-btn-border-color: #f76707; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f76707; + --tblr-btn-hover-border-color: #f76707; + --tblr-btn-focus-shadow-rgb: 247, 103, 7; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f76707; + --tblr-btn-active-border-color: #f76707; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f76707; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #f76707; + --tblr-gradient: none; +} + +.btn-outline-danger { + --tblr-btn-color: #d63939; + --tblr-btn-border-color: #d63939; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d63939; + --tblr-btn-hover-border-color: #d63939; + --tblr-btn-focus-shadow-rgb: 214, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d63939; + --tblr-btn-active-border-color: #d63939; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d63939; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #d63939; + --tblr-gradient: none; +} + +.btn-outline-light { + --tblr-btn-color: #fafbfc; + --tblr-btn-border-color: #fafbfc; + --tblr-btn-hover-color: #1e293b; + --tblr-btn-hover-bg: #fafbfc; + --tblr-btn-hover-border-color: #fafbfc; + --tblr-btn-focus-shadow-rgb: 250, 251, 252; + --tblr-btn-active-color: #1e293b; + --tblr-btn-active-bg: #fafbfc; + --tblr-btn-active-border-color: #fafbfc; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #fafbfc; + --tblr-gradient: none; +} + +.btn-outline-dark { + --tblr-btn-color: #1e293b; + --tblr-btn-border-color: #1e293b; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1e293b; + --tblr-btn-hover-border-color: #1e293b; + --tblr-btn-focus-shadow-rgb: 30, 41, 59; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1e293b; + --tblr-btn-active-border-color: #1e293b; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1e293b; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #1e293b; + --tblr-gradient: none; +} + +.btn-outline-muted { + --tblr-btn-color: #626976; + --tblr-btn-border-color: #626976; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #626976; + --tblr-btn-hover-border-color: #626976; + --tblr-btn-focus-shadow-rgb: 98, 105, 118; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #626976; + --tblr-btn-active-border-color: #626976; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #626976; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #626976; + --tblr-gradient: none; +} + +.btn-outline-blue { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: #206bc4; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #206bc4; + --tblr-gradient: none; +} + +.btn-outline-azure { + --tblr-btn-color: #4299e1; + --tblr-btn-border-color: #4299e1; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4299e1; + --tblr-btn-hover-border-color: #4299e1; + --tblr-btn-focus-shadow-rgb: 66, 153, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4299e1; + --tblr-btn-active-border-color: #4299e1; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4299e1; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #4299e1; + --tblr-gradient: none; +} + +.btn-outline-indigo { + --tblr-btn-color: #4263eb; + --tblr-btn-border-color: #4263eb; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4263eb; + --tblr-btn-hover-border-color: #4263eb; + --tblr-btn-focus-shadow-rgb: 66, 99, 235; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4263eb; + --tblr-btn-active-border-color: #4263eb; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4263eb; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #4263eb; + --tblr-gradient: none; +} + +.btn-outline-purple { + --tblr-btn-color: #ae3ec9; + --tblr-btn-border-color: #ae3ec9; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ae3ec9; + --tblr-btn-hover-border-color: #ae3ec9; + --tblr-btn-focus-shadow-rgb: 174, 62, 201; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ae3ec9; + --tblr-btn-active-border-color: #ae3ec9; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ae3ec9; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #ae3ec9; + --tblr-gradient: none; +} + +.btn-outline-pink { + --tblr-btn-color: #d6336c; + --tblr-btn-border-color: #d6336c; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d6336c; + --tblr-btn-hover-border-color: #d6336c; + --tblr-btn-focus-shadow-rgb: 214, 51, 108; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d6336c; + --tblr-btn-active-border-color: #d6336c; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d6336c; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #d6336c; + --tblr-gradient: none; +} + +.btn-outline-red { + --tblr-btn-color: #d63939; + --tblr-btn-border-color: #d63939; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d63939; + --tblr-btn-hover-border-color: #d63939; + --tblr-btn-focus-shadow-rgb: 214, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d63939; + --tblr-btn-active-border-color: #d63939; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d63939; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #d63939; + --tblr-gradient: none; +} + +.btn-outline-orange { + --tblr-btn-color: #f76707; + --tblr-btn-border-color: #f76707; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f76707; + --tblr-btn-hover-border-color: #f76707; + --tblr-btn-focus-shadow-rgb: 247, 103, 7; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f76707; + --tblr-btn-active-border-color: #f76707; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f76707; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #f76707; + --tblr-gradient: none; +} + +.btn-outline-yellow { + --tblr-btn-color: #f59f00; + --tblr-btn-border-color: #f59f00; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f59f00; + --tblr-btn-hover-border-color: #f59f00; + --tblr-btn-focus-shadow-rgb: 245, 159, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f59f00; + --tblr-btn-active-border-color: #f59f00; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f59f00; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #f59f00; + --tblr-gradient: none; +} + +.btn-outline-lime { + --tblr-btn-color: #74b816; + --tblr-btn-border-color: #74b816; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #74b816; + --tblr-btn-hover-border-color: #74b816; + --tblr-btn-focus-shadow-rgb: 116, 184, 22; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #74b816; + --tblr-btn-active-border-color: #74b816; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #74b816; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #74b816; + --tblr-gradient: none; +} + +.btn-outline-green { + --tblr-btn-color: #2fb344; + --tblr-btn-border-color: #2fb344; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #2fb344; + --tblr-btn-hover-border-color: #2fb344; + --tblr-btn-focus-shadow-rgb: 47, 179, 68; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2fb344; + --tblr-btn-active-border-color: #2fb344; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #2fb344; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #2fb344; + --tblr-gradient: none; +} + +.btn-outline-teal { + --tblr-btn-color: #0ca678; + --tblr-btn-border-color: #0ca678; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0ca678; + --tblr-btn-hover-border-color: #0ca678; + --tblr-btn-focus-shadow-rgb: 12, 166, 120; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0ca678; + --tblr-btn-active-border-color: #0ca678; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0ca678; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #0ca678; + --tblr-gradient: none; +} + +.btn-outline-cyan { + --tblr-btn-color: #17a2b8; + --tblr-btn-border-color: #17a2b8; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #17a2b8; + --tblr-btn-hover-border-color: #17a2b8; + --tblr-btn-focus-shadow-rgb: 23, 162, 184; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #17a2b8; + --tblr-btn-active-border-color: #17a2b8; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #17a2b8; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #17a2b8; + --tblr-gradient: none; +} + +.btn-outline-facebook { + --tblr-btn-color: #3b5998; + --tblr-btn-border-color: #3b5998; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3b5998; + --tblr-btn-hover-border-color: #3b5998; + --tblr-btn-focus-shadow-rgb: 59, 89, 152; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #3b5998; + --tblr-btn-active-border-color: #3b5998; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #3b5998; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #3b5998; + --tblr-gradient: none; +} + +.btn-outline-twitter { + --tblr-btn-color: #1da1f2; + --tblr-btn-border-color: #1da1f2; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1da1f2; + --tblr-btn-hover-border-color: #1da1f2; + --tblr-btn-focus-shadow-rgb: 29, 161, 242; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1da1f2; + --tblr-btn-active-border-color: #1da1f2; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1da1f2; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #1da1f2; + --tblr-gradient: none; +} + +.btn-outline-linkedin { + --tblr-btn-color: #0a66c2; + --tblr-btn-border-color: #0a66c2; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0a66c2; + --tblr-btn-hover-border-color: #0a66c2; + --tblr-btn-focus-shadow-rgb: 10, 102, 194; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0a66c2; + --tblr-btn-active-border-color: #0a66c2; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0a66c2; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #0a66c2; + --tblr-gradient: none; +} + +.btn-outline-google { + --tblr-btn-color: #dc4e41; + --tblr-btn-border-color: #dc4e41; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #dc4e41; + --tblr-btn-hover-border-color: #dc4e41; + --tblr-btn-focus-shadow-rgb: 220, 78, 65; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #dc4e41; + --tblr-btn-active-border-color: #dc4e41; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #dc4e41; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #dc4e41; + --tblr-gradient: none; +} + +.btn-outline-youtube { + --tblr-btn-color: #ff0000; + --tblr-btn-border-color: #ff0000; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ff0000; + --tblr-btn-hover-border-color: #ff0000; + --tblr-btn-focus-shadow-rgb: 255, 0, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ff0000; + --tblr-btn-active-border-color: #ff0000; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ff0000; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #ff0000; + --tblr-gradient: none; +} + +.btn-outline-vimeo { + --tblr-btn-color: #1ab7ea; + --tblr-btn-border-color: #1ab7ea; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1ab7ea; + --tblr-btn-hover-border-color: #1ab7ea; + --tblr-btn-focus-shadow-rgb: 26, 183, 234; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1ab7ea; + --tblr-btn-active-border-color: #1ab7ea; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1ab7ea; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #1ab7ea; + --tblr-gradient: none; +} + +.btn-outline-dribbble { + --tblr-btn-color: #ea4c89; + --tblr-btn-border-color: #ea4c89; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ea4c89; + --tblr-btn-hover-border-color: #ea4c89; + --tblr-btn-focus-shadow-rgb: 234, 76, 137; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ea4c89; + --tblr-btn-active-border-color: #ea4c89; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ea4c89; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #ea4c89; + --tblr-gradient: none; +} + +.btn-outline-github { + --tblr-btn-color: #181717; + --tblr-btn-border-color: #181717; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #181717; + --tblr-btn-hover-border-color: #181717; + --tblr-btn-focus-shadow-rgb: 24, 23, 23; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #181717; + --tblr-btn-active-border-color: #181717; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #181717; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #181717; + --tblr-gradient: none; +} + +.btn-outline-instagram { + --tblr-btn-color: #e4405f; + --tblr-btn-border-color: #e4405f; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #e4405f; + --tblr-btn-hover-border-color: #e4405f; + --tblr-btn-focus-shadow-rgb: 228, 64, 95; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #e4405f; + --tblr-btn-active-border-color: #e4405f; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #e4405f; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #e4405f; + --tblr-gradient: none; +} + +.btn-outline-pinterest { + --tblr-btn-color: #bd081c; + --tblr-btn-border-color: #bd081c; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #bd081c; + --tblr-btn-hover-border-color: #bd081c; + --tblr-btn-focus-shadow-rgb: 189, 8, 28; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #bd081c; + --tblr-btn-active-border-color: #bd081c; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #bd081c; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #bd081c; + --tblr-gradient: none; +} + +.btn-outline-vk { + --tblr-btn-color: #6383a8; + --tblr-btn-border-color: #6383a8; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #6383a8; + --tblr-btn-hover-border-color: #6383a8; + --tblr-btn-focus-shadow-rgb: 99, 131, 168; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #6383a8; + --tblr-btn-active-border-color: #6383a8; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #6383a8; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #6383a8; + --tblr-gradient: none; +} + +.btn-outline-rss { + --tblr-btn-color: #ffa500; + --tblr-btn-border-color: #ffa500; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ffa500; + --tblr-btn-hover-border-color: #ffa500; + --tblr-btn-focus-shadow-rgb: 255, 165, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ffa500; + --tblr-btn-active-border-color: #ffa500; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ffa500; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #ffa500; + --tblr-gradient: none; +} + +.btn-outline-flickr { + --tblr-btn-color: #0063dc; + --tblr-btn-border-color: #0063dc; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0063dc; + --tblr-btn-hover-border-color: #0063dc; + --tblr-btn-focus-shadow-rgb: 0, 99, 220; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0063dc; + --tblr-btn-active-border-color: #0063dc; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0063dc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #0063dc; + --tblr-gradient: none; +} + +.btn-outline-bitbucket { + --tblr-btn-color: #0052cc; + --tblr-btn-border-color: #0052cc; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0052cc; + --tblr-btn-hover-border-color: #0052cc; + --tblr-btn-focus-shadow-rgb: 0, 82, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0052cc; + --tblr-btn-active-border-color: #0052cc; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0052cc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #0052cc; + --tblr-gradient: none; +} + +.btn-outline-tabler { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: #206bc4; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: #206bc4; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: #206bc4; + --tblr-gradient: none; } .btn-link { - font-weight: 400; - color: #206bc4; + --tblr-btn-font-weight: 400; + --tblr-btn-color: var(--tblr-link-color); + --tblr-btn-bg: transparent; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: var(--tblr-link-hover-color); + --tblr-btn-hover-border-color: transparent; + --tblr-btn-active-color: var(--tblr-link-hover-color); + --tblr-btn-active-border-color: transparent; + --tblr-btn-disabled-color: #475569; + --tblr-btn-disabled-border-color: transparent; + --tblr-btn-box-shadow: none; + --tblr-btn-focus-shadow-rgb: 65, 129, 204; text-decoration: none; } -.btn-link:hover { - color: #1a569d; +.btn-link:hover, .btn-link:focus { text-decoration: underline; } .btn-link:focus { - text-decoration: underline; + color: var(--tblr-btn-color); } -.btn-link:disabled, .btn-link.disabled { - color: #475569; +.btn-link:hover { + color: var(--tblr-btn-hover-color); } .btn-lg, .btn-group-lg > .btn { - padding: 0.5rem 1.5rem; - font-size: 1.25rem; - border-radius: 8px; + --tblr-btn-padding-y: 0.5rem; + --tblr-btn-padding-x: 1.5rem; + --tblr-btn-font-size: 1.25rem; + --tblr-btn-border-radius: 8px; } .btn-sm, .btn-group-sm > .btn { - padding: 0.125rem 0.5rem; - font-size: 0.75rem; - border-radius: 2px; + --tblr-btn-padding-y: 0.125rem; + --tblr-btn-padding-x: 0.5rem; + --tblr-btn-font-size: 0.75rem; + --tblr-btn-border-radius: 2px; } .fade { @@ -3056,7 +4208,9 @@ textarea.form-control-lg { .dropup, .dropend, .dropdown, -.dropstart { +.dropstart, +.dropup-center, +.dropdown-center { position: relative; } @@ -3077,25 +4231,50 @@ textarea.form-control-lg { } .dropdown-menu { + --tblr-dropdown-min-width: 11rem; + --tblr-dropdown-padding-x: 0; + --tblr-dropdown-padding-y: 0.25rem; + --tblr-dropdown-spacer: 1px; + --tblr-dropdown-font-size: 0.875rem; + --tblr-dropdown-color: #1e293b; + --tblr-dropdown-bg: #ffffff; + --tblr-dropdown-border-color: rgba(98, 105, 118, 0.16); + --tblr-dropdown-border-radius: 4px; + --tblr-dropdown-border-width: 1px; + --tblr-dropdown-inner-border-radius: 3px; + --tblr-dropdown-divider-bg: rgba(98, 105, 118, 0.16); + --tblr-dropdown-divider-margin-y: 0.5rem; + --tblr-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --tblr-dropdown-link-color: inherit; + --tblr-dropdown-link-hover-color: inherit; + --tblr-dropdown-link-hover-bg: rgba(98, 105, 118, 0.04); + --tblr-dropdown-link-active-color: #206bc4; + --tblr-dropdown-link-active-bg: rgba(32, 107, 196, 0.04); + --tblr-dropdown-link-disabled-color: #64748b; + --tblr-dropdown-item-padding-x: 0.75rem; + --tblr-dropdown-item-padding-y: 0.5rem; + --tblr-dropdown-header-color: #475569; + --tblr-dropdown-header-padding-x: 0.75rem; + --tblr-dropdown-header-padding-y: 0.25rem; position: absolute; z-index: 1000; display: none; - min-width: 11rem; - padding: 0.25rem 0; + min-width: var(--tblr-dropdown-min-width); + padding: var(--tblr-dropdown-padding-y) var(--tblr-dropdown-padding-x); margin: 0; - font-size: 0.875rem; - color: #1e293b; + font-size: var(--tblr-dropdown-font-size); + color: var(--tblr-dropdown-color); text-align: right; list-style: none; - background-color: #ffffff; + background-color: var(--tblr-dropdown-bg); background-clip: padding-box; - border: 1px solid rgba(98, 105, 118, 0.16); - border-radius: 4px; + border: var(--tblr-dropdown-border-width) solid var(--tblr-dropdown-border-color); + border-radius: var(--tblr-dropdown-border-radius); } .dropdown-menu[data-bs-popper] { top: 100%; right: 0; - margin-top: 1px; + margin-top: var(--tblr-dropdown-spacer); } .dropdown-menu-start { @@ -3122,7 +4301,6 @@ textarea.form-control-lg { left: auto; right: 0; } - .dropdown-menu-sm-end { --bs-position: end; } @@ -3139,7 +4317,6 @@ textarea.form-control-lg { left: auto; right: 0; } - .dropdown-menu-md-end { --bs-position: end; } @@ -3156,7 +4333,6 @@ textarea.form-control-lg { left: auto; right: 0; } - .dropdown-menu-lg-end { --bs-position: end; } @@ -3173,7 +4349,6 @@ textarea.form-control-lg { left: auto; right: 0; } - .dropdown-menu-xl-end { --bs-position: end; } @@ -3190,7 +4365,6 @@ textarea.form-control-lg { left: auto; right: 0; } - .dropdown-menu-xxl-end { --bs-position: end; } @@ -3203,7 +4377,7 @@ textarea.form-control-lg { top: auto; bottom: 100%; margin-top: 0; - margin-bottom: 1px; + margin-bottom: var(--tblr-dropdown-spacer); } .dropup .dropdown-toggle:after { content: ""; @@ -3223,7 +4397,7 @@ textarea.form-control-lg { left: auto; right: 100%; margin-top: 0; - margin-right: 1px; + margin-right: var(--tblr-dropdown-spacer); } .dropend .dropdown-toggle:after { content: ""; @@ -3246,7 +4420,7 @@ textarea.form-control-lg { left: 100%; right: auto; margin-top: 0; - margin-left: 1px; + margin-left: var(--tblr-dropdown-spacer); } .dropstart .dropdown-toggle:after { content: ""; @@ -3266,35 +4440,36 @@ textarea.form-control-lg { .dropdown-divider { height: 0; - margin: 0.5rem 0; + margin: var(--tblr-dropdown-divider-margin-y) 0; overflow: hidden; - border-top: 1px solid rgba(98, 105, 118, 0.16); + border-top: 1px solid var(--tblr-dropdown-divider-bg); + opacity: 1; } .dropdown-item { display: block; width: 100%; - padding: 0.5rem 0.75rem; + padding: var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x); clear: both; font-weight: 400; - color: inherit; + color: var(--tblr-dropdown-link-color); text-align: inherit; white-space: nowrap; background-color: transparent; border: 0; } .dropdown-item:hover, .dropdown-item:focus { - color: inherit; + color: var(--tblr-dropdown-link-hover-color); text-decoration: none; - background-color: rgba(98, 105, 118, 0.04); + background-color: var(--tblr-dropdown-link-hover-bg); } .dropdown-item.active, .dropdown-item:active { - color: #206bc4; + color: var(--tblr-dropdown-link-active-color); text-decoration: none; - background-color: rgba(32, 107, 196, 0.04); + background-color: var(--tblr-dropdown-link-active-bg); } .dropdown-item.disabled, .dropdown-item:disabled { - color: #64748b; + color: var(--tblr-dropdown-link-disabled-color); pointer-events: none; background-color: transparent; } @@ -3305,46 +4480,32 @@ textarea.form-control-lg { .dropdown-header { display: block; - padding: 0.25rem 0.75rem; + padding: var(--tblr-dropdown-header-padding-y) var(--tblr-dropdown-header-padding-x); margin-bottom: 0; font-size: 0.765625rem; - color: #475569; + color: var(--tblr-dropdown-header-color); white-space: nowrap; } .dropdown-item-text { display: block; - padding: 0.5rem 0.75rem; - color: inherit; + padding: var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x); + color: var(--tblr-dropdown-link-color); } .dropdown-menu-dark { - color: #cbd5e1; - background-color: #1e293b; - border-color: rgba(98, 105, 118, 0.16); -} -.dropdown-menu-dark .dropdown-item { - color: #cbd5e1; -} -.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus { - color: #ffffff; - background-color: rgba(255, 255, 255, 0.15); -} -.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { - color: #206bc4; - background-color: rgba(32, 107, 196, 0.04); -} -.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { - color: #64748b; -} -.dropdown-menu-dark .dropdown-divider { - border-color: rgba(98, 105, 118, 0.16); -} -.dropdown-menu-dark .dropdown-item-text { - color: #cbd5e1; -} -.dropdown-menu-dark .dropdown-header { - color: #64748b; + --tblr-dropdown-color: #cbd5e1; + --tblr-dropdown-bg: #1e293b; + --tblr-dropdown-border-color: rgba(98, 105, 118, 0.16); + --tblr-dropdown-box-shadow: ; + --tblr-dropdown-link-color: #cbd5e1; + --tblr-dropdown-link-hover-color: #ffffff; + --tblr-dropdown-divider-bg: rgba(98, 105, 118, 0.16); + --tblr-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --tblr-dropdown-link-active-color: #206bc4; + --tblr-dropdown-link-active-bg: rgba(32, 107, 196, 0.04); + --tblr-dropdown-link-disabled-color: #64748b; + --tblr-dropdown-header-color: #64748b; } .btn-group, @@ -3382,11 +4543,15 @@ textarea.form-control-lg { width: auto; } +.btn-group { + border-radius: 4px; +} .btn-group > .btn:not(:first-child), .btn-group > .btn-group:not(:first-child) { margin-right: -1px; } .btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn.dropdown-toggle-split:first-child, .btn-group > .btn-group:not(:last-child) > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; @@ -3444,6 +4609,12 @@ textarea.form-control-lg { } .nav { + --tblr-nav-link-padding-x: 0.75rem; + --tblr-nav-link-padding-y: 0.5rem; + --tblr-nav-link-font-weight: ; + --tblr-nav-link-color: inherit; + --tblr-nav-link-hover-color: var(--tblr-link-hover-color); + --tblr-nav-link-disabled-color: #475569; display: flex; flex-wrap: wrap; padding-right: 0; @@ -3453,8 +4624,10 @@ textarea.form-control-lg { .nav-link { display: block; - padding: 0.5rem 0.75rem; - color: inherit; + padding: var(--tblr-nav-link-padding-y) var(--tblr-nav-link-padding-x); + font-size: var(--tblr-nav-link-font-size); + font-weight: var(--tblr-nav-link-font-weight); + color: var(--tblr-nav-link-color); transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; } @media (prefers-reduced-motion: reduce) { @@ -3463,55 +4636,72 @@ textarea.form-control-lg { } } .nav-link:hover, .nav-link:focus { - color: #1a569d; + color: var(--tblr-nav-link-hover-color); text-decoration: none; } .nav-link.disabled { - color: #475569; + color: var(--tblr-nav-link-disabled-color); pointer-events: none; cursor: default; } .nav-tabs { - border-bottom: 1px solid #cbd5e1; + --tblr-nav-tabs-border-width: 1px; + --tblr-nav-tabs-border-color: #cbd5e1; + --tblr-nav-tabs-border-radius: 4px; + --tblr-nav-tabs-link-hover-border-color: #e2e8f0 #e2e8f0 #cbd5e1; + --tblr-nav-tabs-link-active-color: #334155; + --tblr-nav-tabs-link-active-bg: #f5f7fb; + --tblr-nav-tabs-link-active-border-color: #cbd5e1 #cbd5e1 #f5f7fb; + border-bottom: var(--tblr-nav-tabs-border-width) solid var(--tblr-nav-tabs-border-color); } .nav-tabs .nav-link { - margin-bottom: -1px; + margin-bottom: calc(var(--tblr-nav-tabs-border-width) * -1); background: none; - border: 1px solid transparent; - border-top-right-radius: 4px; - border-top-left-radius: 4px; + border: var(--tblr-nav-tabs-border-width) solid transparent; + border-top-right-radius: var(--tblr-nav-tabs-border-radius); + border-top-left-radius: var(--tblr-nav-tabs-border-radius); } .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - border-color: #e2e8f0 #e2e8f0 #cbd5e1; isolation: isolate; + border-color: var(--tblr-nav-tabs-link-hover-border-color); } -.nav-tabs .nav-link.disabled { - color: #475569; +.nav-tabs .nav-link.disabled, .nav-tabs .nav-link:disabled { + color: var(--tblr-nav-link-disabled-color); background-color: transparent; border-color: transparent; } .nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { - color: #334155; - background-color: #f5f7fb; - border-color: #cbd5e1 #cbd5e1 #f5f7fb; + color: var(--tblr-nav-tabs-link-active-color); + background-color: var(--tblr-nav-tabs-link-active-bg); + border-color: var(--tblr-nav-tabs-link-active-border-color); } .nav-tabs .dropdown-menu { - margin-top: -1px; + margin-top: calc(var(--tblr-nav-tabs-border-width) * -1); border-top-right-radius: 0; border-top-left-radius: 0; } +.nav-pills { + --tblr-nav-pills-border-radius: 4px; + --tblr-nav-pills-link-active-color: #206bc4; + --tblr-nav-pills-link-active-bg: rgba(32, 107, 196, 0.04); +} .nav-pills .nav-link { background: none; border: 0; - border-radius: 4px; + border-radius: var(--tblr-nav-pills-border-radius); +} +.nav-pills .nav-link:disabled { + color: var(--tblr-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; } .nav-pills .nav-link.active, .nav-pills .show > .nav-link { - color: #206bc4; - background-color: rgba(32, 107, 196, 0.04); + color: var(--tblr-nav-pills-link-active-color); + background-color: var(--tblr-nav-pills-link-active-bg); } .nav-fill > .nav-link, @@ -3540,13 +4730,32 @@ textarea.form-control-lg { } .navbar { + --tblr-navbar-padding-x: 0; + --tblr-navbar-padding-y: 0.25rem; + --tblr-navbar-color: #1e293b; + --tblr-navbar-hover-color: rgba(0, 0, 0, 0.7); + --tblr-navbar-disabled-color: rgba(30, 41, 59, 0.3); + --tblr-navbar-active-color: #1e293b; + --tblr-navbar-brand-padding-y: 0.5rem; + --tblr-navbar-brand-margin-end: 1rem; + --tblr-navbar-brand-font-size: 1rem; + --tblr-navbar-brand-color: #1e293b; + --tblr-navbar-brand-hover-color: #1e293b; + --tblr-navbar-nav-link-padding-x: 0.75rem; + --tblr-navbar-toggler-padding-y: 0; + --tblr-navbar-toggler-padding-x: 0; + --tblr-navbar-toggler-font-size: 1rem; + --tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231e293b' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --tblr-navbar-toggler-border-color: rgba(0, 0, 0, 0.1); + --tblr-navbar-toggler-border-radius: 4px; + --tblr-navbar-toggler-focus-width: 0; + --tblr-navbar-toggler-transition: box-shadow 0.15s ease-in-out; position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; - padding-top: 0.25rem; - padding-bottom: 0.25rem; + padding: var(--tblr-navbar-padding-y) var(--tblr-navbar-padding-x); } .navbar > .container, .navbar > .container-fluid, @@ -3561,26 +4770,34 @@ textarea.form-control-lg { justify-content: space-between; } .navbar-brand { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - margin-left: 1rem; - font-size: 1rem; + padding-top: var(--tblr-navbar-brand-padding-y); + padding-bottom: var(--tblr-navbar-brand-padding-y); + margin-left: var(--tblr-navbar-brand-margin-end); + font-size: var(--tblr-navbar-brand-font-size); + color: var(--tblr-navbar-brand-color); white-space: nowrap; } .navbar-brand:hover, .navbar-brand:focus { + color: var(--tblr-navbar-brand-hover-color); text-decoration: none; } .navbar-nav { + --tblr-nav-link-padding-x: 0; + --tblr-nav-link-padding-y: 0.5rem; + --tblr-nav-link-font-weight: ; + --tblr-nav-link-color: var(--tblr-navbar-color); + --tblr-nav-link-hover-color: var(--tblr-navbar-hover-color); + --tblr-nav-link-disabled-color: var(--tblr-navbar-disabled-color); display: flex; flex-direction: column; padding-right: 0; margin-bottom: 0; list-style: none; } -.navbar-nav .nav-link { - padding-left: 0; - padding-right: 0; +.navbar-nav .show > .nav-link, +.navbar-nav .nav-link.active { + color: var(--tblr-navbar-active-color); } .navbar-nav .dropdown-menu { position: static; @@ -3589,6 +4806,12 @@ textarea.form-control-lg { .navbar-text { padding-top: 0.5rem; padding-bottom: 0.5rem; + color: var(--tblr-navbar-color); +} +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + color: var(--tblr-navbar-active-color); } .navbar-collapse { @@ -3598,13 +4821,14 @@ textarea.form-control-lg { } .navbar-toggler { - padding: 0 0; - font-size: 1rem; + padding: var(--tblr-navbar-toggler-padding-y) var(--tblr-navbar-toggler-padding-x); + font-size: var(--tblr-navbar-toggler-font-size); line-height: 1; + color: var(--tblr-navbar-color); background-color: transparent; - border: 1px solid transparent; - border-radius: 4px; - transition: box-shadow 0.15s ease-in-out; + border: var(--tblr-border-width) solid var(--tblr-navbar-toggler-border-color); + border-radius: var(--tblr-navbar-toggler-border-radius); + transition: var(--tblr-navbar-toggler-transition); } @media (prefers-reduced-motion: reduce) { .navbar-toggler { @@ -3617,7 +4841,7 @@ textarea.form-control-lg { .navbar-toggler:focus { text-decoration: none; outline: 0; - box-shadow: 0 0 0 0; + box-shadow: 0 0 0 var(--tblr-navbar-toggler-focus-width); } .navbar-toggler-icon { @@ -3625,6 +4849,7 @@ textarea.form-control-lg { width: 1.5em; height: 1.5em; vertical-align: middle; + background-image: var(--tblr-navbar-toggler-icon-bg); background-repeat: no-repeat; background-position: center; background-size: 100%; @@ -3647,8 +4872,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-sm .navbar-nav .nav-link { - padding-left: 0.75rem; - padding-right: 0.75rem; + padding-left: var(--tblr-navbar-nav-link-padding-x); + padding-right: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-sm .navbar-nav-scroll { overflow: visible; @@ -3660,28 +4885,22 @@ textarea.form-control-lg { .navbar-expand-sm .navbar-toggler { display: none; } - .navbar-expand-sm .offcanvas-header { + .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-sm .offcanvas .offcanvas-header { display: none; } - .navbar-expand-sm .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-left: 0; - border-right: 0; - transition: none; - transform: none; - } - .navbar-expand-sm .offcanvas-top, -.navbar-expand-sm .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-sm .offcanvas-body { + .navbar-expand-sm .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3700,8 +4919,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-md .navbar-nav .nav-link { - padding-left: 0.75rem; - padding-right: 0.75rem; + padding-left: var(--tblr-navbar-nav-link-padding-x); + padding-right: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-md .navbar-nav-scroll { overflow: visible; @@ -3713,28 +4932,22 @@ textarea.form-control-lg { .navbar-expand-md .navbar-toggler { display: none; } - .navbar-expand-md .offcanvas-header { + .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-md .offcanvas .offcanvas-header { display: none; } - .navbar-expand-md .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-left: 0; - border-right: 0; - transition: none; - transform: none; - } - .navbar-expand-md .offcanvas-top, -.navbar-expand-md .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-md .offcanvas-body { + .navbar-expand-md .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3753,8 +4966,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-lg .navbar-nav .nav-link { - padding-left: 0.75rem; - padding-right: 0.75rem; + padding-left: var(--tblr-navbar-nav-link-padding-x); + padding-right: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-lg .navbar-nav-scroll { overflow: visible; @@ -3766,28 +4979,22 @@ textarea.form-control-lg { .navbar-expand-lg .navbar-toggler { display: none; } - .navbar-expand-lg .offcanvas-header { + .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-lg .offcanvas .offcanvas-header { display: none; } - .navbar-expand-lg .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-left: 0; - border-right: 0; - transition: none; - transform: none; - } - .navbar-expand-lg .offcanvas-top, -.navbar-expand-lg .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-lg .offcanvas-body { + .navbar-expand-lg .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3806,8 +5013,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-xl .navbar-nav .nav-link { - padding-left: 0.75rem; - padding-right: 0.75rem; + padding-left: var(--tblr-navbar-nav-link-padding-x); + padding-right: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-xl .navbar-nav-scroll { overflow: visible; @@ -3819,28 +5026,22 @@ textarea.form-control-lg { .navbar-expand-xl .navbar-toggler { display: none; } - .navbar-expand-xl .offcanvas-header { + .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xl .offcanvas .offcanvas-header { display: none; } - .navbar-expand-xl .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-left: 0; - border-right: 0; - transition: none; - transform: none; - } - .navbar-expand-xl .offcanvas-top, -.navbar-expand-xl .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-xl .offcanvas-body { + .navbar-expand-xl .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3859,8 +5060,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand-xxl .navbar-nav .nav-link { - padding-left: 0.75rem; - padding-right: 0.75rem; + padding-left: var(--tblr-navbar-nav-link-padding-x); + padding-right: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand-xxl .navbar-nav-scroll { overflow: visible; @@ -3872,28 +5073,22 @@ textarea.form-control-lg { .navbar-expand-xxl .navbar-toggler { display: none; } - .navbar-expand-xxl .offcanvas-header { + .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-header { display: none; } - .navbar-expand-xxl .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-left: 0; - border-right: 0; - transition: none; - transform: none; - } - .navbar-expand-xxl .offcanvas-top, -.navbar-expand-xxl .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; - } - .navbar-expand-xxl .offcanvas-body { + .navbar-expand-xxl .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; @@ -3911,8 +5106,8 @@ textarea.form-control-lg { position: absolute; } .navbar-expand .navbar-nav .nav-link { - padding-left: 0.75rem; - padding-right: 0.75rem; + padding-left: var(--tblr-navbar-nav-link-padding-x); + padding-right: var(--tblr-navbar-nav-link-padding-x); } .navbar-expand .navbar-nav-scroll { overflow: visible; @@ -3924,114 +5119,67 @@ textarea.form-control-lg { .navbar-expand .navbar-toggler { display: none; } -.navbar-expand .offcanvas-header { +.navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} +.navbar-expand .offcanvas .offcanvas-header { display: none; } -.navbar-expand .offcanvas { - position: inherit; - bottom: 0; - z-index: 1000; - flex-grow: 1; - visibility: visible !important; - background-color: transparent; - border-left: 0; - border-right: 0; - transition: none; - transform: none; -} -.navbar-expand .offcanvas-top, -.navbar-expand .offcanvas-bottom { - height: auto; - border-top: 0; - border-bottom: 0; -} -.navbar-expand .offcanvas-body { +.navbar-expand .offcanvas .offcanvas-body { display: flex; flex-grow: 0; padding: 0; overflow-y: visible; } -.navbar-light .navbar-brand { - color: #1e293b; -} -.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { - color: #1e293b; -} -.navbar-light .navbar-nav .nav-link { - color: rgba(30, 41, 59, 0.7); -} -.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { - color: rgba(0, 0, 0, 0.7); -} -.navbar-light .navbar-nav .nav-link.disabled { - color: rgba(30, 41, 59, 0.3); -} -.navbar-light .navbar-nav .show > .nav-link, -.navbar-light .navbar-nav .nav-link.active { - color: #1e293b; -} -.navbar-light .navbar-toggler { - color: rgba(30, 41, 59, 0.7); - border-color: rgba(0, 0, 0, 0.1); -} -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2830, 41, 59, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} -.navbar-light .navbar-text { - color: rgba(30, 41, 59, 0.7); -} -.navbar-light .navbar-text a, -.navbar-light .navbar-text a:hover, -.navbar-light .navbar-text a:focus { - color: #1e293b; -} - -.navbar-dark .navbar-brand { - color: #ffffff; -} -.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { - color: #ffffff; -} -.navbar-dark .navbar-nav .nav-link { - color: rgba(255, 255, 255, 0.7); -} -.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { - color: rgba(255, 255, 255, 0.75); -} -.navbar-dark .navbar-nav .nav-link.disabled { - color: rgba(255, 255, 255, 0.3); -} -.navbar-dark .navbar-nav .show > .nav-link, -.navbar-dark .navbar-nav .nav-link.active { - color: #ffffff; -} -.navbar-dark .navbar-toggler { - color: rgba(255, 255, 255, 0.7); - border-color: rgba(255, 255, 255, 0.1); -} -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} -.navbar-dark .navbar-text { - color: rgba(255, 255, 255, 0.7); -} -.navbar-dark .navbar-text a, -.navbar-dark .navbar-text a:hover, -.navbar-dark .navbar-text a:focus { - color: #ffffff; +.navbar-dark { + --tblr-navbar-color: rgba(255, 255, 255, 0.7); + --tblr-navbar-hover-color: rgba(255, 255, 255, 0.75); + --tblr-navbar-disabled-color: rgba(255, 255, 255, 0.3); + --tblr-navbar-active-color: #ffffff; + --tblr-navbar-brand-color: #ffffff; + --tblr-navbar-brand-hover-color: #ffffff; + --tblr-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } .card { + --tblr-card-spacer-y: 1rem; + --tblr-card-spacer-x: 1.25rem; + --tblr-card-title-spacer-y: 1.25rem; + --tblr-card-border-width: 1px; + --tblr-card-border-color: rgba(98, 105, 118, 0.16); + --tblr-card-border-radius: 4px; + --tblr-card-box-shadow: ; + --tblr-card-inner-border-radius: 3px; + --tblr-card-cap-padding-y: 1rem; + --tblr-card-cap-padding-x: 1.25rem; + --tblr-card-cap-bg: #fafbfc; + --tblr-card-cap-color: #626976; + --tblr-card-height: ; + --tblr-card-color: ; + --tblr-card-bg: #ffffff; + --tblr-card-img-overlay-padding: 1rem; + --tblr-card-group-margin: 1.5rem; position: relative; display: flex; flex-direction: column; min-width: 0; + height: var(--tblr-card-height); word-wrap: break-word; - background-color: #ffffff; + background-color: var(--tblr-card-bg); background-clip: border-box; - border: 1px solid rgba(98, 105, 118, 0.16); - border-radius: 4px; + border: var(--tblr-card-border-width) solid var(--tblr-card-border-color); + border-radius: var(--tblr-card-border-radius); } .card > hr, .card > .hr { margin-left: 0; @@ -4043,13 +5191,13 @@ textarea.form-control-lg { } .card > .list-group:first-child { border-top-width: 0; - border-top-right-radius: 3px; - border-top-left-radius: 3px; + border-top-right-radius: var(--tblr-card-inner-border-radius); + border-top-left-radius: var(--tblr-card-inner-border-radius); } .card > .list-group:last-child { border-bottom-width: 0; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; + border-bottom-left-radius: var(--tblr-card-inner-border-radius); + border-bottom-right-radius: var(--tblr-card-inner-border-radius); } .card > .card-header + .list-group, .card > .list-group + .card-footer { @@ -4058,15 +5206,16 @@ textarea.form-control-lg { .card-body { flex: 1 1 auto; - padding: 1rem 1.25rem; + padding: var(--tblr-card-spacer-y) var(--tblr-card-spacer-x); + color: var(--tblr-card-color); } .card-title { - margin-bottom: 1.25rem; + margin-bottom: var(--tblr-card-title-spacer-y); } .card-subtitle { - margin-top: -0.625rem; + margin-top: calc(-0.5 * var(--tblr-card-title-spacer-y)); margin-bottom: 0; } @@ -4078,44 +5227,44 @@ textarea.form-control-lg { text-decoration: none; } .card-link + .card-link { - margin-right: 1.25rem; + margin-right: var(--tblr-card-spacer-x); } .card-header { - padding: 1rem 1.25rem; + padding: var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x); margin-bottom: 0; - color: #626976; - background-color: #fafbfc; - border-bottom: 1px solid rgba(98, 105, 118, 0.16); + color: var(--tblr-card-cap-color); + background-color: var(--tblr-card-cap-bg); + border-bottom: var(--tblr-card-border-width) solid var(--tblr-card-border-color); } .card-header:first-child { - border-radius: 3px 3px 0 0; + border-radius: var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius) 0 0; } .card-footer { - padding: 1rem 1.25rem; - color: #626976; - background-color: #fafbfc; - border-top: 1px solid rgba(98, 105, 118, 0.16); + padding: var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x); + color: var(--tblr-card-cap-color); + background-color: var(--tblr-card-cap-bg); + border-top: var(--tblr-card-border-width) solid var(--tblr-card-border-color); } .card-footer:last-child { - border-radius: 0 0 3px 3px; + border-radius: 0 0 var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius); } .card-header-tabs { - margin-left: -0.625rem; - margin-bottom: -1rem; - margin-right: -0.625rem; + margin-left: calc(-0.5 * var(--tblr-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--tblr-card-cap-padding-y)); + margin-right: calc(-0.5 * var(--tblr-card-cap-padding-x)); border-bottom: 0; } .card-header-tabs .nav-link.active { - background-color: #ffffff; - border-bottom-color: #ffffff; + background-color: var(--tblr-card-bg); + border-bottom-color: var(--tblr-card-bg); } .card-header-pills { - margin-left: -0.625rem; - margin-right: -0.625rem; + margin-left: calc(-0.5 * var(--tblr-card-cap-padding-x)); + margin-right: calc(-0.5 * var(--tblr-card-cap-padding-x)); } .card-img-overlay { @@ -4124,8 +5273,8 @@ textarea.form-control-lg { left: 0; bottom: 0; right: 0; - padding: 1rem; - border-radius: 3px; + padding: var(--tblr-card-img-overlay-padding); + border-radius: var(--tblr-card-inner-border-radius); } .card-img, @@ -4136,18 +5285,18 @@ textarea.form-control-lg { .card-img, .card-img-top { - border-top-right-radius: 3px; - border-top-left-radius: 3px; + border-top-right-radius: var(--tblr-card-inner-border-radius); + border-top-left-radius: var(--tblr-card-inner-border-radius); } .card-img, .card-img-bottom { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; + border-bottom-left-radius: var(--tblr-card-inner-border-radius); + border-bottom-right-radius: var(--tblr-card-inner-border-radius); } .card-group > .card { - margin-bottom: 1.5rem; + margin-bottom: var(--tblr-card-group-margin); } @media (min-width: 576px) { .card-group { @@ -4188,20 +5337,45 @@ textarea.form-control-lg { } } +.accordion { + --tblr-accordion-color: #fafbfc; + --tblr-accordion-bg: transparent; + --tblr-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --tblr-accordion-border-color: rgba(98, 105, 118, 0.16); + --tblr-accordion-border-width: 1px; + --tblr-accordion-border-radius: 4px; + --tblr-accordion-inner-border-radius: 3px; + --tblr-accordion-btn-padding-x: 1.25rem; + --tblr-accordion-btn-padding-y: 1rem; + --tblr-accordion-btn-color: var(--tblr-body-color); + --tblr-accordion-btn-bg: transparent; + --tblr-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--tblr-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --tblr-accordion-btn-icon-width: 1rem; + --tblr-accordion-btn-icon-transform: rotate(-180deg); + --tblr-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --tblr-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='inherit'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --tblr-accordion-btn-focus-border-color: rgba(98, 105, 118, 0.16); + --tblr-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + --tblr-accordion-body-padding-x: 1.25rem; + --tblr-accordion-body-padding-y: 1rem; + --tblr-accordion-active-color: inherit; + --tblr-accordion-active-bg: transparent; +} + .accordion-button { position: relative; display: flex; align-items: center; width: 100%; - padding: 1rem 1.25rem; + padding: var(--tblr-accordion-btn-padding-y) var(--tblr-accordion-btn-padding-x); font-size: 0.875rem; - color: #1e293b; + color: var(--tblr-accordion-btn-color); text-align: right; - background-color: transparent; + background-color: var(--tblr-accordion-btn-bg); border: 0; border-radius: 0; overflow-anchor: none; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + transition: var(--tblr-accordion-transition); } @media (prefers-reduced-motion: reduce) { .accordion-button { @@ -4209,24 +5383,24 @@ textarea.form-control-lg { } } .accordion-button:not(.collapsed) { - color: inherit; - background-color: transparent; - box-shadow: inset 0 -1px 0 rgba(98, 105, 118, 0.16); + color: var(--tblr-accordion-active-color); + background-color: var(--tblr-accordion-active-bg); + box-shadow: inset 0 calc(var(--tblr-accordion-border-width) * -1) 0 var(--tblr-accordion-border-color); } .accordion-button:not(.collapsed)::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='inherit'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - transform: rotate(180deg); + background-image: var(--tblr-accordion-btn-active-icon); + transform: var(--tblr-accordion-btn-icon-transform); } .accordion-button::after { flex-shrink: 0; - width: 1rem; - height: 1rem; + width: var(--tblr-accordion-btn-icon-width); + height: var(--tblr-accordion-btn-icon-width); margin-right: auto; content: ""; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231e293b'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + background-image: var(--tblr-accordion-btn-icon); background-repeat: no-repeat; - background-size: 1rem; - transition: transform 0.2s ease-in-out; + background-size: var(--tblr-accordion-btn-icon-width); + transition: var(--tblr-accordion-btn-icon-transition); } @media (prefers-reduced-motion: reduce) { .accordion-button::after { @@ -4238,9 +5412,9 @@ textarea.form-control-lg { } .accordion-button:focus { z-index: 3; - border-color: rgba(98, 105, 118, 0.16); + border-color: var(--tblr-accordion-btn-focus-border-color); outline: 0; - box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + box-shadow: var(--tblr-accordion-btn-focus-box-shadow); } .accordion-header { @@ -4248,35 +5422,36 @@ textarea.form-control-lg { } .accordion-item { - background-color: transparent; - border: 1px solid rgba(98, 105, 118, 0.16); + color: var(--tblr-accordion-color); + background-color: var(--tblr-accordion-bg); + border: var(--tblr-accordion-border-width) solid var(--tblr-accordion-border-color); } .accordion-item:first-of-type { - border-top-right-radius: 4px; - border-top-left-radius: 4px; + border-top-right-radius: var(--tblr-accordion-border-radius); + border-top-left-radius: var(--tblr-accordion-border-radius); } .accordion-item:first-of-type .accordion-button { - border-top-right-radius: 3px; - border-top-left-radius: 3px; + border-top-right-radius: var(--tblr-accordion-inner-border-radius); + border-top-left-radius: var(--tblr-accordion-inner-border-radius); } .accordion-item:not(:first-of-type) { border-top: 0; } .accordion-item:last-of-type { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; + border-bottom-left-radius: var(--tblr-accordion-border-radius); + border-bottom-right-radius: var(--tblr-accordion-border-radius); } .accordion-item:last-of-type .accordion-button.collapsed { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; + border-bottom-left-radius: var(--tblr-accordion-inner-border-radius); + border-bottom-right-radius: var(--tblr-accordion-inner-border-radius); } .accordion-item:last-of-type .accordion-collapse { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; + border-bottom-left-radius: var(--tblr-accordion-border-radius); + border-bottom-right-radius: var(--tblr-accordion-border-radius); } .accordion-body { - padding: 1rem 1.25rem; + padding: var(--tblr-accordion-body-padding-y) var(--tblr-accordion-body-padding-x); } .accordion-flush .accordion-collapse { @@ -4298,27 +5473,58 @@ textarea.form-control-lg { } .breadcrumb { + --tblr-breadcrumb-padding-x: 0; + --tblr-breadcrumb-padding-y: 0; + --tblr-breadcrumb-margin-bottom: 1rem; + --tblr-breadcrumb-bg: ; + --tblr-breadcrumb-border-radius: ; + --tblr-breadcrumb-divider-color: #626976; + --tblr-breadcrumb-item-padding-x: 0.5rem; + --tblr-breadcrumb-item-active-color: inherit; display: flex; flex-wrap: wrap; - padding: 0 0; - margin-bottom: 1rem; + padding: var(--tblr-breadcrumb-padding-y) var(--tblr-breadcrumb-padding-x); + margin-bottom: var(--tblr-breadcrumb-margin-bottom); + font-size: var(--tblr-breadcrumb-font-size); list-style: none; + background-color: var(--tblr-breadcrumb-bg); + border-radius: var(--tblr-breadcrumb-border-radius); } .breadcrumb-item + .breadcrumb-item { - padding-right: 0.5rem; + padding-right: var(--tblr-breadcrumb-item-padding-x); } .breadcrumb-item + .breadcrumb-item::before { float: right; - padding-left: 0.5rem; - color: #626976; + padding-left: var(--tblr-breadcrumb-item-padding-x); + color: var(--tblr-breadcrumb-divider-color); content: var(--tblr-breadcrumb-divider, "/") ; } .breadcrumb-item.active { - color: inherit; + color: var(--tblr-breadcrumb-item-active-color); } .pagination { + --tblr-pagination-padding-x: 0.25rem; + --tblr-pagination-padding-y: 0.25rem; + --tblr-pagination-font-size: 0.875rem; + --tblr-pagination-color: #626976; + --tblr-pagination-bg: transparent; + --tblr-pagination-border-width: 0; + --tblr-pagination-border-color: #cbd5e1; + --tblr-pagination-border-radius: 4px; + --tblr-pagination-hover-color: var(--tblr-link-hover-color); + --tblr-pagination-hover-bg: #e2e8f0; + --tblr-pagination-hover-border-color: #cbd5e1; + --tblr-pagination-focus-color: var(--tblr-link-hover-color); + --tblr-pagination-focus-bg: #e2e8f0; + --tblr-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + --tblr-pagination-active-color: #ffffff; + --tblr-pagination-active-bg: #206bc4; + --tblr-pagination-active-border-color: #206bc4; + --tblr-pagination-disabled-color: rgba(98, 105, 118, 0.5); + --tblr-pagination-disabled-bg: transparent; + --tblr-pagination-disabled-border-color: #cbd5e1; display: flex; padding-right: 0; list-style: none; @@ -4327,9 +5533,11 @@ textarea.form-control-lg { .page-link { position: relative; display: block; - color: #626976; - background-color: transparent; - border: 0 solid #cbd5e1; + padding: var(--tblr-pagination-padding-y) var(--tblr-pagination-padding-x); + font-size: var(--tblr-pagination-font-size); + color: var(--tblr-pagination-color); + background-color: var(--tblr-pagination-bg); + border: var(--tblr-pagination-border-width) solid var(--tblr-pagination-border-color); transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } @media (prefers-reduced-motion: reduce) { @@ -4339,85 +5547,74 @@ textarea.form-control-lg { } .page-link:hover { z-index: 2; - color: #1a569d; + color: var(--tblr-pagination-hover-color); text-decoration: none; - background-color: #e2e8f0; - border-color: #cbd5e1; + background-color: var(--tblr-pagination-hover-bg); + border-color: var(--tblr-pagination-hover-border-color); } .page-link:focus { z-index: 3; - color: #1a569d; - background-color: #e2e8f0; + color: var(--tblr-pagination-focus-color); + background-color: var(--tblr-pagination-focus-bg); outline: 0; - box-shadow: 0 0 0 0.25rem rgba(32, 107, 196, 0.25); + box-shadow: var(--tblr-pagination-focus-box-shadow); +} +.page-link.active, .active > .page-link { + z-index: 3; + color: var(--tblr-pagination-active-color); + background-color: var(--tblr-pagination-active-bg); + border-color: var(--tblr-pagination-active-border-color); +} +.page-link.disabled, .disabled > .page-link { + color: var(--tblr-pagination-disabled-color); + pointer-events: none; + background-color: var(--tblr-pagination-disabled-bg); + border-color: var(--tblr-pagination-disabled-border-color); } .page-item:not(:first-child) .page-link { margin-right: 0; } -.page-item.active .page-link { - z-index: 3; - color: #ffffff; - background-color: #206bc4; - border-color: #206bc4; -} -.page-item.disabled .page-link { - color: rgba(98, 105, 118, 0.5); - pointer-events: none; - background-color: transparent; - border-color: #cbd5e1; -} - -.page-link { - padding: 0.25rem 0.25rem; -} - .page-item:first-child .page-link { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; + border-top-right-radius: var(--tblr-pagination-border-radius); + border-bottom-right-radius: var(--tblr-pagination-border-radius); } .page-item:last-child .page-link { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; + border-top-left-radius: var(--tblr-pagination-border-radius); + border-bottom-left-radius: var(--tblr-pagination-border-radius); } -.pagination-lg .page-link { - padding: 0.75rem 1.5rem; - font-size: 1.09375rem; -} -.pagination-lg .page-item:first-child .page-link { - border-top-right-radius: 8px; - border-bottom-right-radius: 8px; -} -.pagination-lg .page-item:last-child .page-link { - border-top-left-radius: 8px; - border-bottom-left-radius: 8px; +.pagination-lg { + --tblr-pagination-padding-x: 1.5rem; + --tblr-pagination-padding-y: 0.75rem; + --tblr-pagination-font-size: 1.09375rem; + --tblr-pagination-border-radius: 8px; } -.pagination-sm .page-link { - padding: 0.25rem 0.5rem; - font-size: 0.765625rem; -} -.pagination-sm .page-item:first-child .page-link { - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; -} -.pagination-sm .page-item:last-child .page-link { - border-top-left-radius: 2px; - border-bottom-left-radius: 2px; +.pagination-sm { + --tblr-pagination-padding-x: 0.5rem; + --tblr-pagination-padding-y: 0.25rem; + --tblr-pagination-font-size: 0.765625rem; + --tblr-pagination-border-radius: 2px; } .badge { + --tblr-badge-padding-x: 0.5em; + --tblr-badge-padding-y: 0.25em; + --tblr-badge-font-size: 85.71428571%; + --tblr-badge-font-weight: 500; + --tblr-badge-color: #ffffff; + --tblr-badge-border-radius: 4px; display: inline-block; - padding: 0.25em 0.5em; - font-size: 85.71428571%; - font-weight: 500; + padding: var(--tblr-badge-padding-y) var(--tblr-badge-padding-x); + font-size: var(--tblr-badge-font-size); + font-weight: var(--tblr-badge-font-weight); line-height: 1; - color: #ffffff; + color: var(--tblr-badge-color); text-align: center; white-space: nowrap; vertical-align: baseline; - border-radius: 4px; + border-radius: var(--tblr-badge-border-radius); } .badge:empty { display: none; @@ -4429,11 +5626,21 @@ textarea.form-control-lg { } .alert { + --tblr-alert-bg: transparent; + --tblr-alert-padding-x: 1rem; + --tblr-alert-padding-y: 1rem; + --tblr-alert-margin-bottom: 1rem; + --tblr-alert-color: inherit; + --tblr-alert-border-color: transparent; + --tblr-alert-border: 1px solid var(--tblr-alert-border-color); + --tblr-alert-border-radius: 4px; position: relative; - padding: 1rem 1rem; - margin-bottom: 1rem; - border: 1px solid transparent; - border-radius: 4px; + padding: var(--tblr-alert-padding-y) var(--tblr-alert-padding-x); + margin-bottom: var(--tblr-alert-margin-bottom); + color: var(--tblr-alert-color); + background-color: var(--tblr-alert-bg); + border: var(--tblr-alert-border); + border-radius: var(--tblr-alert-border-radius); } .alert-heading { @@ -4467,12 +5674,20 @@ textarea.form-control-lg { } } .progress { + --tblr-progress-height: 0.5rem; + --tblr-progress-font-size: 0.65625rem; + --tblr-progress-bg: #e6e7e9; + --tblr-progress-border-radius: 4px; + --tblr-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --tblr-progress-bar-color: #ffffff; + --tblr-progress-bar-bg: #206bc4; + --tblr-progress-bar-transition: width 0.6s ease; display: flex; - height: 0.5rem; + height: var(--tblr-progress-height); overflow: hidden; - font-size: 0.65625rem; - background-color: #e6e7e9; - border-radius: 4px; + font-size: var(--tblr-progress-font-size); + background-color: var(--tblr-progress-bg); + border-radius: var(--tblr-progress-border-radius); } .progress-bar { @@ -4480,11 +5695,11 @@ textarea.form-control-lg { flex-direction: column; justify-content: center; overflow: hidden; - color: #ffffff; + color: var(--tblr-progress-bar-color); text-align: center; white-space: nowrap; - background-color: #206bc4; - transition: width 0.6s ease; + background-color: var(--tblr-progress-bar-bg); + transition: var(--tblr-progress-bar-transition); } @media (prefers-reduced-motion: reduce) { .progress-bar { @@ -4494,7 +5709,7 @@ textarea.form-control-lg { .progress-bar-striped { background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 0.5rem 0.5rem; + background-size: var(--tblr-progress-height) var(--tblr-progress-height); } .progress-bar-animated { @@ -4509,45 +5724,62 @@ textarea.form-control-lg { } .list-group { + --tblr-list-group-color: #0f172a; + --tblr-list-group-bg: inherit; + --tblr-list-group-border-color: #e6e7e9; + --tblr-list-group-border-width: 1px; + --tblr-list-group-border-radius: 4px; + --tblr-list-group-item-padding-x: 1.25rem; + --tblr-list-group-item-padding-y: 1rem; + --tblr-list-group-action-color: inherit; + --tblr-list-group-action-hover-color: inherit; + --tblr-list-group-action-hover-bg: rgba(98, 105, 118, 0.04); + --tblr-list-group-action-active-color: #1e293b; + --tblr-list-group-action-active-bg: #e2e8f0; + --tblr-list-group-disabled-color: #475569; + --tblr-list-group-disabled-bg: inherit; + --tblr-list-group-active-color: inherit; + --tblr-list-group-active-bg: rgba(32, 107, 196, 0.04); + --tblr-list-group-active-border-color: #e6e7e9; display: flex; flex-direction: column; padding-right: 0; margin-bottom: 0; - border-radius: 4px; + border-radius: var(--tblr-list-group-border-radius); } .list-group-numbered { list-style-type: none; counter-reset: section; } -.list-group-numbered > li::before { +.list-group-numbered > .list-group-item::before { content: counters(section, ".") ". "; counter-increment: section; } .list-group-item-action { width: 100%; - color: inherit; + color: var(--tblr-list-group-action-color); text-align: inherit; } .list-group-item-action:hover, .list-group-item-action:focus { z-index: 1; - color: inherit; + color: var(--tblr-list-group-action-hover-color); text-decoration: none; - background-color: rgba(98, 105, 118, 0.04); + background-color: var(--tblr-list-group-action-hover-bg); } .list-group-item-action:active { - color: #1e293b; - background-color: #e2e8f0; + color: var(--tblr-list-group-action-active-color); + background-color: var(--tblr-list-group-action-active-bg); } .list-group-item { position: relative; display: block; - padding: 1rem 1.25rem; - color: #0f172a; - background-color: inherit; - border: 1px solid #e6e7e9; + padding: var(--tblr-list-group-item-padding-y) var(--tblr-list-group-item-padding-x); + color: var(--tblr-list-group-color); + background-color: var(--tblr-list-group-bg); + border: var(--tblr-list-group-border-width) solid var(--tblr-list-group-border-color); } .list-group-item:first-child { border-top-right-radius: inherit; @@ -4558,45 +5790,45 @@ textarea.form-control-lg { border-bottom-right-radius: inherit; } .list-group-item.disabled, .list-group-item:disabled { - color: #475569; + color: var(--tblr-list-group-disabled-color); pointer-events: none; - background-color: inherit; + background-color: var(--tblr-list-group-disabled-bg); } .list-group-item.active { z-index: 2; - color: inherit; - background-color: rgba(32, 107, 196, 0.04); - border-color: #e6e7e9; + color: var(--tblr-list-group-active-color); + background-color: var(--tblr-list-group-active-bg); + border-color: var(--tblr-list-group-active-border-color); } .list-group-item + .list-group-item { border-top-width: 0; } .list-group-item + .list-group-item.active { - margin-top: -1px; - border-top-width: 1px; + margin-top: calc(var(--tblr-list-group-border-width) * -1); + border-top-width: var(--tblr-list-group-border-width); } .list-group-horizontal { flex-direction: row; } .list-group-horizontal > .list-group-item:first-child { - border-bottom-right-radius: 4px; + border-bottom-right-radius: var(--tblr-list-group-border-radius); border-top-left-radius: 0; } .list-group-horizontal > .list-group-item:last-child { - border-top-left-radius: 4px; + border-top-left-radius: var(--tblr-list-group-border-radius); border-bottom-right-radius: 0; } .list-group-horizontal > .list-group-item.active { margin-top: 0; } .list-group-horizontal > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-right-width: 0; } .list-group-horizontal > .list-group-item + .list-group-item.active { - margin-right: -1px; - border-right-width: 1px; + margin-right: calc(var(--tblr-list-group-border-width) * -1); + border-right-width: var(--tblr-list-group-border-width); } @media (min-width: 576px) { @@ -4604,23 +5836,23 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-sm > .list-group-item:first-child { - border-bottom-right-radius: 4px; + border-bottom-right-radius: var(--tblr-list-group-border-radius); border-top-left-radius: 0; } .list-group-horizontal-sm > .list-group-item:last-child { - border-top-left-radius: 4px; + border-top-left-radius: var(--tblr-list-group-border-radius); border-bottom-right-radius: 0; } .list-group-horizontal-sm > .list-group-item.active { margin-top: 0; } .list-group-horizontal-sm > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-right-width: 0; } .list-group-horizontal-sm > .list-group-item + .list-group-item.active { - margin-right: -1px; - border-right-width: 1px; + margin-right: calc(var(--tblr-list-group-border-width) * -1); + border-right-width: var(--tblr-list-group-border-width); } } @media (min-width: 768px) { @@ -4628,23 +5860,23 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-md > .list-group-item:first-child { - border-bottom-right-radius: 4px; + border-bottom-right-radius: var(--tblr-list-group-border-radius); border-top-left-radius: 0; } .list-group-horizontal-md > .list-group-item:last-child { - border-top-left-radius: 4px; + border-top-left-radius: var(--tblr-list-group-border-radius); border-bottom-right-radius: 0; } .list-group-horizontal-md > .list-group-item.active { margin-top: 0; } .list-group-horizontal-md > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-right-width: 0; } .list-group-horizontal-md > .list-group-item + .list-group-item.active { - margin-right: -1px; - border-right-width: 1px; + margin-right: calc(var(--tblr-list-group-border-width) * -1); + border-right-width: var(--tblr-list-group-border-width); } } @media (min-width: 992px) { @@ -4652,23 +5884,23 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-lg > .list-group-item:first-child { - border-bottom-right-radius: 4px; + border-bottom-right-radius: var(--tblr-list-group-border-radius); border-top-left-radius: 0; } .list-group-horizontal-lg > .list-group-item:last-child { - border-top-left-radius: 4px; + border-top-left-radius: var(--tblr-list-group-border-radius); border-bottom-right-radius: 0; } .list-group-horizontal-lg > .list-group-item.active { margin-top: 0; } .list-group-horizontal-lg > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-right-width: 0; } .list-group-horizontal-lg > .list-group-item + .list-group-item.active { - margin-right: -1px; - border-right-width: 1px; + margin-right: calc(var(--tblr-list-group-border-width) * -1); + border-right-width: var(--tblr-list-group-border-width); } } @media (min-width: 1200px) { @@ -4676,23 +5908,23 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-xl > .list-group-item:first-child { - border-bottom-right-radius: 4px; + border-bottom-right-radius: var(--tblr-list-group-border-radius); border-top-left-radius: 0; } .list-group-horizontal-xl > .list-group-item:last-child { - border-top-left-radius: 4px; + border-top-left-radius: var(--tblr-list-group-border-radius); border-bottom-right-radius: 0; } .list-group-horizontal-xl > .list-group-item.active { margin-top: 0; } .list-group-horizontal-xl > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-right-width: 0; } .list-group-horizontal-xl > .list-group-item + .list-group-item.active { - margin-right: -1px; - border-right-width: 1px; + margin-right: calc(var(--tblr-list-group-border-width) * -1); + border-right-width: var(--tblr-list-group-border-width); } } @media (min-width: 1400px) { @@ -4700,30 +5932,30 @@ textarea.form-control-lg { flex-direction: row; } .list-group-horizontal-xxl > .list-group-item:first-child { - border-bottom-right-radius: 4px; + border-bottom-right-radius: var(--tblr-list-group-border-radius); border-top-left-radius: 0; } .list-group-horizontal-xxl > .list-group-item:last-child { - border-top-left-radius: 4px; + border-top-left-radius: var(--tblr-list-group-border-radius); border-bottom-right-radius: 0; } .list-group-horizontal-xxl > .list-group-item.active { margin-top: 0; } .list-group-horizontal-xxl > .list-group-item + .list-group-item { - border-top-width: 1px; + border-top-width: var(--tblr-list-group-border-width); border-right-width: 0; } .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { - margin-right: -1px; - border-right-width: 1px; + margin-right: calc(var(--tblr-list-group-border-width) * -1); + border-right-width: var(--tblr-list-group-border-width); } } .list-group-flush { border-radius: 0; } .list-group-flush > .list-group-item { - border-width: 0 0 1px; + border-width: 0 0 var(--tblr-list-group-border-width); } .list-group-flush > .list-group-item:last-child { border-bottom-width: 0; @@ -4855,13 +6087,391 @@ textarea.form-control-lg { border-color: #3b3f47; } +.list-group-item-blue { + color: #134076; + background-color: #d2e1f3; +} +.list-group-item-blue.list-group-item-action:hover, .list-group-item-blue.list-group-item-action:focus { + color: #134076; + background-color: #bdcbdb; +} +.list-group-item-blue.list-group-item-action.active { + color: #ffffff; + background-color: #134076; + border-color: #134076; +} + +.list-group-item-azure { + color: #285c87; + background-color: #d9ebf9; +} +.list-group-item-azure.list-group-item-action:hover, .list-group-item-azure.list-group-item-action:focus { + color: #285c87; + background-color: #c3d4e0; +} +.list-group-item-azure.list-group-item-action.active { + color: #ffffff; + background-color: #285c87; + border-color: #285c87; +} + +.list-group-item-indigo { + color: #283b8d; + background-color: #d9e0fb; +} +.list-group-item-indigo.list-group-item-action:hover, .list-group-item-indigo.list-group-item-action:focus { + color: #283b8d; + background-color: #c3cae2; +} +.list-group-item-indigo.list-group-item-action.active { + color: #ffffff; + background-color: #283b8d; + border-color: #283b8d; +} + +.list-group-item-purple { + color: #682579; + background-color: #efd8f4; +} +.list-group-item-purple.list-group-item-action:hover, .list-group-item-purple.list-group-item-action:focus { + color: #682579; + background-color: #d7c2dc; +} +.list-group-item-purple.list-group-item-action.active { + color: #ffffff; + background-color: #682579; + border-color: #682579; +} + +.list-group-item-pink { + color: #801f41; + background-color: #f7d6e2; +} +.list-group-item-pink.list-group-item-action:hover, .list-group-item-pink.list-group-item-action:focus { + color: #801f41; + background-color: #dec1cb; +} +.list-group-item-pink.list-group-item-action.active { + color: #ffffff; + background-color: #801f41; + border-color: #801f41; +} + +.list-group-item-red { + color: #802222; + background-color: #f7d7d7; +} +.list-group-item-red.list-group-item-action:hover, .list-group-item-red.list-group-item-action:focus { + color: #802222; + background-color: #dec2c2; +} +.list-group-item-red.list-group-item-action.active { + color: #ffffff; + background-color: #802222; + border-color: #802222; +} + +.list-group-item-orange { + color: #943e04; + background-color: #fde1cd; +} +.list-group-item-orange.list-group-item-action:hover, .list-group-item-orange.list-group-item-action:focus { + color: #943e04; + background-color: #e4cbb9; +} +.list-group-item-orange.list-group-item-action.active { + color: #ffffff; + background-color: #943e04; + border-color: #943e04; +} + +.list-group-item-yellow { + color: #935f00; + background-color: #fdeccc; +} +.list-group-item-yellow.list-group-item-action:hover, .list-group-item-yellow.list-group-item-action:focus { + color: #935f00; + background-color: #e4d4b8; +} +.list-group-item-yellow.list-group-item-action.active { + color: #ffffff; + background-color: #935f00; + border-color: #935f00; +} + +.list-group-item-lime { + color: #466e0d; + background-color: #e3f1d0; +} +.list-group-item-lime.list-group-item-action:hover, .list-group-item-lime.list-group-item-action:focus { + color: #466e0d; + background-color: #ccd9bb; +} +.list-group-item-lime.list-group-item-action.active { + color: #ffffff; + background-color: #466e0d; + border-color: #466e0d; +} + +.list-group-item-green { + color: #1c6b29; + background-color: #d5f0da; +} +.list-group-item-green.list-group-item-action:hover, .list-group-item-green.list-group-item-action:focus { + color: #1c6b29; + background-color: #c0d8c4; +} +.list-group-item-green.list-group-item-action.active { + color: #ffffff; + background-color: #1c6b29; + border-color: #1c6b29; +} + +.list-group-item-teal { + color: #076448; + background-color: #ceede4; +} +.list-group-item-teal.list-group-item-action:hover, .list-group-item-teal.list-group-item-action:focus { + color: #076448; + background-color: #b9d5cd; +} +.list-group-item-teal.list-group-item-action.active { + color: #ffffff; + background-color: #076448; + border-color: #076448; +} + +.list-group-item-cyan { + color: #0e616e; + background-color: #d1ecf1; +} +.list-group-item-cyan.list-group-item-action:hover, .list-group-item-cyan.list-group-item-action:focus { + color: #0e616e; + background-color: #bcd4d9; +} +.list-group-item-cyan.list-group-item-action.active { + color: #ffffff; + background-color: #0e616e; + border-color: #0e616e; +} + +.list-group-item-facebook { + color: #23355b; + background-color: #d8deea; +} +.list-group-item-facebook.list-group-item-action:hover, .list-group-item-facebook.list-group-item-action:focus { + color: #23355b; + background-color: #c2c8d3; +} +.list-group-item-facebook.list-group-item-action.active { + color: #ffffff; + background-color: #23355b; + border-color: #23355b; +} + +.list-group-item-twitter { + color: #116191; + background-color: #d2ecfc; +} +.list-group-item-twitter.list-group-item-action:hover, .list-group-item-twitter.list-group-item-action:focus { + color: #116191; + background-color: #bdd4e3; +} +.list-group-item-twitter.list-group-item-action.active { + color: #ffffff; + background-color: #116191; + border-color: #116191; +} + +.list-group-item-linkedin { + color: #063d74; + background-color: #cee0f3; +} +.list-group-item-linkedin.list-group-item-action:hover, .list-group-item-linkedin.list-group-item-action:focus { + color: #063d74; + background-color: #b9cadb; +} +.list-group-item-linkedin.list-group-item-action.active { + color: #ffffff; + background-color: #063d74; + border-color: #063d74; +} + +.list-group-item-google { + color: #842f27; + background-color: #f8dcd9; +} +.list-group-item-google.list-group-item-action:hover, .list-group-item-google.list-group-item-action:focus { + color: #842f27; + background-color: #dfc6c3; +} +.list-group-item-google.list-group-item-action.active { + color: #ffffff; + background-color: #842f27; + border-color: #842f27; +} + +.list-group-item-youtube { + color: #990000; + background-color: #ffcccc; +} +.list-group-item-youtube.list-group-item-action:hover, .list-group-item-youtube.list-group-item-action:focus { + color: #990000; + background-color: #e6b8b8; +} +.list-group-item-youtube.list-group-item-action.active { + color: #ffffff; + background-color: #990000; + border-color: #990000; +} + +.list-group-item-vimeo { + color: #106e8c; + background-color: #d1f1fb; +} +.list-group-item-vimeo.list-group-item-action:hover, .list-group-item-vimeo.list-group-item-action:focus { + color: #106e8c; + background-color: #bcd9e2; +} +.list-group-item-vimeo.list-group-item-action.active { + color: #ffffff; + background-color: #106e8c; + border-color: #106e8c; +} + +.list-group-item-dribbble { + color: #8c2e52; + background-color: #fbdbe7; +} +.list-group-item-dribbble.list-group-item-action:hover, .list-group-item-dribbble.list-group-item-action:focus { + color: #8c2e52; + background-color: #e2c5d0; +} +.list-group-item-dribbble.list-group-item-action.active { + color: #ffffff; + background-color: #8c2e52; + border-color: #8c2e52; +} + +.list-group-item-github { + color: #0e0e0e; + background-color: #d1d1d1; +} +.list-group-item-github.list-group-item-action:hover, .list-group-item-github.list-group-item-action:focus { + color: #0e0e0e; + background-color: #bcbcbc; +} +.list-group-item-github.list-group-item-action.active { + color: #ffffff; + background-color: #0e0e0e; + border-color: #0e0e0e; +} + +.list-group-item-instagram { + color: #892639; + background-color: #fad9df; +} +.list-group-item-instagram.list-group-item-action:hover, .list-group-item-instagram.list-group-item-action:focus { + color: #892639; + background-color: #e1c3c9; +} +.list-group-item-instagram.list-group-item-action.active { + color: #ffffff; + background-color: #892639; + border-color: #892639; +} + +.list-group-item-pinterest { + color: #710511; + background-color: #f2ced2; +} +.list-group-item-pinterest.list-group-item-action:hover, .list-group-item-pinterest.list-group-item-action:focus { + color: #710511; + background-color: #dab9bd; +} +.list-group-item-pinterest.list-group-item-action.active { + color: #ffffff; + background-color: #710511; + border-color: #710511; +} + +.list-group-item-vk { + color: #3b4f65; + background-color: #e0e6ee; +} +.list-group-item-vk.list-group-item-action:hover, .list-group-item-vk.list-group-item-action:focus { + color: #3b4f65; + background-color: #cacfd6; +} +.list-group-item-vk.list-group-item-action.active { + color: #ffffff; + background-color: #3b4f65; + border-color: #3b4f65; +} + +.list-group-item-rss { + color: #996300; + background-color: #ffedcc; +} +.list-group-item-rss.list-group-item-action:hover, .list-group-item-rss.list-group-item-action:focus { + color: #996300; + background-color: #e6d5b8; +} +.list-group-item-rss.list-group-item-action.active { + color: #ffffff; + background-color: #996300; + border-color: #996300; +} + +.list-group-item-flickr { + color: #003b84; + background-color: #cce0f8; +} +.list-group-item-flickr.list-group-item-action:hover, .list-group-item-flickr.list-group-item-action:focus { + color: #003b84; + background-color: #b8cadf; +} +.list-group-item-flickr.list-group-item-action.active { + color: #ffffff; + background-color: #003b84; + border-color: #003b84; +} + +.list-group-item-bitbucket { + color: #00317a; + background-color: #ccdcf5; +} +.list-group-item-bitbucket.list-group-item-action:hover, .list-group-item-bitbucket.list-group-item-action:focus { + color: #00317a; + background-color: #b8c6dd; +} +.list-group-item-bitbucket.list-group-item-action.active { + color: #ffffff; + background-color: #00317a; + border-color: #00317a; +} + +.list-group-item-tabler { + color: #134076; + background-color: #d2e1f3; +} +.list-group-item-tabler.list-group-item-action:hover, .list-group-item-tabler.list-group-item-action:focus { + color: #134076; + background-color: #bdcbdb; +} +.list-group-item-tabler.list-group-item-action.active { + color: #ffffff; + background-color: #134076; + border-color: #134076; +} + .btn-close { box-sizing: content-box; width: 0.75rem; height: 0.75rem; padding: 0.25em 0.25em; color: #000000; - background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/0.75rem auto no-repeat; + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/0.75rem auto no-repeat; border: 0; border-radius: 4px; opacity: 0.3; @@ -4890,15 +6500,30 @@ textarea.form-control-lg { } .toast { - width: 350px; + --tblr-toast-padding-x: 0.75rem; + --tblr-toast-padding-y: 0.5rem; + --tblr-toast-spacing: 1.5rem; + --tblr-toast-max-width: 350px; + --tblr-toast-font-size: 0.875rem; + --tblr-toast-color: ; + --tblr-toast-bg: rgba(255, 255, 255, 0.85); + --tblr-toast-border-width: 1px; + --tblr-toast-border-color: #e6e7e9; + --tblr-toast-border-radius: 4px; + --tblr-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --tblr-toast-header-color: #626976; + --tblr-toast-header-bg: rgba(255, 255, 255, 0.85); + --tblr-toast-header-border-color: rgba(0, 0, 0, 0.05); + width: var(--tblr-toast-max-width); max-width: 100%; - font-size: 0.875rem; + font-size: var(--tblr-toast-font-size); + color: var(--tblr-toast-color); pointer-events: auto; - background-color: rgba(255, 255, 255, 0.85); + background-color: var(--tblr-toast-bg); background-clip: padding-box; - border: 1px solid #e6e7e9; - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); - border-radius: 4px; + border: var(--tblr-toast-border-width) solid var(--tblr-toast-border-color); + box-shadow: var(--tblr-toast-box-shadow); + border-radius: var(--tblr-toast-border-radius); } .toast.showing { opacity: 0; @@ -4908,6 +6533,8 @@ textarea.form-control-lg { } .toast-container { + position: absolute; + z-index: 1090; width: -webkit-max-content; width: -moz-max-content; width: max-content; @@ -4915,35 +6542,56 @@ textarea.form-control-lg { pointer-events: none; } .toast-container > :not(:last-child) { - margin-bottom: 1.5rem; + margin-bottom: var(--tblr-toast-spacing); } .toast-header { display: flex; align-items: center; - padding: 0.5rem 0.75rem; - color: #626976; - background-color: rgba(255, 255, 255, 0.85); + padding: var(--tblr-toast-padding-y) var(--tblr-toast-padding-x); + color: var(--tblr-toast-header-color); + background-color: var(--tblr-toast-header-bg); background-clip: padding-box; - border-bottom: 1px solid rgba(0, 0, 0, 0.05); - border-top-right-radius: 3px; - border-top-left-radius: 3px; + border-bottom: var(--tblr-toast-border-width) solid var(--tblr-toast-header-border-color); + border-top-right-radius: calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width)); + border-top-left-radius: calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width)); } .toast-header .btn-close { - margin-left: -0.375rem; - margin-right: 0.75rem; + margin-left: calc(var(--tblr-toast-padding-x) * -0.5); + margin-right: var(--tblr-toast-padding-x); } .toast-body { - padding: 0.75rem; + padding: var(--tblr-toast-padding-x); word-wrap: break-word; } .modal { + --tblr-modal-zindex: 1055; + --tblr-modal-width: 540px; + --tblr-modal-padding: 1.5rem; + --tblr-modal-margin: 0.5rem; + --tblr-modal-color: ; + --tblr-modal-bg: #fafbfc; + --tblr-modal-border-color: transparent; + --tblr-modal-border-width: 1px; + --tblr-modal-border-radius: 4px; + --tblr-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --tblr-modal-inner-border-radius: 3px; + --tblr-modal-header-padding-x: 1.5rem; + --tblr-modal-header-padding-y: 1.5rem; + --tblr-modal-header-padding: 1.5rem; + --tblr-modal-header-border-color: #e6e7e9; + --tblr-modal-header-border-width: 1px; + --tblr-modal-title-line-height: 1.4285714286; + --tblr-modal-footer-gap: 0.75rem; + --tblr-modal-footer-bg: ; + --tblr-modal-footer-border-color: #e6e7e9; + --tblr-modal-footer-border-width: 0; position: fixed; top: 0; right: 0; - z-index: 1055; + z-index: var(--tblr-modal-zindex); display: none; width: 100%; height: 100%; @@ -4955,7 +6603,7 @@ textarea.form-control-lg { .modal-dialog { position: relative; width: auto; - margin: 0.5rem; + margin: var(--tblr-modal-margin); pointer-events: none; } .modal.fade .modal-dialog { @@ -4975,7 +6623,7 @@ textarea.form-control-lg { } .modal-dialog-scrollable { - height: calc(100% - 1rem); + height: calc(100% - var(--tblr-modal-margin) * 2); } .modal-dialog-scrollable .modal-content { max-height: 100%; @@ -4988,7 +6636,7 @@ textarea.form-control-lg { .modal-dialog-centered { display: flex; align-items: center; - min-height: calc(100% - 1rem); + min-height: calc(100% - var(--tblr-modal-margin) * 2); } .modal-content { @@ -4996,28 +6644,32 @@ textarea.form-control-lg { display: flex; flex-direction: column; width: 100%; + color: var(--tblr-modal-color); pointer-events: auto; - background-color: #fafbfc; + background-color: var(--tblr-modal-bg); background-clip: padding-box; - border: 1px solid transparent; - border-radius: 4px; + border: var(--tblr-modal-border-width) solid var(--tblr-modal-border-color); + border-radius: var(--tblr-modal-border-radius); outline: 0; } .modal-backdrop { + --tblr-backdrop-zindex: 1050; + --tblr-backdrop-bg: #1e293b; + --tblr-backdrop-opacity: 0.24; position: fixed; top: 0; right: 0; - z-index: 1050; + z-index: var(--tblr-backdrop-zindex); width: 100vw; height: 100vh; - background-color: #1e293b; + background-color: var(--tblr-backdrop-bg); } .modal-backdrop.fade { opacity: 0; } .modal-backdrop.show { - opacity: 0.24; + opacity: var(--tblr-backdrop-opacity); } .modal-header { @@ -5025,69 +6677,66 @@ textarea.form-control-lg { flex-shrink: 0; align-items: center; justify-content: space-between; - padding: 1.5rem; - border-bottom: 1px solid #e6e7e9; - border-top-right-radius: 3px; - border-top-left-radius: 3px; + padding: var(--tblr-modal-header-padding); + border-bottom: var(--tblr-modal-header-border-width) solid var(--tblr-modal-header-border-color); + border-top-right-radius: var(--tblr-modal-inner-border-radius); + border-top-left-radius: var(--tblr-modal-inner-border-radius); } .modal-header .btn-close { - padding: 0.75rem 0.75rem; - margin: -0.75rem auto -0.75rem -0.75rem; + padding: calc(var(--tblr-modal-header-padding-y) * 0.5) calc(var(--tblr-modal-header-padding-x) * 0.5); + margin: calc(var(--tblr-modal-header-padding-y) * -0.5) auto calc(var(--tblr-modal-header-padding-y) * -0.5) calc(var(--tblr-modal-header-padding-x) * -0.5); } .modal-title { margin-bottom: 0; - line-height: 1.4285714286; + line-height: var(--tblr-modal-title-line-height); } .modal-body { position: relative; flex: 1 1 auto; - padding: 1.5rem; + padding: var(--tblr-modal-padding); } .modal-footer { display: flex; - flex-wrap: wrap; flex-shrink: 0; + flex-wrap: wrap; align-items: center; justify-content: flex-end; - padding: 1.125rem; - border-top: 0 solid #e6e7e9; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; + padding: calc(var(--tblr-modal-padding) - var(--tblr-modal-footer-gap) * 0.5); + background-color: var(--tblr-modal-footer-bg); + border-top: var(--tblr-modal-footer-border-width) solid var(--tblr-modal-footer-border-color); + border-bottom-left-radius: var(--tblr-modal-inner-border-radius); + border-bottom-right-radius: var(--tblr-modal-inner-border-radius); } .modal-footer > * { - margin: 0.375rem; + margin: calc(var(--tblr-modal-footer-gap) * 0.5); } @media (min-width: 576px) { + .modal { + --tblr-modal-margin: 1.75rem; + --tblr-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + } .modal-dialog { - max-width: 540px; - margin: 1.75rem auto; + max-width: var(--tblr-modal-width); + margin-left: auto; + margin-right: auto; } - - .modal-dialog-scrollable { - height: calc(100% - 3.5rem); - } - - .modal-dialog-centered { - min-height: calc(100% - 3.5rem); - } - .modal-sm { - max-width: 380px; + --tblr-modal-width: 380px; } } @media (min-width: 992px) { .modal-lg, .modal-xl { - max-width: 720px; + --tblr-modal-width: 720px; } } @media (min-width: 1200px) { .modal-xl { - max-width: 1140px; + --tblr-modal-width: 1140px; } } .modal-fullscreen { @@ -5101,15 +6750,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } -.modal-fullscreen .modal-header { +.modal-fullscreen .modal-header, +.modal-fullscreen .modal-footer { border-radius: 0; } .modal-fullscreen .modal-body { overflow-y: auto; } -.modal-fullscreen .modal-footer { - border-radius: 0; -} @media (max-width: 575.98px) { .modal-fullscreen-sm-down { @@ -5123,15 +6770,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-sm-down .modal-header { + .modal-fullscreen-sm-down .modal-header, +.modal-fullscreen-sm-down .modal-footer { border-radius: 0; } .modal-fullscreen-sm-down .modal-body { overflow-y: auto; } - .modal-fullscreen-sm-down .modal-footer { - border-radius: 0; - } } @media (max-width: 767.98px) { .modal-fullscreen-md-down { @@ -5145,15 +6790,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-md-down .modal-header { + .modal-fullscreen-md-down .modal-header, +.modal-fullscreen-md-down .modal-footer { border-radius: 0; } .modal-fullscreen-md-down .modal-body { overflow-y: auto; } - .modal-fullscreen-md-down .modal-footer { - border-radius: 0; - } } @media (max-width: 991.98px) { .modal-fullscreen-lg-down { @@ -5167,15 +6810,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-lg-down .modal-header { + .modal-fullscreen-lg-down .modal-header, +.modal-fullscreen-lg-down .modal-footer { border-radius: 0; } .modal-fullscreen-lg-down .modal-body { overflow-y: auto; } - .modal-fullscreen-lg-down .modal-footer { - border-radius: 0; - } } @media (max-width: 1199.98px) { .modal-fullscreen-xl-down { @@ -5189,15 +6830,13 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-xl-down .modal-header { + .modal-fullscreen-xl-down .modal-header, +.modal-fullscreen-xl-down .modal-footer { border-radius: 0; } .modal-fullscreen-xl-down .modal-body { overflow-y: auto; } - .modal-fullscreen-xl-down .modal-footer { - border-radius: 0; - } } @media (max-width: 1399.98px) { .modal-fullscreen-xxl-down { @@ -5211,21 +6850,31 @@ textarea.form-control-lg { border: 0; border-radius: 0; } - .modal-fullscreen-xxl-down .modal-header { + .modal-fullscreen-xxl-down .modal-header, +.modal-fullscreen-xxl-down .modal-footer { border-radius: 0; } .modal-fullscreen-xxl-down .modal-body { overflow-y: auto; } - .modal-fullscreen-xxl-down .modal-footer { - border-radius: 0; - } } .tooltip { - position: absolute; - z-index: 1080; + --tblr-tooltip-zindex: 1080; + --tblr-tooltip-max-width: 200px; + --tblr-tooltip-padding-x: 0.5rem; + --tblr-tooltip-padding-y: 0.25rem; + --tblr-tooltip-margin: ; + --tblr-tooltip-font-size: 0.765625rem; + --tblr-tooltip-color: #ffffff; + --tblr-tooltip-bg: #000000; + --tblr-tooltip-border-radius: 4px; + --tblr-tooltip-opacity: 0.9; + --tblr-tooltip-arrow-width: 0.8rem; + --tblr-tooltip-arrow-height: 0.4rem; + z-index: var(--tblr-tooltip-zindex); display: block; - margin: 0; + padding: var(--tblr-tooltip-arrow-height); + margin: var(--tblr-tooltip-margin); font-family: var(--tblr-font-sans-serif); font-style: normal; font-weight: 400; @@ -5237,21 +6886,20 @@ textarea.form-control-lg { text-transform: none; letter-spacing: normal; word-break: normal; - word-spacing: normal; white-space: normal; + word-spacing: normal; line-break: auto; - font-size: 0.765625rem; + font-size: var(--tblr-tooltip-font-size); word-wrap: break-word; opacity: 0; } .tooltip.show { - opacity: 0.9; + opacity: var(--tblr-tooltip-opacity); } .tooltip .tooltip-arrow { - position: absolute; display: block; - width: 0.8rem; - height: 0.4rem; + width: var(--tblr-tooltip-arrow-width); + height: var(--tblr-tooltip-arrow-height); } .tooltip .tooltip-arrow::before { position: absolute; @@ -5260,74 +6908,75 @@ textarea.form-control-lg { border-style: solid; } -.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=top] { - padding: 0.4rem 0; -} .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { bottom: 0; } .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { top: -1px; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000000; -} - -.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=right] { - padding: 0 0.4rem; + border-width: var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--tblr-tooltip-bg); } .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { - right: 0; - width: 0.4rem; - height: 0.8rem; + left: 0; + width: var(--tblr-tooltip-arrow-height); + height: var(--tblr-tooltip-arrow-width); } .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { - left: -1px; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000000; -} - -.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=bottom] { - padding: 0.4rem 0; + right: -1px; + border-width: calc(var(--tblr-tooltip-arrow-width) * 0.5) var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--tblr-tooltip-bg); } .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { top: 0; } .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { bottom: -1px; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000000; -} - -.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=left] { - padding: 0 0.4rem; + border-width: 0 calc(var(--tblr-tooltip-arrow-width) * 0.5) var(--tblr-tooltip-arrow-height); + border-bottom-color: var(--tblr-tooltip-bg); } .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { - left: 0; - width: 0.4rem; - height: 0.8rem; + right: 0; + width: var(--tblr-tooltip-arrow-height); + height: var(--tblr-tooltip-arrow-width); } .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { - right: -1px; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000000; + left: -1px; + border-width: calc(var(--tblr-tooltip-arrow-width) * 0.5) 0 calc(var(--tblr-tooltip-arrow-width) * 0.5) var(--tblr-tooltip-arrow-height); + border-left-color: var(--tblr-tooltip-bg); } - .tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #ffffff; + max-width: var(--tblr-tooltip-max-width); + padding: var(--tblr-tooltip-padding-y) var(--tblr-tooltip-padding-x); + color: var(--tblr-tooltip-color); text-align: center; - background-color: #000000; - border-radius: 4px; + background-color: var(--tblr-tooltip-bg); + border-radius: var(--tblr-tooltip-border-radius); } .popover { - position: absolute; - top: 0; - left: 0 ; - z-index: 1070; + --tblr-popover-zindex: 1070; + --tblr-popover-max-width: 276px; + --tblr-popover-font-size: 0.765625rem; + --tblr-popover-bg: #ffffff; + --tblr-popover-border-width: 1px; + --tblr-popover-border-color: #e6e7e9; + --tblr-popover-border-radius: 8px; + --tblr-popover-inner-border-radius: 7px; + --tblr-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --tblr-popover-header-padding-x: 1rem; + --tblr-popover-header-padding-y: 0.5rem; + --tblr-popover-header-font-size: 0.875rem; + --tblr-popover-header-color: var(--tblr-heading-color); + --tblr-popover-header-bg: #f0f0f0; + --tblr-popover-body-padding-x: 1rem; + --tblr-popover-body-padding-y: 1rem; + --tblr-popover-body-color: #1e293b; + --tblr-popover-arrow-width: 1rem; + --tblr-popover-arrow-height: 0.5rem; + --tblr-popover-arrow-border: var(--tblr-popover-border-color); + z-index: var(--tblr-popover-zindex); display: block; - max-width: 276px; + max-width: var(--tblr-popover-max-width); font-family: var(--tblr-font-sans-serif); font-style: normal; font-weight: 400; @@ -5339,21 +6988,20 @@ textarea.form-control-lg { text-transform: none; letter-spacing: normal; word-break: normal; - word-spacing: normal; white-space: normal; + word-spacing: normal; line-break: auto; - font-size: 0.765625rem; + font-size: var(--tblr-popover-font-size); word-wrap: break-word; - background-color: #ffffff; + background-color: var(--tblr-popover-bg); background-clip: padding-box; - border: 1px solid #e6e7e9; - border-radius: 8px; + border: var(--tblr-popover-border-width) solid var(--tblr-popover-border-color); + border-radius: var(--tblr-popover-border-radius); } .popover .popover-arrow { - position: absolute; display: block; - width: 1rem; - height: 0.5rem; + width: var(--tblr-popover-arrow-width); + height: var(--tblr-popover-arrow-height); } .popover .popover-arrow::before, .popover .popover-arrow::after { position: absolute; @@ -5361,94 +7009,96 @@ textarea.form-control-lg { content: ""; border-color: transparent; border-style: solid; + border-width: 0; } .bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { - bottom: calc(-0.5rem - 1px); + bottom: calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width)); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * 0.5) 0; } .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { bottom: 0; - border-width: 0.5rem 0.5rem 0; - border-top-color: #e6e7e9; + border-top-color: var(--tblr-popover-arrow-border); } .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { - bottom: 1px; - border-width: 0.5rem 0.5rem 0; - border-top-color: #ffffff; + bottom: var(--tblr-popover-border-width); + border-top-color: var(--tblr-popover-bg); } - .bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { - right: calc(-0.5rem - 1px); - width: 0.5rem; - height: 1rem; + left: calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width)); + width: var(--tblr-popover-arrow-height); + height: var(--tblr-popover-arrow-width); +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--tblr-popover-arrow-width) * 0.5) var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * 0.5) 0; } .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { - right: 0; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: #e6e7e9; + left: 0; + border-right-color: var(--tblr-popover-arrow-border); } .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { - right: 1px; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: #ffffff; + left: var(--tblr-popover-border-width); + border-right-color: var(--tblr-popover-bg); } - .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { - top: calc(-0.5rem - 1px); + top: calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--tblr-popover-arrow-width) * 0.5) var(--tblr-popover-arrow-height); } .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { top: 0; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: #e6e7e9; + border-bottom-color: var(--tblr-popover-arrow-border); } .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { - top: 1px; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: #ffffff; + top: var(--tblr-popover-border-width); + border-bottom-color: var(--tblr-popover-bg); } .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { position: absolute; top: 0; right: 50%; display: block; - width: 1rem; - margin-right: -0.5rem; + width: var(--tblr-popover-arrow-width); + margin-right: calc(var(--tblr-popover-arrow-width) * -0.5); content: ""; - border-bottom: 1px solid #f0f0f0; + border-bottom: var(--tblr-popover-border-width) solid var(--tblr-popover-header-bg); } - .bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { - left: calc(-0.5rem - 1px); - width: 0.5rem; - height: 1rem; + right: calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width)); + width: var(--tblr-popover-arrow-height); + height: var(--tblr-popover-arrow-width); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--tblr-popover-arrow-width) * 0.5) 0 calc(var(--tblr-popover-arrow-width) * 0.5) var(--tblr-popover-arrow-height); } .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { - left: 0; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: #e6e7e9; + right: 0; + border-left-color: var(--tblr-popover-arrow-border); } .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { - left: 1px; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: #ffffff; + right: var(--tblr-popover-border-width); + border-left-color: var(--tblr-popover-bg); } - .popover-header { - padding: 0.5rem 1rem; + padding: var(--tblr-popover-header-padding-y) var(--tblr-popover-header-padding-x); margin-bottom: 0; - font-size: 0.875rem; - background-color: #f0f0f0; - border-bottom: 1px solid #e6e7e9; - border-top-right-radius: 7px; - border-top-left-radius: 7px; + font-size: var(--tblr-popover-header-font-size); + color: var(--tblr-popover-header-color); + background-color: var(--tblr-popover-header-bg); + border-bottom: var(--tblr-popover-border-width) solid var(--tblr-popover-border-color); + border-top-right-radius: var(--tblr-popover-inner-border-radius); + border-top-left-radius: var(--tblr-popover-inner-border-radius); } .popover-header:empty { display: none; } .popover-body { - padding: 1rem 1rem; - color: #1e293b; + padding: var(--tblr-popover-body-padding-y) var(--tblr-popover-body-padding-x); + color: var(--tblr-popover-body-color); } .carousel { @@ -5645,6 +7295,17 @@ textarea.form-control-lg { color: #000000; } +.spinner-grow, +.spinner-border { + display: inline-block; + width: var(--tblr-spinner-width); + height: var(--tblr-spinner-height); + vertical-align: var(--tblr-spinner-vertical-align); + border-radius: 50%; + -webkit-animation: var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name); + animation: var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name); +} + @-webkit-keyframes spinner-border { to { transform: rotate(360deg) ; @@ -5657,21 +7318,20 @@ textarea.form-control-lg { } } .spinner-border { - display: inline-block; - width: 1.5rem; - height: 1.5rem; - vertical-align: -0.125em; - border: 2px solid currentColor; + --tblr-spinner-width: 1.5rem; + --tblr-spinner-height: 1.5rem; + --tblr-spinner-vertical-align: -0.125em; + --tblr-spinner-border-width: 2px; + --tblr-spinner-animation-speed: 0.75s; + --tblr-spinner-animation-name: spinner-border; + border: var(--tblr-spinner-border-width) solid currentcolor; border-left-color: transparent; - border-radius: 50%; - -webkit-animation: 0.75s linear infinite spinner-border; - animation: 0.75s linear infinite spinner-border; } .spinner-border-sm { - width: 1rem; - height: 1rem; - border-width: 1px; + --tblr-spinner-width: 1rem; + --tblr-spinner-height: 1rem; + --tblr-spinner-border-width: 0.2em; } @-webkit-keyframes spinner-grow { @@ -5694,29 +7354,478 @@ textarea.form-control-lg { } } .spinner-grow { - display: inline-block; - width: 1.5rem; - height: 1.5rem; - vertical-align: -0.125em; - background-color: currentColor; - border-radius: 50%; + --tblr-spinner-width: 1.5rem; + --tblr-spinner-height: 1.5rem; + --tblr-spinner-vertical-align: -0.125em; + --tblr-spinner-animation-speed: 0.75s; + --tblr-spinner-animation-name: spinner-grow; + background-color: currentcolor; opacity: 0; - -webkit-animation: 0.75s linear infinite spinner-grow; - animation: 0.75s linear infinite spinner-grow; } .spinner-grow-sm { - width: 1rem; - height: 1rem; + --tblr-spinner-width: 1rem; + --tblr-spinner-height: 1rem; } @media (prefers-reduced-motion: reduce) { .spinner-border, .spinner-grow { - -webkit-animation-duration: 1.5s; - animation-duration: 1.5s; + --tblr-spinner-animation-speed: 1.5s; } } +.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --tblr-offcanvas-width: 400px; + --tblr-offcanvas-height: 30vh; + --tblr-offcanvas-padding-x: 1.5rem; + --tblr-offcanvas-padding-y: 1.5rem; + --tblr-offcanvas-color: ; + --tblr-offcanvas-bg: #fafbfc; + --tblr-offcanvas-border-width: 1px; + --tblr-offcanvas-border-color: rgba(98, 105, 118, 0.16); + --tblr-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); +} + +@media (max-width: 575.98px) { + .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-sm { + transition: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-end { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-top { + top: 0; + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-bottom { + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; + } +} +@media (min-width: 576px) { + .offcanvas-sm { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-sm .offcanvas-header { + display: none; + } + .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .offcanvas-md { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-md { + transition: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-end { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-top { + top: 0; + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-bottom { + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; + } +} +@media (min-width: 768px) { + .offcanvas-md { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-md .offcanvas-header { + display: none; + } + .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-lg { + transition: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-end { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-top { + top: 0; + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-bottom { + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; + } +} +@media (min-width: 992px) { + .offcanvas-lg { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-lg .offcanvas-header { + display: none; + } + .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xl { + transition: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-end { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-top { + top: 0; + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-bottom { + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; + } +} +@media (min-width: 1200px) { + .offcanvas-xl { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xl .offcanvas-header { + display: none; + } + .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: 1045; + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--tblr-offcanvas-color); + visibility: hidden; + background-color: var(--tblr-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; + } +} +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xxl { + transition: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-end { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-top { + top: 0; + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-bottom { + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; + } +} +@media (min-width: 1400px) { + .offcanvas-xxl { + --tblr-offcanvas-height: auto; + --tblr-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xxl .offcanvas-header { + display: none; + } + .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + .offcanvas { position: fixed; bottom: 0; @@ -5724,8 +7833,9 @@ textarea.form-control-lg { display: flex; flex-direction: column; max-width: 100%; + color: var(--tblr-offcanvas-color); visibility: hidden; - background-color: #fafbfc; + background-color: var(--tblr-offcanvas-bg); background-clip: padding-box; outline: 0; transition: transform 0.3s ease-in-out; @@ -5735,6 +7845,43 @@ textarea.form-control-lg { transition: none; } } +.offcanvas.offcanvas-start { + top: 0; + right: 0; + width: var(--tblr-offcanvas-width); + border-left: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(100%); +} +.offcanvas.offcanvas-end { + top: 0; + left: 0; + width: var(--tblr-offcanvas-width); + border-right: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateX(-100%); +} +.offcanvas.offcanvas-top { + top: 0; + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-bottom: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(-100%); +} +.offcanvas.offcanvas-bottom { + left: 0; + right: 0; + height: var(--tblr-offcanvas-height); + max-height: 100%; + border-top: var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color); + transform: translateY(100%); +} +.offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; +} .offcanvas-backdrop { position: fixed; @@ -5756,13 +7903,13 @@ textarea.form-control-lg { display: flex; align-items: center; justify-content: space-between; - padding: 1.5rem 1.5rem; + padding: var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x); } .offcanvas-header .btn-close { - padding: 0.75rem 0.75rem; - margin-top: -0.75rem; - margin-left: -0.75rem; - margin-bottom: -0.75rem; + padding: calc(var(--tblr-offcanvas-padding-y) * 0.5) calc(var(--tblr-offcanvas-padding-x) * 0.5); + margin-top: calc(var(--tblr-offcanvas-padding-y) * -0.5); + margin-left: calc(var(--tblr-offcanvas-padding-x) * -0.5); + margin-bottom: calc(var(--tblr-offcanvas-padding-y) * -0.5); } .offcanvas-title { @@ -5772,55 +7919,16 @@ textarea.form-control-lg { .offcanvas-body { flex-grow: 1; - padding: 1.5rem 1.5rem; + padding: var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x); overflow-y: auto; } -.offcanvas-start { - top: 0; - right: 0; - width: 400px; - border-left: 1px solid rgba(98, 105, 118, 0.16); - transform: translateX(100%); -} - -.offcanvas-end { - top: 0; - left: 0; - width: 400px; - border-right: 1px solid rgba(98, 105, 118, 0.16); - transform: translateX(-100%); -} - -.offcanvas-top { - top: 0; - left: 0; - right: 0; - height: 30vh; - max-height: 100%; - border-bottom: 1px solid rgba(98, 105, 118, 0.16); - transform: translateY(-100%); -} - -.offcanvas-bottom { - left: 0; - right: 0; - height: 30vh; - max-height: 100%; - border-top: 1px solid rgba(98, 105, 118, 0.16); - transform: translateY(100%); -} - -.offcanvas.show { - transform: none; -} - .placeholder { display: inline-block; min-height: 1em; vertical-align: middle; cursor: wait; - background-color: currentColor; + background-color: currentcolor; opacity: 0.2; } .placeholder.btn::before { @@ -5884,67 +7992,436 @@ textarea.form-control-lg { content: ""; } +.text-bg-primary { + color: #fafbfc !important; + background-color: RGBA(32, 107, 196, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-secondary { + color: #fafbfc !important; + background-color: RGBA(98, 105, 118, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-success { + color: #fafbfc !important; + background-color: RGBA(47, 179, 68, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-info { + color: #fafbfc !important; + background-color: RGBA(66, 153, 225, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-warning { + color: #fafbfc !important; + background-color: RGBA(247, 103, 7, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-danger { + color: #fafbfc !important; + background-color: RGBA(214, 57, 57, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-light { + color: #1e293b !important; + background-color: RGBA(250, 251, 252, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-dark { + color: #fafbfc !important; + background-color: RGBA(30, 41, 59, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-muted { + color: #fafbfc !important; + background-color: RGBA(98, 105, 118, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-blue { + color: #fafbfc !important; + background-color: RGBA(32, 107, 196, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-azure { + color: #fafbfc !important; + background-color: RGBA(66, 153, 225, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-indigo { + color: #fafbfc !important; + background-color: RGBA(66, 99, 235, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-purple { + color: #fafbfc !important; + background-color: RGBA(174, 62, 201, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-pink { + color: #fafbfc !important; + background-color: RGBA(214, 51, 108, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-red { + color: #fafbfc !important; + background-color: RGBA(214, 57, 57, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-orange { + color: #fafbfc !important; + background-color: RGBA(247, 103, 7, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-yellow { + color: #fafbfc !important; + background-color: RGBA(245, 159, 0, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-lime { + color: #fafbfc !important; + background-color: RGBA(116, 184, 22, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-green { + color: #fafbfc !important; + background-color: RGBA(47, 179, 68, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-teal { + color: #fafbfc !important; + background-color: RGBA(12, 166, 120, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-cyan { + color: #fafbfc !important; + background-color: RGBA(23, 162, 184, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-facebook { + color: #fafbfc !important; + background-color: RGBA(59, 89, 152, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-twitter { + color: #fafbfc !important; + background-color: RGBA(29, 161, 242, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-linkedin { + color: #fafbfc !important; + background-color: RGBA(10, 102, 194, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-google { + color: #fafbfc !important; + background-color: RGBA(220, 78, 65, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-youtube { + color: #fafbfc !important; + background-color: RGBA(255, 0, 0, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-vimeo { + color: #fafbfc !important; + background-color: RGBA(26, 183, 234, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-dribbble { + color: #fafbfc !important; + background-color: RGBA(234, 76, 137, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-github { + color: #fafbfc !important; + background-color: RGBA(24, 23, 23, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-instagram { + color: #fafbfc !important; + background-color: RGBA(228, 64, 95, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-pinterest { + color: #fafbfc !important; + background-color: RGBA(189, 8, 28, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-vk { + color: #fafbfc !important; + background-color: RGBA(99, 131, 168, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-rss { + color: #fafbfc !important; + background-color: RGBA(255, 165, 0, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-flickr { + color: #fafbfc !important; + background-color: RGBA(0, 99, 220, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-bitbucket { + color: #fafbfc !important; + background-color: RGBA(0, 82, 204, var(--tblr-bg-opacity, 1)) !important; +} + +.text-bg-tabler { + color: #fafbfc !important; + background-color: RGBA(32, 107, 196, var(--tblr-bg-opacity, 1)) !important; +} + .link-primary { - color: #206bc4; + color: #206bc4 !important; } .link-primary:hover, .link-primary:focus { - color: #1a569d; + color: #1a569d !important; } .link-secondary { - color: #626976; + color: #626976 !important; } .link-secondary:hover, .link-secondary:focus { - color: #4e545e; + color: #4e545e !important; } .link-success { - color: #2fb344; + color: #2fb344 !important; } .link-success:hover, .link-success:focus { - color: #268f36; + color: #268f36 !important; } .link-info { - color: #4299e1; + color: #4299e1 !important; } .link-info:hover, .link-info:focus { - color: #357ab4; + color: #357ab4 !important; } .link-warning { - color: #f76707; + color: #f76707 !important; } .link-warning:hover, .link-warning:focus { - color: #c65206; + color: #c65206 !important; } .link-danger { - color: #d63939; + color: #d63939 !important; } .link-danger:hover, .link-danger:focus { - color: #ab2e2e; + color: #ab2e2e !important; } .link-light { - color: #fafbfc; + color: #fafbfc !important; } .link-light:hover, .link-light:focus { - color: #fbfcfd; + color: #fbfcfd !important; } .link-dark { - color: #1e293b; + color: #1e293b !important; } .link-dark:hover, .link-dark:focus { - color: #18212f; + color: #18212f !important; } .link-muted { - color: #626976; + color: #626976 !important; } .link-muted:hover, .link-muted:focus { - color: #4e545e; + color: #4e545e !important; +} + +.link-blue { + color: #206bc4 !important; +} +.link-blue:hover, .link-blue:focus { + color: #1a569d !important; +} + +.link-azure { + color: #4299e1 !important; +} +.link-azure:hover, .link-azure:focus { + color: #357ab4 !important; +} + +.link-indigo { + color: #4263eb !important; +} +.link-indigo:hover, .link-indigo:focus { + color: #354fbc !important; +} + +.link-purple { + color: #ae3ec9 !important; +} +.link-purple:hover, .link-purple:focus { + color: #8b32a1 !important; +} + +.link-pink { + color: #d6336c !important; +} +.link-pink:hover, .link-pink:focus { + color: #ab2956 !important; +} + +.link-red { + color: #d63939 !important; +} +.link-red:hover, .link-red:focus { + color: #ab2e2e !important; +} + +.link-orange { + color: #f76707 !important; +} +.link-orange:hover, .link-orange:focus { + color: #c65206 !important; +} + +.link-yellow { + color: #f59f00 !important; +} +.link-yellow:hover, .link-yellow:focus { + color: #c47f00 !important; +} + +.link-lime { + color: #74b816 !important; +} +.link-lime:hover, .link-lime:focus { + color: #5d9312 !important; +} + +.link-green { + color: #2fb344 !important; +} +.link-green:hover, .link-green:focus { + color: #268f36 !important; +} + +.link-teal { + color: #0ca678 !important; +} +.link-teal:hover, .link-teal:focus { + color: #0a8560 !important; +} + +.link-cyan { + color: #17a2b8 !important; +} +.link-cyan:hover, .link-cyan:focus { + color: #128293 !important; +} + +.link-facebook { + color: #3b5998 !important; +} +.link-facebook:hover, .link-facebook:focus { + color: #2f477a !important; +} + +.link-twitter { + color: #1da1f2 !important; +} +.link-twitter:hover, .link-twitter:focus { + color: #1781c2 !important; +} + +.link-linkedin { + color: #0a66c2 !important; +} +.link-linkedin:hover, .link-linkedin:focus { + color: #08529b !important; +} + +.link-google { + color: #dc4e41 !important; +} +.link-google:hover, .link-google:focus { + color: #b03e34 !important; +} + +.link-youtube { + color: #ff0000 !important; +} +.link-youtube:hover, .link-youtube:focus { + color: #cc0000 !important; +} + +.link-vimeo { + color: #1ab7ea !important; +} +.link-vimeo:hover, .link-vimeo:focus { + color: #1592bb !important; +} + +.link-dribbble { + color: #ea4c89 !important; +} +.link-dribbble:hover, .link-dribbble:focus { + color: #bb3d6e !important; +} + +.link-github { + color: #181717 !important; +} +.link-github:hover, .link-github:focus { + color: #131212 !important; +} + +.link-instagram { + color: #e4405f !important; +} +.link-instagram:hover, .link-instagram:focus { + color: #b6334c !important; +} + +.link-pinterest { + color: #bd081c !important; +} +.link-pinterest:hover, .link-pinterest:focus { + color: #970616 !important; +} + +.link-vk { + color: #6383a8 !important; +} +.link-vk:hover, .link-vk:focus { + color: #4f6986 !important; +} + +.link-rss { + color: #ffa500 !important; +} +.link-rss:hover, .link-rss:focus { + color: #cc8400 !important; +} + +.link-flickr { + color: #0063dc !important; +} +.link-flickr:hover, .link-flickr:focus { + color: #004fb0 !important; +} + +.link-bitbucket { + color: #0052cc !important; +} +.link-bitbucket:hover, .link-bitbucket:focus { + color: #0042a3 !important; +} + +.link-tabler { + color: #206bc4 !important; +} +.link-tabler:hover, .link-tabler:focus { + color: #1a569d !important; } .ratio { @@ -6015,6 +8492,13 @@ textarea.form-control-lg { z-index: 1020; } +.sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; +} + @media (min-width: 576px) { .sticky-sm-top { position: -webkit-sticky; @@ -6022,6 +8506,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } @media (min-width: 768px) { .sticky-md-top { @@ -6030,6 +8520,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } @media (min-width: 992px) { .sticky-lg-top { @@ -6038,6 +8534,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } @media (min-width: 1200px) { .sticky-xl-top { @@ -6046,6 +8548,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } @media (min-width: 1400px) { .sticky-xxl-top { @@ -6054,6 +8562,12 @@ textarea.form-control-lg { top: 0; z-index: 1020; } + .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } } .hstack { display: flex; @@ -6103,7 +8617,7 @@ textarea.form-control-lg { align-self: stretch; width: 1px; min-height: 1em; - background-color: currentColor; + background-color: currentcolor; opacity: 0.16; } @@ -6377,63 +8891,228 @@ textarea.form-control-lg { } .border-primary { - border-color: #206bc4 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-primary-rgb), var(--tblr-border-opacity)) !important; } .border-secondary { - border-color: #626976 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-secondary-rgb), var(--tblr-border-opacity)) !important; } .border-success { - border-color: #2fb344 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-success-rgb), var(--tblr-border-opacity)) !important; } .border-info { - border-color: #4299e1 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-info-rgb), var(--tblr-border-opacity)) !important; } .border-warning { - border-color: #f76707 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-warning-rgb), var(--tblr-border-opacity)) !important; } .border-danger { - border-color: #d63939 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-danger-rgb), var(--tblr-border-opacity)) !important; } .border-light { - border-color: #fafbfc !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-light-rgb), var(--tblr-border-opacity)) !important; } .border-dark { - border-color: #1e293b !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-dark-rgb), var(--tblr-border-opacity)) !important; } .border-muted { - border-color: #626976 !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-muted-rgb), var(--tblr-border-opacity)) !important; +} + +.border-blue { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-blue-rgb), var(--tblr-border-opacity)) !important; +} + +.border-azure { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-azure-rgb), var(--tblr-border-opacity)) !important; +} + +.border-indigo { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-indigo-rgb), var(--tblr-border-opacity)) !important; +} + +.border-purple { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-purple-rgb), var(--tblr-border-opacity)) !important; +} + +.border-pink { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-pink-rgb), var(--tblr-border-opacity)) !important; +} + +.border-red { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-red-rgb), var(--tblr-border-opacity)) !important; +} + +.border-orange { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-orange-rgb), var(--tblr-border-opacity)) !important; +} + +.border-yellow { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-yellow-rgb), var(--tblr-border-opacity)) !important; +} + +.border-lime { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-lime-rgb), var(--tblr-border-opacity)) !important; +} + +.border-green { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-green-rgb), var(--tblr-border-opacity)) !important; +} + +.border-teal { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-teal-rgb), var(--tblr-border-opacity)) !important; +} + +.border-cyan { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-cyan-rgb), var(--tblr-border-opacity)) !important; +} + +.border-facebook { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-facebook-rgb), var(--tblr-border-opacity)) !important; +} + +.border-twitter { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-twitter-rgb), var(--tblr-border-opacity)) !important; +} + +.border-linkedin { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-linkedin-rgb), var(--tblr-border-opacity)) !important; +} + +.border-google { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-google-rgb), var(--tblr-border-opacity)) !important; +} + +.border-youtube { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-youtube-rgb), var(--tblr-border-opacity)) !important; +} + +.border-vimeo { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-vimeo-rgb), var(--tblr-border-opacity)) !important; +} + +.border-dribbble { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-dribbble-rgb), var(--tblr-border-opacity)) !important; +} + +.border-github { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-github-rgb), var(--tblr-border-opacity)) !important; +} + +.border-instagram { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-instagram-rgb), var(--tblr-border-opacity)) !important; +} + +.border-pinterest { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-pinterest-rgb), var(--tblr-border-opacity)) !important; +} + +.border-vk { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-vk-rgb), var(--tblr-border-opacity)) !important; +} + +.border-rss { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-rss-rgb), var(--tblr-border-opacity)) !important; +} + +.border-flickr { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-flickr-rgb), var(--tblr-border-opacity)) !important; +} + +.border-bitbucket { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-border-opacity)) !important; +} + +.border-tabler { + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-tabler-rgb), var(--tblr-border-opacity)) !important; } .border-white { - border-color: #ffffff !important; + --tblr-border-opacity: 1; + border-color: rgba(var(--tblr-white-rgb), var(--tblr-border-opacity)) !important; } .border-1 { - border-width: 1px !important; + --tblr-border-width: 1px; } .border-2 { - border-width: 2px !important; + --tblr-border-width: 2px; } .border-3 { - border-width: 3px !important; + --tblr-border-width: 3px; } .border-4 { - border-width: 4px !important; + --tblr-border-width: 4px; } .border-5 { - border-width: 5px !important; + --tblr-border-width: 5px; +} + +.border-opacity-10 { + --tblr-border-opacity: 0.1; +} + +.border-opacity-25 { + --tblr-border-opacity: 0.25; +} + +.border-opacity-50 { + --tblr-border-opacity: 0.5; +} + +.border-opacity-75 { + --tblr-border-opacity: 0.75; +} + +.border-opacity-100 { + --tblr-border-opacity: 1; } .w-0 { @@ -6464,10 +9143,18 @@ textarea.form-control-lg { width: 25% !important; } +.w-33 { + width: 33.33333% !important; +} + .w-50 { width: 50% !important; } +.w-66 { + width: 66.66666% !important; +} + .w-75 { width: 75% !important; } @@ -6520,10 +9207,18 @@ textarea.form-control-lg { height: 25% !important; } +.h-33 { + height: 33.33333% !important; +} + .h-50 { height: 50% !important; } +.h-66 { + height: 66.66666% !important; +} + .h-75 { height: 75% !important; } @@ -6596,30 +9291,6 @@ textarea.form-control-lg { flex-wrap: wrap-reverse !important; } -.gap-0 { - gap: 0 !important; -} - -.gap-1 { - gap: 0.25rem !important; -} - -.gap-2 { - gap: 0.5rem !important; -} - -.gap-3 { - gap: 1rem !important; -} - -.gap-4 { - gap: 2rem !important; -} - -.gap-5 { - gap: 4rem !important; -} - .justify-content-start { justify-content: flex-start !important; } @@ -7134,6 +9805,30 @@ textarea.form-control-lg { padding-right: 4rem !important; } +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 2rem !important; +} + +.gap-5 { + gap: 4rem !important; +} + .font-monospace { font-family: var(--tblr-font-monospace) !important; } @@ -7186,6 +9881,10 @@ textarea.form-control-lg { font-weight: 600 !important; } +.fw-semibold { + font-weight: 600 !important; +} + .fw-bolder { font-weight: bolder !important; } @@ -7294,6 +9993,141 @@ textarea.form-control-lg { color: #626976 !important; } +.text-blue { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-blue-rgb), var(--tblr-text-opacity)) !important; +} + +.text-azure { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-azure-rgb), var(--tblr-text-opacity)) !important; +} + +.text-indigo { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-indigo-rgb), var(--tblr-text-opacity)) !important; +} + +.text-purple { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-purple-rgb), var(--tblr-text-opacity)) !important; +} + +.text-pink { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-pink-rgb), var(--tblr-text-opacity)) !important; +} + +.text-red { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-red-rgb), var(--tblr-text-opacity)) !important; +} + +.text-orange { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-orange-rgb), var(--tblr-text-opacity)) !important; +} + +.text-yellow { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-yellow-rgb), var(--tblr-text-opacity)) !important; +} + +.text-lime { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-lime-rgb), var(--tblr-text-opacity)) !important; +} + +.text-green { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-green-rgb), var(--tblr-text-opacity)) !important; +} + +.text-teal { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-teal-rgb), var(--tblr-text-opacity)) !important; +} + +.text-cyan { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-cyan-rgb), var(--tblr-text-opacity)) !important; +} + +.text-facebook { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-facebook-rgb), var(--tblr-text-opacity)) !important; +} + +.text-twitter { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-twitter-rgb), var(--tblr-text-opacity)) !important; +} + +.text-linkedin { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-linkedin-rgb), var(--tblr-text-opacity)) !important; +} + +.text-google { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-google-rgb), var(--tblr-text-opacity)) !important; +} + +.text-youtube { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-youtube-rgb), var(--tblr-text-opacity)) !important; +} + +.text-vimeo { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-vimeo-rgb), var(--tblr-text-opacity)) !important; +} + +.text-dribbble { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-dribbble-rgb), var(--tblr-text-opacity)) !important; +} + +.text-github { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-github-rgb), var(--tblr-text-opacity)) !important; +} + +.text-instagram { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-instagram-rgb), var(--tblr-text-opacity)) !important; +} + +.text-pinterest { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-pinterest-rgb), var(--tblr-text-opacity)) !important; +} + +.text-vk { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-vk-rgb), var(--tblr-text-opacity)) !important; +} + +.text-rss { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-rss-rgb), var(--tblr-text-opacity)) !important; +} + +.text-flickr { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-flickr-rgb), var(--tblr-text-opacity)) !important; +} + +.text-bitbucket { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-text-opacity)) !important; +} + +.text-tabler { + --tblr-text-opacity: 1; + color: rgba(var(--tblr-tabler-rgb), var(--tblr-text-opacity)) !important; +} + .text-black { --tblr-text-opacity: 1; color: rgba(var(--tblr-black-rgb), var(--tblr-text-opacity)) !important; @@ -7385,6 +10219,141 @@ textarea.form-control-lg { background-color: rgba(var(--tblr-muted-rgb), var(--tblr-bg-opacity)) !important; } +.bg-blue { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-blue-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-azure { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-azure-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-indigo { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-indigo-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-purple { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-purple-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-pink { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-pink-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-red { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-red-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-orange { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-orange-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-yellow { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-yellow-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-lime { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-lime-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-green { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-green-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-teal { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-teal-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-cyan { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-cyan-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-facebook { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-facebook-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-twitter { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-twitter-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-linkedin { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-linkedin-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-google { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-google-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-youtube { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-youtube-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-vimeo { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-vimeo-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-dribbble { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-dribbble-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-github { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-github-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-instagram { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-instagram-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-pinterest { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-pinterest-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-vk { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-vk-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-rss { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-rss-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-flickr { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-flickr-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-bitbucket { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-bg-opacity)) !important; +} + +.bg-tabler { + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-tabler-rgb), var(--tblr-bg-opacity)) !important; +} + .bg-black { --tblr-bg-opacity: 1; background-color: rgba(var(--tblr-black-rgb), var(--tblr-bg-opacity)) !important; @@ -7458,7 +10427,7 @@ textarea.form-control-lg { } .rounded { - border-radius: 4px !important; + border-radius: var(--tblr-border-radius) !important; } .rounded-0 { @@ -7466,15 +10435,23 @@ textarea.form-control-lg { } .rounded-1 { - border-radius: 2px !important; + border-radius: var(--tblr-border-radius-sm) !important; } .rounded-2 { - border-radius: 4px !important; + border-radius: var(--tblr-border-radius) !important; } .rounded-3 { - border-radius: 8px !important; + border-radius: var(--tblr-border-radius-lg) !important; +} + +.rounded-4 { + border-radius: var(--tblr-border-radius-xl) !important; +} + +.rounded-5 { + border-radius: var(--tblr-border-radius-2xl) !important; } .rounded-circle { @@ -7482,27 +10459,27 @@ textarea.form-control-lg { } .rounded-pill { - border-radius: 100rem !important; + border-radius: var(--tblr-border-radius-pill) !important; } .rounded-top { - border-top-right-radius: 4px !important; - border-top-left-radius: 4px !important; + border-top-right-radius: var(--tblr-border-radius) !important; + border-top-left-radius: var(--tblr-border-radius) !important; } .rounded-end { - border-top-left-radius: 4px !important; - border-bottom-left-radius: 4px !important; + border-top-left-radius: var(--tblr-border-radius) !important; + border-bottom-left-radius: var(--tblr-border-radius) !important; } .rounded-bottom { - border-bottom-left-radius: 4px !important; - border-bottom-right-radius: 4px !important; + border-bottom-left-radius: var(--tblr-border-radius) !important; + border-bottom-right-radius: var(--tblr-border-radius) !important; } .rounded-start { - border-bottom-right-radius: 4px !important; - border-top-right-radius: 4px !important; + border-bottom-right-radius: var(--tblr-border-radius) !important; + border-top-right-radius: var(--tblr-border-radius) !important; } .visible { @@ -7661,663 +10638,505 @@ textarea.form-control-lg { .float-sm-start { float: right !important; } - .float-sm-end { float: left !important; } - .float-sm-none { float: none !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-block { display: block !important; } - .d-sm-grid { display: grid !important; } - .d-sm-table { display: table !important; } - .d-sm-table-row { display: table-row !important; } - .d-sm-table-cell { display: table-cell !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline-flex { display: inline-flex !important; } - .d-sm-none { display: none !important; } - .flex-sm-fill { flex: 1 1 auto !important; } - .flex-sm-row { flex-direction: row !important; } - .flex-sm-column { flex-direction: column !important; } - .flex-sm-row-reverse { flex-direction: row-reverse !important; } - .flex-sm-column-reverse { flex-direction: column-reverse !important; } - .flex-sm-grow-0 { flex-grow: 0 !important; } - .flex-sm-grow-1 { flex-grow: 1 !important; } - .flex-sm-shrink-0 { flex-shrink: 0 !important; } - .flex-sm-shrink-1 { flex-shrink: 1 !important; } - .flex-sm-wrap { flex-wrap: wrap !important; } - .flex-sm-nowrap { flex-wrap: nowrap !important; } - .flex-sm-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-sm-0 { - gap: 0 !important; - } - - .gap-sm-1 { - gap: 0.25rem !important; - } - - .gap-sm-2 { - gap: 0.5rem !important; - } - - .gap-sm-3 { - gap: 1rem !important; - } - - .gap-sm-4 { - gap: 2rem !important; - } - - .gap-sm-5 { - gap: 4rem !important; - } - .justify-content-sm-start { justify-content: flex-start !important; } - .justify-content-sm-end { justify-content: flex-end !important; } - .justify-content-sm-center { justify-content: center !important; } - .justify-content-sm-between { justify-content: space-between !important; } - .justify-content-sm-around { justify-content: space-around !important; } - .justify-content-sm-evenly { justify-content: space-evenly !important; } - .align-items-sm-start { align-items: flex-start !important; } - .align-items-sm-end { align-items: flex-end !important; } - .align-items-sm-center { align-items: center !important; } - .align-items-sm-baseline { align-items: baseline !important; } - .align-items-sm-stretch { align-items: stretch !important; } - .align-content-sm-start { align-content: flex-start !important; } - .align-content-sm-end { align-content: flex-end !important; } - .align-content-sm-center { align-content: center !important; } - .align-content-sm-between { align-content: space-between !important; } - .align-content-sm-around { align-content: space-around !important; } - .align-content-sm-stretch { align-content: stretch !important; } - .align-self-sm-auto { align-self: auto !important; } - .align-self-sm-start { align-self: flex-start !important; } - .align-self-sm-end { align-self: flex-end !important; } - .align-self-sm-center { align-self: center !important; } - .align-self-sm-baseline { align-self: baseline !important; } - .align-self-sm-stretch { align-self: stretch !important; } - .order-sm-first { order: -1 !important; } - .order-sm-0 { order: 0 !important; } - .order-sm-1 { order: 1 !important; } - .order-sm-2 { order: 2 !important; } - .order-sm-3 { order: 3 !important; } - .order-sm-4 { order: 4 !important; } - .order-sm-5 { order: 5 !important; } - .order-sm-last { order: 6 !important; } - .m-sm-0 { margin: 0 !important; } - .m-sm-1 { margin: 0.25rem !important; } - .m-sm-2 { margin: 0.5rem !important; } - .m-sm-3 { margin: 1rem !important; } - .m-sm-4 { margin: 2rem !important; } - .m-sm-5 { margin: 4rem !important; } - .m-sm-auto { margin: auto !important; } - .mx-sm-0 { margin-left: 0 !important; margin-right: 0 !important; } - .mx-sm-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; } - .mx-sm-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; } - .mx-sm-3 { margin-left: 1rem !important; margin-right: 1rem !important; } - .mx-sm-4 { margin-left: 2rem !important; margin-right: 2rem !important; } - .mx-sm-5 { margin-left: 4rem !important; margin-right: 4rem !important; } - .mx-sm-auto { margin-left: auto !important; margin-right: auto !important; } - .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-sm-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-sm-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-sm-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-sm-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-sm-0 { margin-top: 0 !important; } - .mt-sm-1 { margin-top: 0.25rem !important; } - .mt-sm-2 { margin-top: 0.5rem !important; } - .mt-sm-3 { margin-top: 1rem !important; } - .mt-sm-4 { margin-top: 2rem !important; } - .mt-sm-5 { margin-top: 4rem !important; } - .mt-sm-auto { margin-top: auto !important; } - .me-sm-0 { margin-left: 0 !important; } - .me-sm-1 { margin-left: 0.25rem !important; } - .me-sm-2 { margin-left: 0.5rem !important; } - .me-sm-3 { margin-left: 1rem !important; } - .me-sm-4 { margin-left: 2rem !important; } - .me-sm-5 { margin-left: 4rem !important; } - .me-sm-auto { margin-left: auto !important; } - .mb-sm-0 { margin-bottom: 0 !important; } - .mb-sm-1 { margin-bottom: 0.25rem !important; } - .mb-sm-2 { margin-bottom: 0.5rem !important; } - .mb-sm-3 { margin-bottom: 1rem !important; } - .mb-sm-4 { margin-bottom: 2rem !important; } - .mb-sm-5 { margin-bottom: 4rem !important; } - .mb-sm-auto { margin-bottom: auto !important; } - .ms-sm-0 { margin-right: 0 !important; } - .ms-sm-1 { margin-right: 0.25rem !important; } - .ms-sm-2 { margin-right: 0.5rem !important; } - .ms-sm-3 { margin-right: 1rem !important; } - .ms-sm-4 { margin-right: 2rem !important; } - .ms-sm-5 { margin-right: 4rem !important; } - .ms-sm-auto { margin-right: auto !important; } - .p-sm-0 { padding: 0 !important; } - .p-sm-1 { padding: 0.25rem !important; } - .p-sm-2 { padding: 0.5rem !important; } - .p-sm-3 { padding: 1rem !important; } - .p-sm-4 { padding: 2rem !important; } - .p-sm-5 { padding: 4rem !important; } - .px-sm-0 { padding-left: 0 !important; padding-right: 0 !important; } - .px-sm-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; } - .px-sm-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; } - .px-sm-3 { padding-left: 1rem !important; padding-right: 1rem !important; } - .px-sm-4 { padding-left: 2rem !important; padding-right: 2rem !important; } - .px-sm-5 { padding-left: 4rem !important; padding-right: 4rem !important; } - .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-sm-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-sm-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-sm-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-sm-0 { padding-top: 0 !important; } - .pt-sm-1 { padding-top: 0.25rem !important; } - .pt-sm-2 { padding-top: 0.5rem !important; } - .pt-sm-3 { padding-top: 1rem !important; } - .pt-sm-4 { padding-top: 2rem !important; } - .pt-sm-5 { padding-top: 4rem !important; } - .pe-sm-0 { padding-left: 0 !important; } - .pe-sm-1 { padding-left: 0.25rem !important; } - .pe-sm-2 { padding-left: 0.5rem !important; } - .pe-sm-3 { padding-left: 1rem !important; } - .pe-sm-4 { padding-left: 2rem !important; } - .pe-sm-5 { padding-left: 4rem !important; } - .pb-sm-0 { padding-bottom: 0 !important; } - .pb-sm-1 { padding-bottom: 0.25rem !important; } - .pb-sm-2 { padding-bottom: 0.5rem !important; } - .pb-sm-3 { padding-bottom: 1rem !important; } - .pb-sm-4 { padding-bottom: 2rem !important; } - .pb-sm-5 { padding-bottom: 4rem !important; } - .ps-sm-0 { padding-right: 0 !important; } - .ps-sm-1 { padding-right: 0.25rem !important; } - .ps-sm-2 { padding-right: 0.5rem !important; } - .ps-sm-3 { padding-right: 1rem !important; } - .ps-sm-4 { padding-right: 2rem !important; } - .ps-sm-5 { padding-right: 4rem !important; } - + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 2rem !important; + } + .gap-sm-5 { + gap: 4rem !important; + } .text-sm-start { text-align: right !important; } - .text-sm-end { text-align: left !important; } - .text-sm-center { text-align: center !important; } - .columns-sm-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-sm-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-sm-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -8327,663 +11146,505 @@ textarea.form-control-lg { .float-md-start { float: right !important; } - .float-md-end { float: left !important; } - .float-md-none { float: none !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-block { display: block !important; } - .d-md-grid { display: grid !important; } - .d-md-table { display: table !important; } - .d-md-table-row { display: table-row !important; } - .d-md-table-cell { display: table-cell !important; } - .d-md-flex { display: flex !important; } - .d-md-inline-flex { display: inline-flex !important; } - .d-md-none { display: none !important; } - .flex-md-fill { flex: 1 1 auto !important; } - .flex-md-row { flex-direction: row !important; } - .flex-md-column { flex-direction: column !important; } - .flex-md-row-reverse { flex-direction: row-reverse !important; } - .flex-md-column-reverse { flex-direction: column-reverse !important; } - .flex-md-grow-0 { flex-grow: 0 !important; } - .flex-md-grow-1 { flex-grow: 1 !important; } - .flex-md-shrink-0 { flex-shrink: 0 !important; } - .flex-md-shrink-1 { flex-shrink: 1 !important; } - .flex-md-wrap { flex-wrap: wrap !important; } - .flex-md-nowrap { flex-wrap: nowrap !important; } - .flex-md-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-md-0 { - gap: 0 !important; - } - - .gap-md-1 { - gap: 0.25rem !important; - } - - .gap-md-2 { - gap: 0.5rem !important; - } - - .gap-md-3 { - gap: 1rem !important; - } - - .gap-md-4 { - gap: 2rem !important; - } - - .gap-md-5 { - gap: 4rem !important; - } - .justify-content-md-start { justify-content: flex-start !important; } - .justify-content-md-end { justify-content: flex-end !important; } - .justify-content-md-center { justify-content: center !important; } - .justify-content-md-between { justify-content: space-between !important; } - .justify-content-md-around { justify-content: space-around !important; } - .justify-content-md-evenly { justify-content: space-evenly !important; } - .align-items-md-start { align-items: flex-start !important; } - .align-items-md-end { align-items: flex-end !important; } - .align-items-md-center { align-items: center !important; } - .align-items-md-baseline { align-items: baseline !important; } - .align-items-md-stretch { align-items: stretch !important; } - .align-content-md-start { align-content: flex-start !important; } - .align-content-md-end { align-content: flex-end !important; } - .align-content-md-center { align-content: center !important; } - .align-content-md-between { align-content: space-between !important; } - .align-content-md-around { align-content: space-around !important; } - .align-content-md-stretch { align-content: stretch !important; } - .align-self-md-auto { align-self: auto !important; } - .align-self-md-start { align-self: flex-start !important; } - .align-self-md-end { align-self: flex-end !important; } - .align-self-md-center { align-self: center !important; } - .align-self-md-baseline { align-self: baseline !important; } - .align-self-md-stretch { align-self: stretch !important; } - .order-md-first { order: -1 !important; } - .order-md-0 { order: 0 !important; } - .order-md-1 { order: 1 !important; } - .order-md-2 { order: 2 !important; } - .order-md-3 { order: 3 !important; } - .order-md-4 { order: 4 !important; } - .order-md-5 { order: 5 !important; } - .order-md-last { order: 6 !important; } - .m-md-0 { margin: 0 !important; } - .m-md-1 { margin: 0.25rem !important; } - .m-md-2 { margin: 0.5rem !important; } - .m-md-3 { margin: 1rem !important; } - .m-md-4 { margin: 2rem !important; } - .m-md-5 { margin: 4rem !important; } - .m-md-auto { margin: auto !important; } - .mx-md-0 { margin-left: 0 !important; margin-right: 0 !important; } - .mx-md-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; } - .mx-md-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; } - .mx-md-3 { margin-left: 1rem !important; margin-right: 1rem !important; } - .mx-md-4 { margin-left: 2rem !important; margin-right: 2rem !important; } - .mx-md-5 { margin-left: 4rem !important; margin-right: 4rem !important; } - .mx-md-auto { margin-left: auto !important; margin-right: auto !important; } - .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-md-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-md-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-md-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-md-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-md-0 { margin-top: 0 !important; } - .mt-md-1 { margin-top: 0.25rem !important; } - .mt-md-2 { margin-top: 0.5rem !important; } - .mt-md-3 { margin-top: 1rem !important; } - .mt-md-4 { margin-top: 2rem !important; } - .mt-md-5 { margin-top: 4rem !important; } - .mt-md-auto { margin-top: auto !important; } - .me-md-0 { margin-left: 0 !important; } - .me-md-1 { margin-left: 0.25rem !important; } - .me-md-2 { margin-left: 0.5rem !important; } - .me-md-3 { margin-left: 1rem !important; } - .me-md-4 { margin-left: 2rem !important; } - .me-md-5 { margin-left: 4rem !important; } - .me-md-auto { margin-left: auto !important; } - .mb-md-0 { margin-bottom: 0 !important; } - .mb-md-1 { margin-bottom: 0.25rem !important; } - .mb-md-2 { margin-bottom: 0.5rem !important; } - .mb-md-3 { margin-bottom: 1rem !important; } - .mb-md-4 { margin-bottom: 2rem !important; } - .mb-md-5 { margin-bottom: 4rem !important; } - .mb-md-auto { margin-bottom: auto !important; } - .ms-md-0 { margin-right: 0 !important; } - .ms-md-1 { margin-right: 0.25rem !important; } - .ms-md-2 { margin-right: 0.5rem !important; } - .ms-md-3 { margin-right: 1rem !important; } - .ms-md-4 { margin-right: 2rem !important; } - .ms-md-5 { margin-right: 4rem !important; } - .ms-md-auto { margin-right: auto !important; } - .p-md-0 { padding: 0 !important; } - .p-md-1 { padding: 0.25rem !important; } - .p-md-2 { padding: 0.5rem !important; } - .p-md-3 { padding: 1rem !important; } - .p-md-4 { padding: 2rem !important; } - .p-md-5 { padding: 4rem !important; } - .px-md-0 { padding-left: 0 !important; padding-right: 0 !important; } - .px-md-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; } - .px-md-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; } - .px-md-3 { padding-left: 1rem !important; padding-right: 1rem !important; } - .px-md-4 { padding-left: 2rem !important; padding-right: 2rem !important; } - .px-md-5 { padding-left: 4rem !important; padding-right: 4rem !important; } - .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-md-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-md-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-md-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-md-0 { padding-top: 0 !important; } - .pt-md-1 { padding-top: 0.25rem !important; } - .pt-md-2 { padding-top: 0.5rem !important; } - .pt-md-3 { padding-top: 1rem !important; } - .pt-md-4 { padding-top: 2rem !important; } - .pt-md-5 { padding-top: 4rem !important; } - .pe-md-0 { padding-left: 0 !important; } - .pe-md-1 { padding-left: 0.25rem !important; } - .pe-md-2 { padding-left: 0.5rem !important; } - .pe-md-3 { padding-left: 1rem !important; } - .pe-md-4 { padding-left: 2rem !important; } - .pe-md-5 { padding-left: 4rem !important; } - .pb-md-0 { padding-bottom: 0 !important; } - .pb-md-1 { padding-bottom: 0.25rem !important; } - .pb-md-2 { padding-bottom: 0.5rem !important; } - .pb-md-3 { padding-bottom: 1rem !important; } - .pb-md-4 { padding-bottom: 2rem !important; } - .pb-md-5 { padding-bottom: 4rem !important; } - .ps-md-0 { padding-right: 0 !important; } - .ps-md-1 { padding-right: 0.25rem !important; } - .ps-md-2 { padding-right: 0.5rem !important; } - .ps-md-3 { padding-right: 1rem !important; } - .ps-md-4 { padding-right: 2rem !important; } - .ps-md-5 { padding-right: 4rem !important; } - + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 2rem !important; + } + .gap-md-5 { + gap: 4rem !important; + } .text-md-start { text-align: right !important; } - .text-md-end { text-align: left !important; } - .text-md-center { text-align: center !important; } - .columns-md-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-md-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-md-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -8993,663 +11654,505 @@ textarea.form-control-lg { .float-lg-start { float: right !important; } - .float-lg-end { float: left !important; } - .float-lg-none { float: none !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-block { display: block !important; } - .d-lg-grid { display: grid !important; } - .d-lg-table { display: table !important; } - .d-lg-table-row { display: table-row !important; } - .d-lg-table-cell { display: table-cell !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline-flex { display: inline-flex !important; } - .d-lg-none { display: none !important; } - .flex-lg-fill { flex: 1 1 auto !important; } - .flex-lg-row { flex-direction: row !important; } - .flex-lg-column { flex-direction: column !important; } - .flex-lg-row-reverse { flex-direction: row-reverse !important; } - .flex-lg-column-reverse { flex-direction: column-reverse !important; } - .flex-lg-grow-0 { flex-grow: 0 !important; } - .flex-lg-grow-1 { flex-grow: 1 !important; } - .flex-lg-shrink-0 { flex-shrink: 0 !important; } - .flex-lg-shrink-1 { flex-shrink: 1 !important; } - .flex-lg-wrap { flex-wrap: wrap !important; } - .flex-lg-nowrap { flex-wrap: nowrap !important; } - .flex-lg-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-lg-0 { - gap: 0 !important; - } - - .gap-lg-1 { - gap: 0.25rem !important; - } - - .gap-lg-2 { - gap: 0.5rem !important; - } - - .gap-lg-3 { - gap: 1rem !important; - } - - .gap-lg-4 { - gap: 2rem !important; - } - - .gap-lg-5 { - gap: 4rem !important; - } - .justify-content-lg-start { justify-content: flex-start !important; } - .justify-content-lg-end { justify-content: flex-end !important; } - .justify-content-lg-center { justify-content: center !important; } - .justify-content-lg-between { justify-content: space-between !important; } - .justify-content-lg-around { justify-content: space-around !important; } - .justify-content-lg-evenly { justify-content: space-evenly !important; } - .align-items-lg-start { align-items: flex-start !important; } - .align-items-lg-end { align-items: flex-end !important; } - .align-items-lg-center { align-items: center !important; } - .align-items-lg-baseline { align-items: baseline !important; } - .align-items-lg-stretch { align-items: stretch !important; } - .align-content-lg-start { align-content: flex-start !important; } - .align-content-lg-end { align-content: flex-end !important; } - .align-content-lg-center { align-content: center !important; } - .align-content-lg-between { align-content: space-between !important; } - .align-content-lg-around { align-content: space-around !important; } - .align-content-lg-stretch { align-content: stretch !important; } - .align-self-lg-auto { align-self: auto !important; } - .align-self-lg-start { align-self: flex-start !important; } - .align-self-lg-end { align-self: flex-end !important; } - .align-self-lg-center { align-self: center !important; } - .align-self-lg-baseline { align-self: baseline !important; } - .align-self-lg-stretch { align-self: stretch !important; } - .order-lg-first { order: -1 !important; } - .order-lg-0 { order: 0 !important; } - .order-lg-1 { order: 1 !important; } - .order-lg-2 { order: 2 !important; } - .order-lg-3 { order: 3 !important; } - .order-lg-4 { order: 4 !important; } - .order-lg-5 { order: 5 !important; } - .order-lg-last { order: 6 !important; } - .m-lg-0 { margin: 0 !important; } - .m-lg-1 { margin: 0.25rem !important; } - .m-lg-2 { margin: 0.5rem !important; } - .m-lg-3 { margin: 1rem !important; } - .m-lg-4 { margin: 2rem !important; } - .m-lg-5 { margin: 4rem !important; } - .m-lg-auto { margin: auto !important; } - .mx-lg-0 { margin-left: 0 !important; margin-right: 0 !important; } - .mx-lg-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; } - .mx-lg-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; } - .mx-lg-3 { margin-left: 1rem !important; margin-right: 1rem !important; } - .mx-lg-4 { margin-left: 2rem !important; margin-right: 2rem !important; } - .mx-lg-5 { margin-left: 4rem !important; margin-right: 4rem !important; } - .mx-lg-auto { margin-left: auto !important; margin-right: auto !important; } - .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-lg-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-lg-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-lg-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-lg-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-lg-0 { margin-top: 0 !important; } - .mt-lg-1 { margin-top: 0.25rem !important; } - .mt-lg-2 { margin-top: 0.5rem !important; } - .mt-lg-3 { margin-top: 1rem !important; } - .mt-lg-4 { margin-top: 2rem !important; } - .mt-lg-5 { margin-top: 4rem !important; } - .mt-lg-auto { margin-top: auto !important; } - .me-lg-0 { margin-left: 0 !important; } - .me-lg-1 { margin-left: 0.25rem !important; } - .me-lg-2 { margin-left: 0.5rem !important; } - .me-lg-3 { margin-left: 1rem !important; } - .me-lg-4 { margin-left: 2rem !important; } - .me-lg-5 { margin-left: 4rem !important; } - .me-lg-auto { margin-left: auto !important; } - .mb-lg-0 { margin-bottom: 0 !important; } - .mb-lg-1 { margin-bottom: 0.25rem !important; } - .mb-lg-2 { margin-bottom: 0.5rem !important; } - .mb-lg-3 { margin-bottom: 1rem !important; } - .mb-lg-4 { margin-bottom: 2rem !important; } - .mb-lg-5 { margin-bottom: 4rem !important; } - .mb-lg-auto { margin-bottom: auto !important; } - .ms-lg-0 { margin-right: 0 !important; } - .ms-lg-1 { margin-right: 0.25rem !important; } - .ms-lg-2 { margin-right: 0.5rem !important; } - .ms-lg-3 { margin-right: 1rem !important; } - .ms-lg-4 { margin-right: 2rem !important; } - .ms-lg-5 { margin-right: 4rem !important; } - .ms-lg-auto { margin-right: auto !important; } - .p-lg-0 { padding: 0 !important; } - .p-lg-1 { padding: 0.25rem !important; } - .p-lg-2 { padding: 0.5rem !important; } - .p-lg-3 { padding: 1rem !important; } - .p-lg-4 { padding: 2rem !important; } - .p-lg-5 { padding: 4rem !important; } - .px-lg-0 { padding-left: 0 !important; padding-right: 0 !important; } - .px-lg-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; } - .px-lg-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; } - .px-lg-3 { padding-left: 1rem !important; padding-right: 1rem !important; } - .px-lg-4 { padding-left: 2rem !important; padding-right: 2rem !important; } - .px-lg-5 { padding-left: 4rem !important; padding-right: 4rem !important; } - .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-lg-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-lg-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-lg-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-lg-0 { padding-top: 0 !important; } - .pt-lg-1 { padding-top: 0.25rem !important; } - .pt-lg-2 { padding-top: 0.5rem !important; } - .pt-lg-3 { padding-top: 1rem !important; } - .pt-lg-4 { padding-top: 2rem !important; } - .pt-lg-5 { padding-top: 4rem !important; } - .pe-lg-0 { padding-left: 0 !important; } - .pe-lg-1 { padding-left: 0.25rem !important; } - .pe-lg-2 { padding-left: 0.5rem !important; } - .pe-lg-3 { padding-left: 1rem !important; } - .pe-lg-4 { padding-left: 2rem !important; } - .pe-lg-5 { padding-left: 4rem !important; } - .pb-lg-0 { padding-bottom: 0 !important; } - .pb-lg-1 { padding-bottom: 0.25rem !important; } - .pb-lg-2 { padding-bottom: 0.5rem !important; } - .pb-lg-3 { padding-bottom: 1rem !important; } - .pb-lg-4 { padding-bottom: 2rem !important; } - .pb-lg-5 { padding-bottom: 4rem !important; } - .ps-lg-0 { padding-right: 0 !important; } - .ps-lg-1 { padding-right: 0.25rem !important; } - .ps-lg-2 { padding-right: 0.5rem !important; } - .ps-lg-3 { padding-right: 1rem !important; } - .ps-lg-4 { padding-right: 2rem !important; } - .ps-lg-5 { padding-right: 4rem !important; } - + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 2rem !important; + } + .gap-lg-5 { + gap: 4rem !important; + } .text-lg-start { text-align: right !important; } - .text-lg-end { text-align: left !important; } - .text-lg-center { text-align: center !important; } - .columns-lg-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-lg-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-lg-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -9659,663 +12162,505 @@ textarea.form-control-lg { .float-xl-start { float: right !important; } - .float-xl-end { float: left !important; } - .float-xl-none { float: none !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-block { display: block !important; } - .d-xl-grid { display: grid !important; } - .d-xl-table { display: table !important; } - .d-xl-table-row { display: table-row !important; } - .d-xl-table-cell { display: table-cell !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline-flex { display: inline-flex !important; } - .d-xl-none { display: none !important; } - .flex-xl-fill { flex: 1 1 auto !important; } - .flex-xl-row { flex-direction: row !important; } - .flex-xl-column { flex-direction: column !important; } - .flex-xl-row-reverse { flex-direction: row-reverse !important; } - .flex-xl-column-reverse { flex-direction: column-reverse !important; } - .flex-xl-grow-0 { flex-grow: 0 !important; } - .flex-xl-grow-1 { flex-grow: 1 !important; } - .flex-xl-shrink-0 { flex-shrink: 0 !important; } - .flex-xl-shrink-1 { flex-shrink: 1 !important; } - .flex-xl-wrap { flex-wrap: wrap !important; } - .flex-xl-nowrap { flex-wrap: nowrap !important; } - .flex-xl-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-xl-0 { - gap: 0 !important; - } - - .gap-xl-1 { - gap: 0.25rem !important; - } - - .gap-xl-2 { - gap: 0.5rem !important; - } - - .gap-xl-3 { - gap: 1rem !important; - } - - .gap-xl-4 { - gap: 2rem !important; - } - - .gap-xl-5 { - gap: 4rem !important; - } - .justify-content-xl-start { justify-content: flex-start !important; } - .justify-content-xl-end { justify-content: flex-end !important; } - .justify-content-xl-center { justify-content: center !important; } - .justify-content-xl-between { justify-content: space-between !important; } - .justify-content-xl-around { justify-content: space-around !important; } - .justify-content-xl-evenly { justify-content: space-evenly !important; } - .align-items-xl-start { align-items: flex-start !important; } - .align-items-xl-end { align-items: flex-end !important; } - .align-items-xl-center { align-items: center !important; } - .align-items-xl-baseline { align-items: baseline !important; } - .align-items-xl-stretch { align-items: stretch !important; } - .align-content-xl-start { align-content: flex-start !important; } - .align-content-xl-end { align-content: flex-end !important; } - .align-content-xl-center { align-content: center !important; } - .align-content-xl-between { align-content: space-between !important; } - .align-content-xl-around { align-content: space-around !important; } - .align-content-xl-stretch { align-content: stretch !important; } - .align-self-xl-auto { align-self: auto !important; } - .align-self-xl-start { align-self: flex-start !important; } - .align-self-xl-end { align-self: flex-end !important; } - .align-self-xl-center { align-self: center !important; } - .align-self-xl-baseline { align-self: baseline !important; } - .align-self-xl-stretch { align-self: stretch !important; } - .order-xl-first { order: -1 !important; } - .order-xl-0 { order: 0 !important; } - .order-xl-1 { order: 1 !important; } - .order-xl-2 { order: 2 !important; } - .order-xl-3 { order: 3 !important; } - .order-xl-4 { order: 4 !important; } - .order-xl-5 { order: 5 !important; } - .order-xl-last { order: 6 !important; } - .m-xl-0 { margin: 0 !important; } - .m-xl-1 { margin: 0.25rem !important; } - .m-xl-2 { margin: 0.5rem !important; } - .m-xl-3 { margin: 1rem !important; } - .m-xl-4 { margin: 2rem !important; } - .m-xl-5 { margin: 4rem !important; } - .m-xl-auto { margin: auto !important; } - .mx-xl-0 { margin-left: 0 !important; margin-right: 0 !important; } - .mx-xl-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; } - .mx-xl-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; } - .mx-xl-3 { margin-left: 1rem !important; margin-right: 1rem !important; } - .mx-xl-4 { margin-left: 2rem !important; margin-right: 2rem !important; } - .mx-xl-5 { margin-left: 4rem !important; margin-right: 4rem !important; } - .mx-xl-auto { margin-left: auto !important; margin-right: auto !important; } - .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-xl-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-xl-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-xl-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-xl-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-xl-0 { margin-top: 0 !important; } - .mt-xl-1 { margin-top: 0.25rem !important; } - .mt-xl-2 { margin-top: 0.5rem !important; } - .mt-xl-3 { margin-top: 1rem !important; } - .mt-xl-4 { margin-top: 2rem !important; } - .mt-xl-5 { margin-top: 4rem !important; } - .mt-xl-auto { margin-top: auto !important; } - .me-xl-0 { margin-left: 0 !important; } - .me-xl-1 { margin-left: 0.25rem !important; } - .me-xl-2 { margin-left: 0.5rem !important; } - .me-xl-3 { margin-left: 1rem !important; } - .me-xl-4 { margin-left: 2rem !important; } - .me-xl-5 { margin-left: 4rem !important; } - .me-xl-auto { margin-left: auto !important; } - .mb-xl-0 { margin-bottom: 0 !important; } - .mb-xl-1 { margin-bottom: 0.25rem !important; } - .mb-xl-2 { margin-bottom: 0.5rem !important; } - .mb-xl-3 { margin-bottom: 1rem !important; } - .mb-xl-4 { margin-bottom: 2rem !important; } - .mb-xl-5 { margin-bottom: 4rem !important; } - .mb-xl-auto { margin-bottom: auto !important; } - .ms-xl-0 { margin-right: 0 !important; } - .ms-xl-1 { margin-right: 0.25rem !important; } - .ms-xl-2 { margin-right: 0.5rem !important; } - .ms-xl-3 { margin-right: 1rem !important; } - .ms-xl-4 { margin-right: 2rem !important; } - .ms-xl-5 { margin-right: 4rem !important; } - .ms-xl-auto { margin-right: auto !important; } - .p-xl-0 { padding: 0 !important; } - .p-xl-1 { padding: 0.25rem !important; } - .p-xl-2 { padding: 0.5rem !important; } - .p-xl-3 { padding: 1rem !important; } - .p-xl-4 { padding: 2rem !important; } - .p-xl-5 { padding: 4rem !important; } - .px-xl-0 { padding-left: 0 !important; padding-right: 0 !important; } - .px-xl-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; } - .px-xl-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; } - .px-xl-3 { padding-left: 1rem !important; padding-right: 1rem !important; } - .px-xl-4 { padding-left: 2rem !important; padding-right: 2rem !important; } - .px-xl-5 { padding-left: 4rem !important; padding-right: 4rem !important; } - .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-xl-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-xl-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-xl-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-xl-0 { padding-top: 0 !important; } - .pt-xl-1 { padding-top: 0.25rem !important; } - .pt-xl-2 { padding-top: 0.5rem !important; } - .pt-xl-3 { padding-top: 1rem !important; } - .pt-xl-4 { padding-top: 2rem !important; } - .pt-xl-5 { padding-top: 4rem !important; } - .pe-xl-0 { padding-left: 0 !important; } - .pe-xl-1 { padding-left: 0.25rem !important; } - .pe-xl-2 { padding-left: 0.5rem !important; } - .pe-xl-3 { padding-left: 1rem !important; } - .pe-xl-4 { padding-left: 2rem !important; } - .pe-xl-5 { padding-left: 4rem !important; } - .pb-xl-0 { padding-bottom: 0 !important; } - .pb-xl-1 { padding-bottom: 0.25rem !important; } - .pb-xl-2 { padding-bottom: 0.5rem !important; } - .pb-xl-3 { padding-bottom: 1rem !important; } - .pb-xl-4 { padding-bottom: 2rem !important; } - .pb-xl-5 { padding-bottom: 4rem !important; } - .ps-xl-0 { padding-right: 0 !important; } - .ps-xl-1 { padding-right: 0.25rem !important; } - .ps-xl-2 { padding-right: 0.5rem !important; } - .ps-xl-3 { padding-right: 1rem !important; } - .ps-xl-4 { padding-right: 2rem !important; } - .ps-xl-5 { padding-right: 4rem !important; } - + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 2rem !important; + } + .gap-xl-5 { + gap: 4rem !important; + } .text-xl-start { text-align: right !important; } - .text-xl-end { text-align: left !important; } - .text-xl-center { text-align: center !important; } - .columns-xl-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-xl-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-xl-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -10325,663 +12670,505 @@ textarea.form-control-lg { .float-xxl-start { float: right !important; } - .float-xxl-end { float: left !important; } - .float-xxl-none { float: none !important; } - .d-xxl-inline { display: inline !important; } - .d-xxl-inline-block { display: inline-block !important; } - .d-xxl-block { display: block !important; } - .d-xxl-grid { display: grid !important; } - .d-xxl-table { display: table !important; } - .d-xxl-table-row { display: table-row !important; } - .d-xxl-table-cell { display: table-cell !important; } - .d-xxl-flex { display: flex !important; } - .d-xxl-inline-flex { display: inline-flex !important; } - .d-xxl-none { display: none !important; } - .flex-xxl-fill { flex: 1 1 auto !important; } - .flex-xxl-row { flex-direction: row !important; } - .flex-xxl-column { flex-direction: column !important; } - .flex-xxl-row-reverse { flex-direction: row-reverse !important; } - .flex-xxl-column-reverse { flex-direction: column-reverse !important; } - .flex-xxl-grow-0 { flex-grow: 0 !important; } - .flex-xxl-grow-1 { flex-grow: 1 !important; } - .flex-xxl-shrink-0 { flex-shrink: 0 !important; } - .flex-xxl-shrink-1 { flex-shrink: 1 !important; } - .flex-xxl-wrap { flex-wrap: wrap !important; } - .flex-xxl-nowrap { flex-wrap: nowrap !important; } - .flex-xxl-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .gap-xxl-0 { - gap: 0 !important; - } - - .gap-xxl-1 { - gap: 0.25rem !important; - } - - .gap-xxl-2 { - gap: 0.5rem !important; - } - - .gap-xxl-3 { - gap: 1rem !important; - } - - .gap-xxl-4 { - gap: 2rem !important; - } - - .gap-xxl-5 { - gap: 4rem !important; - } - .justify-content-xxl-start { justify-content: flex-start !important; } - .justify-content-xxl-end { justify-content: flex-end !important; } - .justify-content-xxl-center { justify-content: center !important; } - .justify-content-xxl-between { justify-content: space-between !important; } - .justify-content-xxl-around { justify-content: space-around !important; } - .justify-content-xxl-evenly { justify-content: space-evenly !important; } - .align-items-xxl-start { align-items: flex-start !important; } - .align-items-xxl-end { align-items: flex-end !important; } - .align-items-xxl-center { align-items: center !important; } - .align-items-xxl-baseline { align-items: baseline !important; } - .align-items-xxl-stretch { align-items: stretch !important; } - .align-content-xxl-start { align-content: flex-start !important; } - .align-content-xxl-end { align-content: flex-end !important; } - .align-content-xxl-center { align-content: center !important; } - .align-content-xxl-between { align-content: space-between !important; } - .align-content-xxl-around { align-content: space-around !important; } - .align-content-xxl-stretch { align-content: stretch !important; } - .align-self-xxl-auto { align-self: auto !important; } - .align-self-xxl-start { align-self: flex-start !important; } - .align-self-xxl-end { align-self: flex-end !important; } - .align-self-xxl-center { align-self: center !important; } - .align-self-xxl-baseline { align-self: baseline !important; } - .align-self-xxl-stretch { align-self: stretch !important; } - .order-xxl-first { order: -1 !important; } - .order-xxl-0 { order: 0 !important; } - .order-xxl-1 { order: 1 !important; } - .order-xxl-2 { order: 2 !important; } - .order-xxl-3 { order: 3 !important; } - .order-xxl-4 { order: 4 !important; } - .order-xxl-5 { order: 5 !important; } - .order-xxl-last { order: 6 !important; } - .m-xxl-0 { margin: 0 !important; } - .m-xxl-1 { margin: 0.25rem !important; } - .m-xxl-2 { margin: 0.5rem !important; } - .m-xxl-3 { margin: 1rem !important; } - .m-xxl-4 { margin: 2rem !important; } - .m-xxl-5 { margin: 4rem !important; } - .m-xxl-auto { margin: auto !important; } - .mx-xxl-0 { margin-left: 0 !important; margin-right: 0 !important; } - .mx-xxl-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; } - .mx-xxl-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; } - .mx-xxl-3 { margin-left: 1rem !important; margin-right: 1rem !important; } - .mx-xxl-4 { margin-left: 2rem !important; margin-right: 2rem !important; } - .mx-xxl-5 { margin-left: 4rem !important; margin-right: 4rem !important; } - .mx-xxl-auto { margin-left: auto !important; margin-right: auto !important; } - .my-xxl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .my-xxl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .my-xxl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .my-xxl-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .my-xxl-4 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .my-xxl-5 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .my-xxl-auto { margin-top: auto !important; margin-bottom: auto !important; } - .mt-xxl-0 { margin-top: 0 !important; } - .mt-xxl-1 { margin-top: 0.25rem !important; } - .mt-xxl-2 { margin-top: 0.5rem !important; } - .mt-xxl-3 { margin-top: 1rem !important; } - .mt-xxl-4 { margin-top: 2rem !important; } - .mt-xxl-5 { margin-top: 4rem !important; } - .mt-xxl-auto { margin-top: auto !important; } - .me-xxl-0 { margin-left: 0 !important; } - .me-xxl-1 { margin-left: 0.25rem !important; } - .me-xxl-2 { margin-left: 0.5rem !important; } - .me-xxl-3 { margin-left: 1rem !important; } - .me-xxl-4 { margin-left: 2rem !important; } - .me-xxl-5 { margin-left: 4rem !important; } - .me-xxl-auto { margin-left: auto !important; } - .mb-xxl-0 { margin-bottom: 0 !important; } - .mb-xxl-1 { margin-bottom: 0.25rem !important; } - .mb-xxl-2 { margin-bottom: 0.5rem !important; } - .mb-xxl-3 { margin-bottom: 1rem !important; } - .mb-xxl-4 { margin-bottom: 2rem !important; } - .mb-xxl-5 { margin-bottom: 4rem !important; } - .mb-xxl-auto { margin-bottom: auto !important; } - .ms-xxl-0 { margin-right: 0 !important; } - .ms-xxl-1 { margin-right: 0.25rem !important; } - .ms-xxl-2 { margin-right: 0.5rem !important; } - .ms-xxl-3 { margin-right: 1rem !important; } - .ms-xxl-4 { margin-right: 2rem !important; } - .ms-xxl-5 { margin-right: 4rem !important; } - .ms-xxl-auto { margin-right: auto !important; } - .p-xxl-0 { padding: 0 !important; } - .p-xxl-1 { padding: 0.25rem !important; } - .p-xxl-2 { padding: 0.5rem !important; } - .p-xxl-3 { padding: 1rem !important; } - .p-xxl-4 { padding: 2rem !important; } - .p-xxl-5 { padding: 4rem !important; } - .px-xxl-0 { padding-left: 0 !important; padding-right: 0 !important; } - .px-xxl-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; } - .px-xxl-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; } - .px-xxl-3 { padding-left: 1rem !important; padding-right: 1rem !important; } - .px-xxl-4 { padding-left: 2rem !important; padding-right: 2rem !important; } - .px-xxl-5 { padding-left: 4rem !important; padding-right: 4rem !important; } - .py-xxl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .py-xxl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .py-xxl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .py-xxl-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .py-xxl-4 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .py-xxl-5 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - .pt-xxl-0 { padding-top: 0 !important; } - .pt-xxl-1 { padding-top: 0.25rem !important; } - .pt-xxl-2 { padding-top: 0.5rem !important; } - .pt-xxl-3 { padding-top: 1rem !important; } - .pt-xxl-4 { padding-top: 2rem !important; } - .pt-xxl-5 { padding-top: 4rem !important; } - .pe-xxl-0 { padding-left: 0 !important; } - .pe-xxl-1 { padding-left: 0.25rem !important; } - .pe-xxl-2 { padding-left: 0.5rem !important; } - .pe-xxl-3 { padding-left: 1rem !important; } - .pe-xxl-4 { padding-left: 2rem !important; } - .pe-xxl-5 { padding-left: 4rem !important; } - .pb-xxl-0 { padding-bottom: 0 !important; } - .pb-xxl-1 { padding-bottom: 0.25rem !important; } - .pb-xxl-2 { padding-bottom: 0.5rem !important; } - .pb-xxl-3 { padding-bottom: 1rem !important; } - .pb-xxl-4 { padding-bottom: 2rem !important; } - .pb-xxl-5 { padding-bottom: 4rem !important; } - .ps-xxl-0 { padding-right: 0 !important; } - .ps-xxl-1 { padding-right: 0.25rem !important; } - .ps-xxl-2 { padding-right: 0.5rem !important; } - .ps-xxl-3 { padding-right: 1rem !important; } - .ps-xxl-4 { padding-right: 2rem !important; } - .ps-xxl-5 { padding-right: 4rem !important; } - + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 2rem !important; + } + .gap-xxl-5 { + gap: 4rem !important; + } .text-xxl-start { text-align: right !important; } - .text-xxl-end { text-align: left !important; } - .text-xxl-center { text-align: center !important; } - .columns-xxl-2 { -moz-columns: 2 !important; columns: 2 !important; } - .columns-xxl-3 { -moz-columns: 3 !important; columns: 3 !important; } - .columns-xxl-4 { -moz-columns: 4 !important; columns: 4 !important; @@ -10991,39 +13178,30 @@ textarea.form-control-lg { .d-print-inline { display: inline !important; } - .d-print-inline-block { display: inline-block !important; } - .d-print-block { display: block !important; } - .d-print-grid { display: grid !important; } - .d-print-table { display: table !important; } - .d-print-table-row { display: table-row !important; } - .d-print-table-cell { display: table-cell !important; } - .d-print-flex { display: flex !important; } - .d-print-inline-flex { display: inline-flex !important; } - .d-print-none { display: none !important; } @@ -11031,6 +13209,78 @@ textarea.form-control-lg { :root { font-size: 16px; height: 100%; + --tblr-primary: #206bc4; + --tblr-secondary: #626976; + --tblr-success: #2fb344; + --tblr-info: #4299e1; + --tblr-warning: #f76707; + --tblr-danger: #d63939; + --tblr-light: #fafbfc; + --tblr-dark: #1e293b; + --tblr-muted: #626976; + --tblr-blue: #206bc4; + --tblr-azure: #4299e1; + --tblr-indigo: #4263eb; + --tblr-purple: #ae3ec9; + --tblr-pink: #d6336c; + --tblr-red: #d63939; + --tblr-orange: #f76707; + --tblr-yellow: #f59f00; + --tblr-lime: #74b816; + --tblr-green: #2fb344; + --tblr-teal: #0ca678; + --tblr-cyan: #17a2b8; + --tblr-facebook: #3b5998; + --tblr-twitter: #1da1f2; + --tblr-linkedin: #0a66c2; + --tblr-google: #dc4e41; + --tblr-youtube: #ff0000; + --tblr-vimeo: #1ab7ea; + --tblr-dribbble: #ea4c89; + --tblr-github: #181717; + --tblr-instagram: #e4405f; + --tblr-pinterest: #bd081c; + --tblr-vk: #6383a8; + --tblr-rss: #ffa500; + --tblr-flickr: #0063dc; + --tblr-bitbucket: #0052cc; + --tblr-tabler: #206bc4; + --tblr-primary-rgb: 32, 107, 196; + --tblr-secondary-rgb: 98, 105, 118; + --tblr-success-rgb: 47, 179, 68; + --tblr-info-rgb: 66, 153, 225; + --tblr-warning-rgb: 247, 103, 7; + --tblr-danger-rgb: 214, 57, 57; + --tblr-light-rgb: 250, 251, 252; + --tblr-dark-rgb: 30, 41, 59; + --tblr-muted-rgb: 98, 105, 118; + --tblr-blue-rgb: 32, 107, 196; + --tblr-azure-rgb: 66, 153, 225; + --tblr-indigo-rgb: 66, 99, 235; + --tblr-purple-rgb: 174, 62, 201; + --tblr-pink-rgb: 214, 51, 108; + --tblr-red-rgb: 214, 57, 57; + --tblr-orange-rgb: 247, 103, 7; + --tblr-yellow-rgb: 245, 159, 0; + --tblr-lime-rgb: 116, 184, 22; + --tblr-green-rgb: 47, 179, 68; + --tblr-teal-rgb: 12, 166, 120; + --tblr-cyan-rgb: 23, 162, 184; + --tblr-facebook-rgb: 59, 89, 152; + --tblr-twitter-rgb: 29, 161, 242; + --tblr-linkedin-rgb: 10, 102, 194; + --tblr-google-rgb: 220, 78, 65; + --tblr-youtube-rgb: 255, 0, 0; + --tblr-vimeo-rgb: 26, 183, 234; + --tblr-dribbble-rgb: 234, 76, 137; + --tblr-github-rgb: 24, 23, 23; + --tblr-instagram-rgb: 228, 64, 95; + --tblr-pinterest-rgb: 189, 8, 28; + --tblr-vk-rgb: 99, 131, 168; + --tblr-rss-rgb: 255, 165, 0; + --tblr-flickr-rgb: 0, 99, 220; + --tblr-bitbucket-rgb: 0, 82, 204; + --tblr-tabler-rgb: 32, 107, 196; --tblr-card-bg: #ffffff; --tblr-card-bg-rgb: 255, 255, 255; --tblr-border-color: #e6e7e9; @@ -11127,7 +13377,7 @@ Navbar align-items: stretch; min-height: 3.5rem; background: transparent; - color: rgba(30, 41, 59, 0.7); + color: #1e293b; } .navbar-collapse .navbar { flex-grow: 1; @@ -11160,9 +13410,6 @@ Navbar .navbar::-webkit-scrollbar-corner { background: transparent; } -.navbar .text-muted { - color: rgba(30, 41, 59, 0.7) !important; -} .navbar .navbar-brand { color: #1e293b; } @@ -11171,7 +13418,7 @@ Navbar opacity: 0.8; } .navbar .navbar-nav .nav-link { - color: rgba(30, 41, 59, 0.7); + color: #1e293b; } .navbar .navbar-nav .nav-link:hover, .navbar .navbar-nav .nav-link:focus { color: #1e293b; @@ -11190,12 +13437,12 @@ Navbar border-color: transparent; } .navbar .navbar-text { - color: rgba(30, 41, 59, 0.7); + color: #1e293b; } .navbar .navbar-text a, .navbar .navbar-text a:hover, .navbar .navbar-text a:focus { - color: rgba(30, 41, 59, 0.7); + color: #1e293b; } @media not print { .theme-dark .navbar { @@ -11227,9 +13474,6 @@ Navbar .theme-dark .navbar::-webkit-scrollbar-corner { background: transparent; } - .theme-dark .navbar .text-muted { - color: rgba(255, 255, 255, 0.7) !important; - } .theme-dark .navbar .navbar-brand { color: #ffffff; } @@ -11337,9 +13581,6 @@ Navbar .theme-dark-auto .navbar::-webkit-scrollbar-corner { background: transparent; } - .theme-dark-auto .navbar .text-muted { - color: rgba(255, 255, 255, 0.7) !important; - } .theme-dark-auto .navbar .navbar-brand { color: #ffffff; } @@ -11462,13 +13703,14 @@ Navbar .navbar-expand-sm .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-sm .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-expand-sm .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-sm .navbar-collapse .dropdown-menu-columns { @@ -11488,14 +13730,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-expand-sm .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -11556,13 +13798,14 @@ Navbar .navbar-expand-md .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-md .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-expand-md .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-md .navbar-collapse .dropdown-menu-columns { @@ -11582,14 +13825,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-expand-md .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -11650,13 +13893,14 @@ Navbar .navbar-expand-lg .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-lg .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-expand-lg .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-lg .navbar-collapse .dropdown-menu-columns { @@ -11676,14 +13920,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-expand-lg .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -11744,13 +13988,14 @@ Navbar .navbar-expand-xl .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-xl .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-expand-xl .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-xl .navbar-collapse .dropdown-menu-columns { @@ -11770,14 +14015,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-expand-xl .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -11838,13 +14083,14 @@ Navbar .navbar-expand-xxl .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand-xxl .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand-xxl .navbar-collapse .dropdown-menu-columns { @@ -11864,14 +14110,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-expand-xxl .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -11931,13 +14177,14 @@ Navbar .navbar-expand .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-expand .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-expand .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-expand .navbar-collapse .dropdown-menu-columns { @@ -11957,14 +14204,14 @@ Navbar min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-expand .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -12027,7 +14274,6 @@ Navbar brand } .navbar-brand-image { - display: block; height: 2rem; width: auto; } @@ -12138,9 +14384,6 @@ Navbar dark .navbar-dark::-webkit-scrollbar-corner { background: transparent; } -.navbar-dark .text-muted { - color: rgba(255, 255, 255, 0.7) !important; -} .navbar-dark .navbar-brand { color: #ffffff; } @@ -12302,6 +14545,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 576px) { @@ -12326,13 +14570,14 @@ Navbar vertical .navbar-vertical.navbar-expand-sm .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu-columns { @@ -12352,14 +14597,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -12425,6 +14670,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 768px) { @@ -12449,13 +14695,14 @@ Navbar vertical .navbar-vertical.navbar-expand-md .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu-columns { @@ -12475,14 +14722,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -12548,6 +14795,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 992px) { @@ -12572,13 +14820,14 @@ Navbar vertical .navbar-vertical.navbar-expand-lg .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu-columns { @@ -12598,14 +14847,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -12671,6 +14920,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 1200px) { @@ -12695,13 +14945,14 @@ Navbar vertical .navbar-vertical.navbar-expand-xl .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu-columns { @@ -12721,14 +14972,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -12794,6 +15045,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } } @media (min-width: 1400px) { @@ -12818,13 +15070,14 @@ Navbar vertical .navbar-vertical.navbar-expand-xxl .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns { @@ -12844,14 +15097,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -12906,6 +15159,7 @@ Navbar vertical align-items: stretch; min-height: 100%; justify-content: flex-start; + padding: 0; } .navbar-vertical.navbar-expand ~ .page { padding-right: 15rem; @@ -12924,13 +15178,14 @@ Navbar vertical .navbar-vertical.navbar-expand .navbar-collapse [class^=container] { flex-direction: column; align-items: stretch; + padding: 0; } .navbar-vertical.navbar-expand .navbar-collapse .navbar-nav { - margin-right: calc(-1 * var(--tblr-gutter-x, 1.5rem)); - margin-left: calc(-1 * var(--tblr-gutter-x, 1.5rem)); + margin-right: 0; + margin-left: 0; } .navbar-vertical.navbar-expand .navbar-collapse .navbar-nav .nav-link { - padding: 0.5rem 1.5rem; + padding: 0.5rem 0.75rem; justify-content: flex-start; } .navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu-columns { @@ -12950,14 +15205,14 @@ Navbar vertical min-width: 0; display: flex; width: auto; - padding-right: 3.25rem; + padding-right: 2.5rem; color: inherit; } .navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 4.75rem; + padding-right: 4rem; } .navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item { - padding-right: 6.25rem; + padding-right: 5.5rem; } .navbar-vertical.navbar-expand .navbar-collapse .dropdown-toggle:after { margin-right: auto; @@ -13174,6 +15429,9 @@ body:not(.theme-dark) .hide-theme-light { background-color: #1e293b; color: inherit; } + .theme-dark .bg-light { + background-color: #1b2434 !important; + } .theme-dark .card { border-color: transparent; } @@ -13317,6 +15575,9 @@ body:not(.theme-dark) .hide-theme-light { background-color: #1e293b; color: inherit; } + .theme-dark-auto .bg-light { + background-color: #1b2434 !important; + } .theme-dark-auto .card { border-color: transparent; } @@ -13424,6 +15685,10 @@ body:not(.theme-dark) .hide-theme-light { } } } +.accordion { + --tblr-accordion-color: var(--tblr-body-color); +} + .accordion-button:focus:not(:focus-visible) { outline: none; box-shadow: none; @@ -13504,6 +15769,114 @@ body:not(.theme-dark) .hide-theme-light { --tblr-alert-color: #626976; } +.alert-blue { + --tblr-alert-color: #206bc4; +} + +.alert-azure { + --tblr-alert-color: #4299e1; +} + +.alert-indigo { + --tblr-alert-color: #4263eb; +} + +.alert-purple { + --tblr-alert-color: #ae3ec9; +} + +.alert-pink { + --tblr-alert-color: #d6336c; +} + +.alert-red { + --tblr-alert-color: #d63939; +} + +.alert-orange { + --tblr-alert-color: #f76707; +} + +.alert-yellow { + --tblr-alert-color: #f59f00; +} + +.alert-lime { + --tblr-alert-color: #74b816; +} + +.alert-green { + --tblr-alert-color: #2fb344; +} + +.alert-teal { + --tblr-alert-color: #0ca678; +} + +.alert-cyan { + --tblr-alert-color: #17a2b8; +} + +.alert-facebook { + --tblr-alert-color: #3b5998; +} + +.alert-twitter { + --tblr-alert-color: #1da1f2; +} + +.alert-linkedin { + --tblr-alert-color: #0a66c2; +} + +.alert-google { + --tblr-alert-color: #dc4e41; +} + +.alert-youtube { + --tblr-alert-color: #ff0000; +} + +.alert-vimeo { + --tblr-alert-color: #1ab7ea; +} + +.alert-dribbble { + --tblr-alert-color: #ea4c89; +} + +.alert-github { + --tblr-alert-color: #181717; +} + +.alert-instagram { + --tblr-alert-color: #e4405f; +} + +.alert-pinterest { + --tblr-alert-color: #bd081c; +} + +.alert-vk { + --tblr-alert-color: #6383a8; +} + +.alert-rss { + --tblr-alert-color: #ffa500; +} + +.alert-flickr { + --tblr-alert-color: #0063dc; +} + +.alert-bitbucket { + --tblr-alert-color: #0052cc; +} + +.alert-tabler { + --tblr-alert-color: #206bc4; +} + .alert-icon { color: var(--tblr-alert-color); width: 1.5rem !important; @@ -13757,77 +16130,34 @@ a.badge { } .btn { - --tblr-btn-color-text-rgb: var(--tblr-body-color-rgb); + --tblr-btn-icon-size: 1.25rem; + --tblr-btn-color: var(--tblr-color-text); + --tblr-btn-border-color: var(--tblr-border-color); display: inline-flex; align-items: center; justify-content: center; - border-color: var(--tblr-border-color); white-space: nowrap; - background-color: var(--tblr-btn-color, var(--tblr-card-bg)); - color: var(--tblr-btn-color-text); -} -.btn:hover { - color: var(--tblr-btn-color-text); - border-color: rgba(var(--tblr-btn-color-text-rgb), 0.48); -} -.btn:focus:not([disabled]):not(.disabled) { - border-color: var(--tblr-btn-color, #206bc4); -} -.btn:disabled, .btn.disabled { - cursor: not-allowed; } .btn .icon { - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - margin: 0 -0.25rem 0 0.5rem; + width: var(--tblr-btn-icon-size); + height: var(--tblr-btn-icon-size); + min-width: var(--tblr-btn-icon-size); + margin: 0 calc(var(--tblr-btn-padding-x) / -4) 0 calc(var(--tblr-btn-padding-x) / 2); vertical-align: bottom; color: inherit; } .btn .avatar { - width: 1.25rem; - height: 1.25rem; - vertical-align: text-top; - margin: 0 -0.25rem 0 0.5rem; + width: var(--tblr-btn-icon-size); + height: var(--tblr-btn-icon-size); + margin: 0 calc(var(--tblr-btn-padding-x) / -4) 0 calc(var(--tblr-btn-padding-x) / 2); } .btn .icon-right { - margin: 0 0.5rem 0 -0.25rem; + margin: 0 calc(var(--tblr-btn-padding-x) / 2) 0 calc(var(--tblr-btn-padding-x) / -4); } .btn .badge { top: auto; } -.btn-tabler, .btn-bitbucket, .btn-flickr, .btn-rss, .btn-vk, .btn-pinterest, .btn-instagram, .btn-github, .btn-dribbble, .btn-vimeo, .btn-youtube, .btn-google, .btn-linkedin, .btn-twitter, .btn-facebook, .btn-cyan, .btn-teal, .btn-green, .btn-lime, .btn-yellow, .btn-orange, .btn-red, .btn-pink, .btn-purple, .btn-indigo, .btn-azure, .btn-blue, .btn-muted, .btn-dark, .btn-light, .btn-danger, .btn-warning, .btn-info, .btn-success, .btn-secondary, .btn-primary { - border-color: rgba(98, 105, 118, 0.24); -} -.btn-tabler:hover, .btn-bitbucket:hover, .btn-flickr:hover, .btn-rss:hover, .btn-vk:hover, .btn-pinterest:hover, .btn-instagram:hover, .btn-github:hover, .btn-dribbble:hover, .btn-vimeo:hover, .btn-youtube:hover, .btn-google:hover, .btn-linkedin:hover, .btn-twitter:hover, .btn-facebook:hover, .btn-cyan:hover, .btn-teal:hover, .btn-green:hover, .btn-lime:hover, .btn-yellow:hover, .btn-orange:hover, .btn-red:hover, .btn-pink:hover, .btn-purple:hover, .btn-indigo:hover, .btn-azure:hover, .btn-blue:hover, .btn-muted:hover, .btn-dark:hover, .btn-light:hover, .btn-danger:hover, .btn-warning:hover, .btn-info:hover, .btn-success:hover, .btn-secondary:hover, .btn-primary:hover { - color: var(--tblr-btn-color-text); - background: var(--tblr-btn-color-interactive); - border-color: var(--tblr-btn-color); -} - -.btn-outline-tabler, .btn-outline-bitbucket, .btn-outline-flickr, .btn-outline-rss, .btn-outline-vk, .btn-outline-pinterest, .btn-outline-instagram, .btn-outline-github, .btn-outline-dribbble, .btn-outline-vimeo, .btn-outline-youtube, .btn-outline-google, .btn-outline-linkedin, .btn-outline-twitter, .btn-outline-facebook, .btn-outline-cyan, .btn-outline-teal, .btn-outline-green, .btn-outline-lime, .btn-outline-yellow, .btn-outline-orange, .btn-outline-red, .btn-outline-pink, .btn-outline-purple, .btn-outline-indigo, .btn-outline-azure, .btn-outline-blue, .btn-outline-muted, .btn-outline-dark, .btn-outline-light, .btn-outline-danger, .btn-outline-warning, .btn-outline-info, .btn-outline-success, .btn-outline-secondary, .btn-outline-primary { - background-color: transparent; - color: var(--tblr-btn-color); - border-color: var(--tblr-btn-color); -} -.btn-outline-tabler:hover, .btn-outline-bitbucket:hover, .btn-outline-flickr:hover, .btn-outline-rss:hover, .btn-outline-vk:hover, .btn-outline-pinterest:hover, .btn-outline-instagram:hover, .btn-outline-github:hover, .btn-outline-dribbble:hover, .btn-outline-vimeo:hover, .btn-outline-youtube:hover, .btn-outline-google:hover, .btn-outline-linkedin:hover, .btn-outline-twitter:hover, .btn-outline-facebook:hover, .btn-outline-cyan:hover, .btn-outline-teal:hover, .btn-outline-green:hover, .btn-outline-lime:hover, .btn-outline-yellow:hover, .btn-outline-orange:hover, .btn-outline-red:hover, .btn-outline-pink:hover, .btn-outline-purple:hover, .btn-outline-indigo:hover, .btn-outline-azure:hover, .btn-outline-blue:hover, .btn-outline-muted:hover, .btn-outline-dark:hover, .btn-outline-light:hover, .btn-outline-danger:hover, .btn-outline-warning:hover, .btn-outline-info:hover, .btn-outline-success:hover, .btn-outline-secondary:hover, .btn-outline-primary:hover { - background-color: var(--tblr-btn-color); - color: var(--tblr-btn-color-text); - border-color: var(--tblr-btn-color); -} - -.btn-ghost-tabler, .btn-ghost-bitbucket, .btn-ghost-flickr, .btn-ghost-rss, .btn-ghost-vk, .btn-ghost-pinterest, .btn-ghost-instagram, .btn-ghost-github, .btn-ghost-dribbble, .btn-ghost-vimeo, .btn-ghost-youtube, .btn-ghost-google, .btn-ghost-linkedin, .btn-ghost-twitter, .btn-ghost-facebook, .btn-ghost-cyan, .btn-ghost-teal, .btn-ghost-green, .btn-ghost-lime, .btn-ghost-yellow, .btn-ghost-orange, .btn-ghost-red, .btn-ghost-pink, .btn-ghost-purple, .btn-ghost-indigo, .btn-ghost-azure, .btn-ghost-blue, .btn-ghost-muted, .btn-ghost-dark, .btn-ghost-light, .btn-ghost-danger, .btn-ghost-warning, .btn-ghost-info, .btn-ghost-success, .btn-ghost-secondary, .btn-ghost-primary { - background: transparent; - color: var(--tblr-btn-color); - border-color: transparent; -} -.btn-ghost-tabler:hover, .btn-ghost-bitbucket:hover, .btn-ghost-flickr:hover, .btn-ghost-rss:hover, .btn-ghost-vk:hover, .btn-ghost-pinterest:hover, .btn-ghost-instagram:hover, .btn-ghost-github:hover, .btn-ghost-dribbble:hover, .btn-ghost-vimeo:hover, .btn-ghost-youtube:hover, .btn-ghost-google:hover, .btn-ghost-linkedin:hover, .btn-ghost-twitter:hover, .btn-ghost-facebook:hover, .btn-ghost-cyan:hover, .btn-ghost-teal:hover, .btn-ghost-green:hover, .btn-ghost-lime:hover, .btn-ghost-yellow:hover, .btn-ghost-orange:hover, .btn-ghost-red:hover, .btn-ghost-pink:hover, .btn-ghost-purple:hover, .btn-ghost-indigo:hover, .btn-ghost-azure:hover, .btn-ghost-blue:hover, .btn-ghost-muted:hover, .btn-ghost-dark:hover, .btn-ghost-light:hover, .btn-ghost-danger:hover, .btn-ghost-warning:hover, .btn-ghost-info:hover, .btn-ghost-success:hover, .btn-ghost-secondary:hover, .btn-ghost-primary:hover { - background-color: var(--tblr-btn-color); - color: var(--tblr-btn-color-text); - border-color: var(--tblr-btn-color); -} - .btn-link { color: #206bc4; background-color: transparent; @@ -13841,8 +16171,811 @@ a.badge { border-color: transparent; } -.btn-lg svg.icon, .btn-group-lg > .btn svg.icon { - stroke-width: 2; +.btn-white { + --tblr-btn-bg: var(--tblr-card-bg); + --tblr-btn-hover-bg: var(--tblr-card-bg); +} + +.btn-primary { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-secondary { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-success { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-info { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-warning { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-danger { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-light { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #1e293b; +} + +.btn-dark { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-muted { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-blue { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-azure { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-indigo { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-purple { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-pink { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-red { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-orange { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-yellow { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-lime { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-green { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-teal { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-cyan { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-facebook { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-twitter { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-linkedin { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-google { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-youtube { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-vimeo { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-dribbble { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-github { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-instagram { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-pinterest { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-vk { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-rss { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-flickr { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-bitbucket { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-tabler { + --tblr-btn-border-color: transparent; + --tblr-btn-color: #fafbfc; +} + +.btn-ghost-primary { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-secondary { + --tblr-btn-color: #626976; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #626976; + --tblr-btn-hover-border-color: #626976; + --tblr-btn-focus-shadow-rgb: 98, 105, 118; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #626976; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #626976; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-success { + --tblr-btn-color: #2fb344; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #2fb344; + --tblr-btn-hover-border-color: #2fb344; + --tblr-btn-focus-shadow-rgb: 47, 179, 68; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2fb344; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #2fb344; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-info { + --tblr-btn-color: #4299e1; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4299e1; + --tblr-btn-hover-border-color: #4299e1; + --tblr-btn-focus-shadow-rgb: 66, 153, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4299e1; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4299e1; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-warning { + --tblr-btn-color: #f76707; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f76707; + --tblr-btn-hover-border-color: #f76707; + --tblr-btn-focus-shadow-rgb: 247, 103, 7; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f76707; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f76707; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-danger { + --tblr-btn-color: #d63939; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d63939; + --tblr-btn-hover-border-color: #d63939; + --tblr-btn-focus-shadow-rgb: 214, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d63939; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d63939; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-light { + --tblr-btn-color: #fafbfc; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #1e293b; + --tblr-btn-hover-bg: #fafbfc; + --tblr-btn-hover-border-color: #fafbfc; + --tblr-btn-focus-shadow-rgb: 250, 251, 252; + --tblr-btn-active-color: #1e293b; + --tblr-btn-active-bg: #fafbfc; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #fafbfc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-dark { + --tblr-btn-color: #1e293b; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1e293b; + --tblr-btn-hover-border-color: #1e293b; + --tblr-btn-focus-shadow-rgb: 30, 41, 59; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1e293b; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1e293b; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-muted { + --tblr-btn-color: #626976; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #626976; + --tblr-btn-hover-border-color: #626976; + --tblr-btn-focus-shadow-rgb: 98, 105, 118; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #626976; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #626976; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-blue { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-azure { + --tblr-btn-color: #4299e1; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4299e1; + --tblr-btn-hover-border-color: #4299e1; + --tblr-btn-focus-shadow-rgb: 66, 153, 225; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4299e1; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4299e1; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-indigo { + --tblr-btn-color: #4263eb; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #4263eb; + --tblr-btn-hover-border-color: #4263eb; + --tblr-btn-focus-shadow-rgb: 66, 99, 235; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #4263eb; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #4263eb; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-purple { + --tblr-btn-color: #ae3ec9; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ae3ec9; + --tblr-btn-hover-border-color: #ae3ec9; + --tblr-btn-focus-shadow-rgb: 174, 62, 201; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ae3ec9; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ae3ec9; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-pink { + --tblr-btn-color: #d6336c; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d6336c; + --tblr-btn-hover-border-color: #d6336c; + --tblr-btn-focus-shadow-rgb: 214, 51, 108; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d6336c; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d6336c; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-red { + --tblr-btn-color: #d63939; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #d63939; + --tblr-btn-hover-border-color: #d63939; + --tblr-btn-focus-shadow-rgb: 214, 57, 57; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #d63939; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #d63939; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-orange { + --tblr-btn-color: #f76707; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f76707; + --tblr-btn-hover-border-color: #f76707; + --tblr-btn-focus-shadow-rgb: 247, 103, 7; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f76707; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f76707; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-yellow { + --tblr-btn-color: #f59f00; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #f59f00; + --tblr-btn-hover-border-color: #f59f00; + --tblr-btn-focus-shadow-rgb: 245, 159, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #f59f00; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #f59f00; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-lime { + --tblr-btn-color: #74b816; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #74b816; + --tblr-btn-hover-border-color: #74b816; + --tblr-btn-focus-shadow-rgb: 116, 184, 22; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #74b816; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #74b816; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-green { + --tblr-btn-color: #2fb344; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #2fb344; + --tblr-btn-hover-border-color: #2fb344; + --tblr-btn-focus-shadow-rgb: 47, 179, 68; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #2fb344; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #2fb344; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-teal { + --tblr-btn-color: #0ca678; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0ca678; + --tblr-btn-hover-border-color: #0ca678; + --tblr-btn-focus-shadow-rgb: 12, 166, 120; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0ca678; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0ca678; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-cyan { + --tblr-btn-color: #17a2b8; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #17a2b8; + --tblr-btn-hover-border-color: #17a2b8; + --tblr-btn-focus-shadow-rgb: 23, 162, 184; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #17a2b8; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #17a2b8; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-facebook { + --tblr-btn-color: #3b5998; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #3b5998; + --tblr-btn-hover-border-color: #3b5998; + --tblr-btn-focus-shadow-rgb: 59, 89, 152; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #3b5998; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #3b5998; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-twitter { + --tblr-btn-color: #1da1f2; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1da1f2; + --tblr-btn-hover-border-color: #1da1f2; + --tblr-btn-focus-shadow-rgb: 29, 161, 242; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1da1f2; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1da1f2; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-linkedin { + --tblr-btn-color: #0a66c2; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0a66c2; + --tblr-btn-hover-border-color: #0a66c2; + --tblr-btn-focus-shadow-rgb: 10, 102, 194; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0a66c2; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0a66c2; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-google { + --tblr-btn-color: #dc4e41; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #dc4e41; + --tblr-btn-hover-border-color: #dc4e41; + --tblr-btn-focus-shadow-rgb: 220, 78, 65; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #dc4e41; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #dc4e41; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-youtube { + --tblr-btn-color: #ff0000; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ff0000; + --tblr-btn-hover-border-color: #ff0000; + --tblr-btn-focus-shadow-rgb: 255, 0, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ff0000; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ff0000; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-vimeo { + --tblr-btn-color: #1ab7ea; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #1ab7ea; + --tblr-btn-hover-border-color: #1ab7ea; + --tblr-btn-focus-shadow-rgb: 26, 183, 234; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #1ab7ea; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #1ab7ea; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-dribbble { + --tblr-btn-color: #ea4c89; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ea4c89; + --tblr-btn-hover-border-color: #ea4c89; + --tblr-btn-focus-shadow-rgb: 234, 76, 137; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ea4c89; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ea4c89; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-github { + --tblr-btn-color: #181717; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #181717; + --tblr-btn-hover-border-color: #181717; + --tblr-btn-focus-shadow-rgb: 24, 23, 23; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #181717; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #181717; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-instagram { + --tblr-btn-color: #e4405f; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #e4405f; + --tblr-btn-hover-border-color: #e4405f; + --tblr-btn-focus-shadow-rgb: 228, 64, 95; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #e4405f; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #e4405f; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-pinterest { + --tblr-btn-color: #bd081c; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #bd081c; + --tblr-btn-hover-border-color: #bd081c; + --tblr-btn-focus-shadow-rgb: 189, 8, 28; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #bd081c; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #bd081c; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-vk { + --tblr-btn-color: #6383a8; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #6383a8; + --tblr-btn-hover-border-color: #6383a8; + --tblr-btn-focus-shadow-rgb: 99, 131, 168; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #6383a8; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #6383a8; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-rss { + --tblr-btn-color: #ffa500; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #ffa500; + --tblr-btn-hover-border-color: #ffa500; + --tblr-btn-focus-shadow-rgb: 255, 165, 0; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #ffa500; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #ffa500; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-flickr { + --tblr-btn-color: #0063dc; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0063dc; + --tblr-btn-hover-border-color: #0063dc; + --tblr-btn-focus-shadow-rgb: 0, 99, 220; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0063dc; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0063dc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-bitbucket { + --tblr-btn-color: #0052cc; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #0052cc; + --tblr-btn-hover-border-color: #0052cc; + --tblr-btn-focus-shadow-rgb: 0, 82, 204; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #0052cc; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #0052cc; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-ghost-tabler { + --tblr-btn-color: #206bc4; + --tblr-btn-border-color: transparent; + --tblr-btn-hover-color: #fafbfc; + --tblr-btn-hover-bg: #206bc4; + --tblr-btn-hover-border-color: #206bc4; + --tblr-btn-focus-shadow-rgb: 32, 107, 196; + --tblr-btn-active-color: #fafbfc; + --tblr-btn-active-bg: #206bc4; + --tblr-btn-active-border-color: transparent; + --tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --tblr-btn-disabled-color: #206bc4; + --tblr-btn-disabled-bg: transparent; + --tblr-btn-disabled-border-color: transparent; + --tblr-gradient: none; +} + +.btn-sm, .btn-group-sm > .btn { + --tblr-btn-line-height: 1.5; + --tblr-btn-icon-size: .75rem; +} + +.btn-lg, .btn-group-lg > .btn { + --tblr-btn-line-height: 1.5; + --tblr-btn-icon-size: 2rem; } .btn-pill { @@ -13854,20 +16987,20 @@ a.badge { padding: 0.375rem 15px; } -.btn-icon { - min-width: calc(2.125rem + 2px); -} -.btn-icon.btn-sm, .btn-group-sm > .btn-icon.btn { - min-width: calc(1.3214285715rem + 2px); -} -.btn-icon .icon { - margin: 0 -1em; -} - .btn-square { border-radius: 0; } +.btn-icon { + min-width: calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2); + min-height: calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2); + padding-right: 0; + padding-left: 0; +} +.btn-icon .icon { + margin: calc(-1 * var(--tblr-btn-padding-x)); +} + .btn-list { display: flex; flex-wrap: wrap; @@ -13892,311 +17025,26 @@ a.badge { text-shadow: none !important; pointer-events: none; } +.btn-loading > * { + opacity: 0; +} .btn-loading:after { content: ""; display: inline-block; vertical-align: text-bottom; - border: 1px solid currentColor; + border: 2px solid currentColor; border-left-color: transparent; border-radius: 100rem; - color: #ffffff; + color: var(--tblr-btn-color); position: absolute; - width: 1rem; - height: 1rem; - right: calc(50% - 0.5rem); - top: calc(50% - 0.5rem); + width: var(--tblr-btn-icon-size); + height: var(--tblr-btn-icon-size); + right: calc(50% - var(--tblr-btn-icon-size) / 2); + top: calc(50% - var(--tblr-btn-icon-size) / 2); -webkit-animation: spinner-border 0.75s linear infinite; animation: spinner-border 0.75s linear infinite; } -.btn-primary, -.btn-outline-primary, -.btn-ghost-primary { - --tblr-btn-color: #206bc4; - --tblr-btn-color-interactive: #1d60b0; - --tblr-btn-color-text: #fafbfc; -} - -.btn-secondary, -.btn-outline-secondary, -.btn-ghost-secondary { - --tblr-btn-color: #626976; - --tblr-btn-color-interactive: #585f6a; - --tblr-btn-color-text: #fafbfc; -} - -.btn-success, -.btn-outline-success, -.btn-ghost-success { - --tblr-btn-color: #2fb344; - --tblr-btn-color-interactive: #2aa13d; - --tblr-btn-color-text: #fafbfc; -} - -.btn-info, -.btn-outline-info, -.btn-ghost-info { - --tblr-btn-color: #4299e1; - --tblr-btn-color-interactive: #3b8acb; - --tblr-btn-color-text: #fafbfc; -} - -.btn-warning, -.btn-outline-warning, -.btn-ghost-warning { - --tblr-btn-color: #f76707; - --tblr-btn-color-interactive: #de5d06; - --tblr-btn-color-text: #fafbfc; -} - -.btn-danger, -.btn-outline-danger, -.btn-ghost-danger { - --tblr-btn-color: #d63939; - --tblr-btn-color-interactive: #c13333; - --tblr-btn-color-text: #fafbfc; -} - -.btn-light, -.btn-outline-light, -.btn-ghost-light { - --tblr-btn-color: #fafbfc; - --tblr-btn-color-interactive: #e1e2e3; - --tblr-btn-color-text: #1e293b; -} - -.btn-dark, -.btn-outline-dark, -.btn-ghost-dark { - --tblr-btn-color: #1e293b; - --tblr-btn-color-interactive: #1b2535; - --tblr-btn-color-text: #fafbfc; -} - -.btn-muted, -.btn-outline-muted, -.btn-ghost-muted { - --tblr-btn-color: #626976; - --tblr-btn-color-interactive: #585f6a; - --tblr-btn-color-text: #fafbfc; -} - -.btn-blue, -.btn-outline-blue, -.btn-ghost-blue { - --tblr-btn-color: #206bc4; - --tblr-btn-color-interactive: #1d60b0; - --tblr-btn-color-text: #fafbfc; -} - -.btn-azure, -.btn-outline-azure, -.btn-ghost-azure { - --tblr-btn-color: #4299e1; - --tblr-btn-color-interactive: #3b8acb; - --tblr-btn-color-text: #fafbfc; -} - -.btn-indigo, -.btn-outline-indigo, -.btn-ghost-indigo { - --tblr-btn-color: #4263eb; - --tblr-btn-color-interactive: #3b59d4; - --tblr-btn-color-text: #fafbfc; -} - -.btn-purple, -.btn-outline-purple, -.btn-ghost-purple { - --tblr-btn-color: #ae3ec9; - --tblr-btn-color-interactive: #9d38b5; - --tblr-btn-color-text: #fafbfc; -} - -.btn-pink, -.btn-outline-pink, -.btn-ghost-pink { - --tblr-btn-color: #d6336c; - --tblr-btn-color-interactive: #c12e61; - --tblr-btn-color-text: #fafbfc; -} - -.btn-red, -.btn-outline-red, -.btn-ghost-red { - --tblr-btn-color: #d63939; - --tblr-btn-color-interactive: #c13333; - --tblr-btn-color-text: #fafbfc; -} - -.btn-orange, -.btn-outline-orange, -.btn-ghost-orange { - --tblr-btn-color: #f76707; - --tblr-btn-color-interactive: #de5d06; - --tblr-btn-color-text: #fafbfc; -} - -.btn-yellow, -.btn-outline-yellow, -.btn-ghost-yellow { - --tblr-btn-color: #f59f00; - --tblr-btn-color-interactive: #dd8f00; - --tblr-btn-color-text: #fafbfc; -} - -.btn-lime, -.btn-outline-lime, -.btn-ghost-lime { - --tblr-btn-color: #74b816; - --tblr-btn-color-interactive: #68a614; - --tblr-btn-color-text: #fafbfc; -} - -.btn-green, -.btn-outline-green, -.btn-ghost-green { - --tblr-btn-color: #2fb344; - --tblr-btn-color-interactive: #2aa13d; - --tblr-btn-color-text: #fafbfc; -} - -.btn-teal, -.btn-outline-teal, -.btn-ghost-teal { - --tblr-btn-color: #0ca678; - --tblr-btn-color-interactive: #0b956c; - --tblr-btn-color-text: #fafbfc; -} - -.btn-cyan, -.btn-outline-cyan, -.btn-ghost-cyan { - --tblr-btn-color: #17a2b8; - --tblr-btn-color-interactive: #1592a6; - --tblr-btn-color-text: #fafbfc; -} - -.btn-facebook, -.btn-outline-facebook, -.btn-ghost-facebook { - --tblr-btn-color: #3b5998; - --tblr-btn-color-interactive: #355089; - --tblr-btn-color-text: #fafbfc; -} - -.btn-twitter, -.btn-outline-twitter, -.btn-ghost-twitter { - --tblr-btn-color: #1da1f2; - --tblr-btn-color-interactive: #1a91da; - --tblr-btn-color-text: #fafbfc; -} - -.btn-linkedin, -.btn-outline-linkedin, -.btn-ghost-linkedin { - --tblr-btn-color: #0a66c2; - --tblr-btn-color-interactive: #095caf; - --tblr-btn-color-text: #fafbfc; -} - -.btn-google, -.btn-outline-google, -.btn-ghost-google { - --tblr-btn-color: #dc4e41; - --tblr-btn-color-interactive: #c6463b; - --tblr-btn-color-text: #fafbfc; -} - -.btn-youtube, -.btn-outline-youtube, -.btn-ghost-youtube { - --tblr-btn-color: #ff0000; - --tblr-btn-color-interactive: #e60000; - --tblr-btn-color-text: #fafbfc; -} - -.btn-vimeo, -.btn-outline-vimeo, -.btn-ghost-vimeo { - --tblr-btn-color: #1ab7ea; - --tblr-btn-color-interactive: #17a5d3; - --tblr-btn-color-text: #fafbfc; -} - -.btn-dribbble, -.btn-outline-dribbble, -.btn-ghost-dribbble { - --tblr-btn-color: #ea4c89; - --tblr-btn-color-interactive: #d3447b; - --tblr-btn-color-text: #fafbfc; -} - -.btn-github, -.btn-outline-github, -.btn-ghost-github { - --tblr-btn-color: #181717; - --tblr-btn-color-interactive: #161515; - --tblr-btn-color-text: #fafbfc; -} - -.btn-instagram, -.btn-outline-instagram, -.btn-ghost-instagram { - --tblr-btn-color: #e4405f; - --tblr-btn-color-interactive: #cd3a56; - --tblr-btn-color-text: #fafbfc; -} - -.btn-pinterest, -.btn-outline-pinterest, -.btn-ghost-pinterest { - --tblr-btn-color: #bd081c; - --tblr-btn-color-interactive: #aa0719; - --tblr-btn-color-text: #fafbfc; -} - -.btn-vk, -.btn-outline-vk, -.btn-ghost-vk { - --tblr-btn-color: #6383a8; - --tblr-btn-color-interactive: #597697; - --tblr-btn-color-text: #fafbfc; -} - -.btn-rss, -.btn-outline-rss, -.btn-ghost-rss { - --tblr-btn-color: #ffa500; - --tblr-btn-color-interactive: #e69500; - --tblr-btn-color-text: #fafbfc; -} - -.btn-flickr, -.btn-outline-flickr, -.btn-ghost-flickr { - --tblr-btn-color: #0063dc; - --tblr-btn-color-interactive: #0059c6; - --tblr-btn-color-text: #fafbfc; -} - -.btn-bitbucket, -.btn-outline-bitbucket, -.btn-ghost-bitbucket { - --tblr-btn-color: #0052cc; - --tblr-btn-color-interactive: #004ab8; - --tblr-btn-color-text: #fafbfc; -} - -.btn-tabler, -.btn-outline-tabler, -.btn-ghost-tabler { - --tblr-btn-color: #206bc4; - --tblr-btn-color-interactive: #1d60b0; - --tblr-btn-color-text: #fafbfc; -} - .btn-action { padding: 0; border: 0; @@ -14445,8 +17293,8 @@ a.card:hover { } .card-stamp-icon { - background: #626976; - color: #ffffff; + background: var(--tblr-muted); + color: var(--tblr-card-bg); display: flex; align-items: center; justify-content: center; @@ -14781,17 +17629,37 @@ Card table .card-table tr td:first-child, .card-table tr th:first-child { padding-right: 1.25rem; + border-right: 0; } .card-table tr td:last-child, .card-table tr th:last-child { padding-left: 1.25rem; + border-left: 0; } -.card-table thead tr:first-child td, -.card-table thead tr:first-child th { +.card-table thead tr:first-child, +.card-table tbody tr:first-child, +.card-table tfoot tr:first-child { border-top: 0; } +.card-table thead tr:first-child td, +.card-table thead tr:first-child th, +.card-table tbody tr:first-child td, +.card-table tbody tr:first-child th, +.card-table tfoot tr:first-child td, +.card-table tfoot tr:first-child th { + border-top: 0; +} +.card-table thead tr:last-child, +.card-table tbody tr:last-child, +.card-table tfoot tr:last-child { + border-bottom: 0; +} +.card-table thead tr:last-child td, +.card-table thead tr:last-child th, .card-table tbody tr:last-child td, -.card-table tbody tr:last-child th { +.card-table tbody tr:last-child th, +.card-table tfoot tr:last-child td, +.card-table tfoot tr:last-child th { border-bottom: 0; } .card-body + .card-table { @@ -15028,6 +17896,24 @@ Card list group box-shadow: none; } +.datagrid { + --tblr-datagrid-padding: 1.5rem; + --tblr-datagrid-item-width: 15rem; + display: grid; + grid-gap: var(--tblr-datagrid-padding); + grid-template-columns: repeat(auto-fit, minmax(var(--tblr-datagrid-item-width), 1fr)); +} + +.datagrid-title { + font-size: 0.625rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.04em; + line-height: 1.6; + color: #626976; + margin-bottom: 0.25rem; +} + .empty { display: flex; flex-direction: column; @@ -15113,17 +17999,21 @@ Card list group } .container-tight { + --tblr-gutter-x: 1.5rem; + --tblr-gutter-y: 0; width: 100%; - padding-left: var(--tblr-gutter-x, 1.5rem); - padding-right: var(--tblr-gutter-x, 1.5rem); + padding-left: calc(var(--tblr-gutter-x) * 0.5); + padding-right: calc(var(--tblr-gutter-x) * 0.5); margin-left: auto; margin-right: auto; max-width: 30rem; } .container-narrow { + --tblr-gutter-x: 1.5rem; + --tblr-gutter-y: 0; width: 100%; - padding-left: var(--tblr-gutter-x, 1.5rem); - padding-right: var(--tblr-gutter-x, 1.5rem); + padding-left: calc(var(--tblr-gutter-x) * 0.5); + padding-right: calc(var(--tblr-gutter-x) * 0.5); margin-left: auto; margin-right: auto; max-width: 45rem; @@ -15494,10 +18384,12 @@ textarea[cols] { /** Form label */ +.col-form-label, .form-label { display: block; font-weight: 500; } +.col-form-label.required:after, .form-label.required:after { content: "*"; margin-right: 0.25rem; @@ -16163,17 +19055,17 @@ Form switch } .list-group-item { - background-color: rgba(27, 125, 241, 0.02); + background-color: inherit; } .list-group-item.active { - background-color: inherit; + background-color: rgba(27, 125, 241, 0.02); border-right-color: #f59f00; border-right-width: 2px; } .list-group-item:active, .list-group-item:focus, .list-group-item:hover { - background-color: inherit; + background-color: rgba(27, 125, 241, 0.02); } .list-group-item.disabled, .list-group-item:disabled { @@ -17247,12 +20139,13 @@ a.step-item:hover { } } .status { + --tblr-status-height: 1.5rem; --tblr-status-color: #626976; --tblr-status-color-rgb: 98, 105, 118; display: inline-flex; align-items: center; - height: 2rem; - padding: 0.5rem 0.75rem; + height: var(--tblr-status-height); + padding: 0.25rem 0.75rem; gap: 0.5rem; color: var(--tblr-status-color); background: rgba(var(--tblr-status-color-rgb), 0.1); @@ -17794,7 +20687,7 @@ a.step-item:hover { } .table-mobile td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17828,7 +20721,7 @@ a.step-item:hover { } .table-mobile-sm td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17863,7 +20756,7 @@ a.step-item:hover { } .table-mobile-md td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17898,7 +20791,7 @@ a.step-item:hover { } .table-mobile-lg td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17933,7 +20826,7 @@ a.step-item:hover { } .table-mobile-xl td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -17968,7 +20861,7 @@ a.step-item:hover { } .table-mobile-xxl td { display: block; - padding: 0.5rem 0.75rem !important; + padding: 0.75rem 0.75rem !important; border: none; color: #1e293b !important; } @@ -18001,8 +20894,8 @@ a.step-item:hover { width: 100%; text-align: inherit; transition: color 0.3s; - margin: -0.5rem -0.5rem; - padding: 0.5rem 0.5rem; + margin: -0.5rem -0.75rem; + padding: 0.5rem 0.75rem; } @media (prefers-reduced-motion: reduce) { .table-sort { @@ -18082,6 +20975,114 @@ a.step-item:hover { --tblr-toast-color: #626976; } +.toast-blue { + --tblr-toast-color: #206bc4; +} + +.toast-azure { + --tblr-toast-color: #4299e1; +} + +.toast-indigo { + --tblr-toast-color: #4263eb; +} + +.toast-purple { + --tblr-toast-color: #ae3ec9; +} + +.toast-pink { + --tblr-toast-color: #d6336c; +} + +.toast-red { + --tblr-toast-color: #d63939; +} + +.toast-orange { + --tblr-toast-color: #f76707; +} + +.toast-yellow { + --tblr-toast-color: #f59f00; +} + +.toast-lime { + --tblr-toast-color: #74b816; +} + +.toast-green { + --tblr-toast-color: #2fb344; +} + +.toast-teal { + --tblr-toast-color: #0ca678; +} + +.toast-cyan { + --tblr-toast-color: #17a2b8; +} + +.toast-facebook { + --tblr-toast-color: #3b5998; +} + +.toast-twitter { + --tblr-toast-color: #1da1f2; +} + +.toast-linkedin { + --tblr-toast-color: #0a66c2; +} + +.toast-google { + --tblr-toast-color: #dc4e41; +} + +.toast-youtube { + --tblr-toast-color: #ff0000; +} + +.toast-vimeo { + --tblr-toast-color: #1ab7ea; +} + +.toast-dribbble { + --tblr-toast-color: #ea4c89; +} + +.toast-github { + --tblr-toast-color: #181717; +} + +.toast-instagram { + --tblr-toast-color: #e4405f; +} + +.toast-pinterest { + --tblr-toast-color: #bd081c; +} + +.toast-vk { + --tblr-toast-color: #6383a8; +} + +.toast-rss { + --tblr-toast-color: #ffa500; +} + +.toast-flickr { + --tblr-toast-color: #0063dc; +} + +.toast-bitbucket { + --tblr-toast-color: #0052cc; +} + +.toast-tabler { + --tblr-toast-color: #206bc4; +} + .toolbar { display: flex; flex-wrap: nowrap; @@ -18112,7 +21113,6 @@ Hr text } .hr-text:after, .hr-text:before { flex: 1 1 auto; - height: 1px; background-color: currentColor; opacity: 0.16; } @@ -18420,12 +21420,8 @@ Chart sparkline } .bg-primary { - color: #ffffff !important; - background: #206bc4 !important; -} - -.text-primary { - color: #206bc4 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-primary-rgb), var(--tblr-bg-opacity)) !important; } .bg-primary-lt { @@ -18434,12 +21430,8 @@ Chart sparkline } .bg-secondary { - color: #ffffff !important; - background: #626976 !important; -} - -.text-secondary { - color: #626976 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-secondary-rgb), var(--tblr-bg-opacity)) !important; } .bg-secondary-lt { @@ -18448,12 +21440,8 @@ Chart sparkline } .bg-success { - color: #ffffff !important; - background: #2fb344 !important; -} - -.text-success { - color: #2fb344 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-success-rgb), var(--tblr-bg-opacity)) !important; } .bg-success-lt { @@ -18462,12 +21450,8 @@ Chart sparkline } .bg-info { - color: #ffffff !important; - background: #4299e1 !important; -} - -.text-info { - color: #4299e1 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-info-rgb), var(--tblr-bg-opacity)) !important; } .bg-info-lt { @@ -18476,12 +21460,8 @@ Chart sparkline } .bg-warning { - color: #ffffff !important; - background: #f76707 !important; -} - -.text-warning { - color: #f76707 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-warning-rgb), var(--tblr-bg-opacity)) !important; } .bg-warning-lt { @@ -18490,12 +21470,8 @@ Chart sparkline } .bg-danger { - color: #ffffff !important; - background: #d63939 !important; -} - -.text-danger { - color: #d63939 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-danger-rgb), var(--tblr-bg-opacity)) !important; } .bg-danger-lt { @@ -18504,12 +21480,8 @@ Chart sparkline } .bg-light { - color: #ffffff !important; - background: #fafbfc !important; -} - -.text-light { - color: #fafbfc !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-light-rgb), var(--tblr-bg-opacity)) !important; } .bg-light-lt { @@ -18518,12 +21490,8 @@ Chart sparkline } .bg-dark { - color: #ffffff !important; - background: #1e293b !important; -} - -.text-dark { - color: #1e293b !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-dark-rgb), var(--tblr-bg-opacity)) !important; } .bg-dark-lt { @@ -18532,12 +21500,8 @@ Chart sparkline } .bg-muted { - color: #ffffff !important; - background: #626976 !important; -} - -.text-muted { - color: #626976 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-muted-rgb), var(--tblr-bg-opacity)) !important; } .bg-muted-lt { @@ -18546,12 +21510,8 @@ Chart sparkline } .bg-blue { - color: #ffffff !important; - background: #206bc4 !important; -} - -.text-blue { - color: #206bc4 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-blue-rgb), var(--tblr-bg-opacity)) !important; } .bg-blue-lt { @@ -18560,12 +21520,8 @@ Chart sparkline } .bg-azure { - color: #ffffff !important; - background: #4299e1 !important; -} - -.text-azure { - color: #4299e1 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-azure-rgb), var(--tblr-bg-opacity)) !important; } .bg-azure-lt { @@ -18574,12 +21530,8 @@ Chart sparkline } .bg-indigo { - color: #ffffff !important; - background: #4263eb !important; -} - -.text-indigo { - color: #4263eb !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-indigo-rgb), var(--tblr-bg-opacity)) !important; } .bg-indigo-lt { @@ -18588,12 +21540,8 @@ Chart sparkline } .bg-purple { - color: #ffffff !important; - background: #ae3ec9 !important; -} - -.text-purple { - color: #ae3ec9 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-purple-rgb), var(--tblr-bg-opacity)) !important; } .bg-purple-lt { @@ -18602,12 +21550,8 @@ Chart sparkline } .bg-pink { - color: #ffffff !important; - background: #d6336c !important; -} - -.text-pink { - color: #d6336c !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-pink-rgb), var(--tblr-bg-opacity)) !important; } .bg-pink-lt { @@ -18616,12 +21560,8 @@ Chart sparkline } .bg-red { - color: #ffffff !important; - background: #d63939 !important; -} - -.text-red { - color: #d63939 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-red-rgb), var(--tblr-bg-opacity)) !important; } .bg-red-lt { @@ -18630,12 +21570,8 @@ Chart sparkline } .bg-orange { - color: #ffffff !important; - background: #f76707 !important; -} - -.text-orange { - color: #f76707 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-orange-rgb), var(--tblr-bg-opacity)) !important; } .bg-orange-lt { @@ -18644,12 +21580,8 @@ Chart sparkline } .bg-yellow { - color: #ffffff !important; - background: #f59f00 !important; -} - -.text-yellow { - color: #f59f00 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-yellow-rgb), var(--tblr-bg-opacity)) !important; } .bg-yellow-lt { @@ -18658,12 +21590,8 @@ Chart sparkline } .bg-lime { - color: #ffffff !important; - background: #74b816 !important; -} - -.text-lime { - color: #74b816 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-lime-rgb), var(--tblr-bg-opacity)) !important; } .bg-lime-lt { @@ -18672,12 +21600,8 @@ Chart sparkline } .bg-green { - color: #ffffff !important; - background: #2fb344 !important; -} - -.text-green { - color: #2fb344 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-green-rgb), var(--tblr-bg-opacity)) !important; } .bg-green-lt { @@ -18686,12 +21610,8 @@ Chart sparkline } .bg-teal { - color: #ffffff !important; - background: #0ca678 !important; -} - -.text-teal { - color: #0ca678 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-teal-rgb), var(--tblr-bg-opacity)) !important; } .bg-teal-lt { @@ -18700,12 +21620,8 @@ Chart sparkline } .bg-cyan { - color: #ffffff !important; - background: #17a2b8 !important; -} - -.text-cyan { - color: #17a2b8 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-cyan-rgb), var(--tblr-bg-opacity)) !important; } .bg-cyan-lt { @@ -18714,12 +21630,8 @@ Chart sparkline } .bg-facebook { - color: #ffffff !important; - background: #3b5998 !important; -} - -.text-facebook { - color: #3b5998 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-facebook-rgb), var(--tblr-bg-opacity)) !important; } .bg-facebook-lt { @@ -18728,12 +21640,8 @@ Chart sparkline } .bg-twitter { - color: #ffffff !important; - background: #1da1f2 !important; -} - -.text-twitter { - color: #1da1f2 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-twitter-rgb), var(--tblr-bg-opacity)) !important; } .bg-twitter-lt { @@ -18742,12 +21650,8 @@ Chart sparkline } .bg-linkedin { - color: #ffffff !important; - background: #0a66c2 !important; -} - -.text-linkedin { - color: #0a66c2 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-linkedin-rgb), var(--tblr-bg-opacity)) !important; } .bg-linkedin-lt { @@ -18756,12 +21660,8 @@ Chart sparkline } .bg-google { - color: #ffffff !important; - background: #dc4e41 !important; -} - -.text-google { - color: #dc4e41 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-google-rgb), var(--tblr-bg-opacity)) !important; } .bg-google-lt { @@ -18770,12 +21670,8 @@ Chart sparkline } .bg-youtube { - color: #ffffff !important; - background: #ff0000 !important; -} - -.text-youtube { - color: #ff0000 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-youtube-rgb), var(--tblr-bg-opacity)) !important; } .bg-youtube-lt { @@ -18784,12 +21680,8 @@ Chart sparkline } .bg-vimeo { - color: #ffffff !important; - background: #1ab7ea !important; -} - -.text-vimeo { - color: #1ab7ea !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-vimeo-rgb), var(--tblr-bg-opacity)) !important; } .bg-vimeo-lt { @@ -18798,12 +21690,8 @@ Chart sparkline } .bg-dribbble { - color: #ffffff !important; - background: #ea4c89 !important; -} - -.text-dribbble { - color: #ea4c89 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-dribbble-rgb), var(--tblr-bg-opacity)) !important; } .bg-dribbble-lt { @@ -18812,12 +21700,8 @@ Chart sparkline } .bg-github { - color: #ffffff !important; - background: #181717 !important; -} - -.text-github { - color: #181717 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-github-rgb), var(--tblr-bg-opacity)) !important; } .bg-github-lt { @@ -18826,12 +21710,8 @@ Chart sparkline } .bg-instagram { - color: #ffffff !important; - background: #e4405f !important; -} - -.text-instagram { - color: #e4405f !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-instagram-rgb), var(--tblr-bg-opacity)) !important; } .bg-instagram-lt { @@ -18840,12 +21720,8 @@ Chart sparkline } .bg-pinterest { - color: #ffffff !important; - background: #bd081c !important; -} - -.text-pinterest { - color: #bd081c !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-pinterest-rgb), var(--tblr-bg-opacity)) !important; } .bg-pinterest-lt { @@ -18854,12 +21730,8 @@ Chart sparkline } .bg-vk { - color: #ffffff !important; - background: #6383a8 !important; -} - -.text-vk { - color: #6383a8 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-vk-rgb), var(--tblr-bg-opacity)) !important; } .bg-vk-lt { @@ -18868,12 +21740,8 @@ Chart sparkline } .bg-rss { - color: #ffffff !important; - background: #ffa500 !important; -} - -.text-rss { - color: #ffa500 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-rss-rgb), var(--tblr-bg-opacity)) !important; } .bg-rss-lt { @@ -18882,12 +21750,8 @@ Chart sparkline } .bg-flickr { - color: #ffffff !important; - background: #0063dc !important; -} - -.text-flickr { - color: #0063dc !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-flickr-rgb), var(--tblr-bg-opacity)) !important; } .bg-flickr-lt { @@ -18896,12 +21760,8 @@ Chart sparkline } .bg-bitbucket { - color: #ffffff !important; - background: #0052cc !important; -} - -.text-bitbucket { - color: #0052cc !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-bg-opacity)) !important; } .bg-bitbucket-lt { @@ -18910,12 +21770,8 @@ Chart sparkline } .bg-tabler { - color: #ffffff !important; - background: #206bc4 !important; -} - -.text-tabler { - color: #206bc4 !important; + --tblr-bg-opacity: 1; + background-color: rgba(var(--tblr-tabler-rgb), var(--tblr-bg-opacity)) !important; } .bg-tabler-lt { @@ -18923,6 +21779,150 @@ Chart sparkline background: rgba(32, 107, 196, 0.05) !important; } +.text-primary { + color: var(--tblr-primary) !important; +} + +.text-secondary { + color: var(--tblr-secondary) !important; +} + +.text-success { + color: var(--tblr-success) !important; +} + +.text-info { + color: var(--tblr-info) !important; +} + +.text-warning { + color: var(--tblr-warning) !important; +} + +.text-danger { + color: var(--tblr-danger) !important; +} + +.text-light { + color: var(--tblr-light) !important; +} + +.text-dark { + color: var(--tblr-dark) !important; +} + +.text-muted { + color: var(--tblr-muted) !important; +} + +.text-blue { + color: var(--tblr-blue) !important; +} + +.text-azure { + color: var(--tblr-azure) !important; +} + +.text-indigo { + color: var(--tblr-indigo) !important; +} + +.text-purple { + color: var(--tblr-purple) !important; +} + +.text-pink { + color: var(--tblr-pink) !important; +} + +.text-red { + color: var(--tblr-red) !important; +} + +.text-orange { + color: var(--tblr-orange) !important; +} + +.text-yellow { + color: var(--tblr-yellow) !important; +} + +.text-lime { + color: var(--tblr-lime) !important; +} + +.text-green { + color: var(--tblr-green) !important; +} + +.text-teal { + color: var(--tblr-teal) !important; +} + +.text-cyan { + color: var(--tblr-cyan) !important; +} + +.text-facebook { + color: var(--tblr-facebook) !important; +} + +.text-twitter { + color: var(--tblr-twitter) !important; +} + +.text-linkedin { + color: var(--tblr-linkedin) !important; +} + +.text-google { + color: var(--tblr-google) !important; +} + +.text-youtube { + color: var(--tblr-youtube) !important; +} + +.text-vimeo { + color: var(--tblr-vimeo) !important; +} + +.text-dribbble { + color: var(--tblr-dribbble) !important; +} + +.text-github { + color: var(--tblr-github) !important; +} + +.text-instagram { + color: var(--tblr-instagram) !important; +} + +.text-pinterest { + color: var(--tblr-pinterest) !important; +} + +.text-vk { + color: var(--tblr-vk) !important; +} + +.text-rss { + color: var(--tblr-rss) !important; +} + +.text-flickr { + color: var(--tblr-flickr) !important; +} + +.text-bitbucket { + color: var(--tblr-bitbucket) !important; +} + +.text-tabler { + color: var(--tblr-tabler) !important; +} + /* Scrollable */ diff --git a/demo/dist/css/tabler.rtl.min.css b/demo/dist/css/tabler.rtl.min.css index e43eaba46..8afa35d8c 100644 --- a/demo/dist/css/tabler.rtl.min.css +++ b/demo/dist/css/tabler.rtl.min.css @@ -1,14 +1,14 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) */ -@charset "UTF-8";:root{--tblr-blue:#206bc4;--tblr-indigo:#4263eb;--tblr-purple:#ae3ec9;--tblr-pink:#d6336c;--tblr-red:#d63939;--tblr-orange:#f76707;--tblr-yellow:#f59f00;--tblr-green:#2fb344;--tblr-teal:#0ca678;--tblr-cyan:#17a2b8;--tblr-white:#ffffff;--tblr-gray:#475569;--tblr-gray-dark:#1e293b;--tblr-gray-100:#f1f5f9;--tblr-gray-200:#e2e8f0;--tblr-gray-300:#cbd5e1;--tblr-gray-400:#94a3b8;--tblr-gray-500:#64748b;--tblr-gray-600:#475569;--tblr-gray-700:#334155;--tblr-gray-800:#1e293b;--tblr-gray-900:#0f172a;--tblr-primary:#206bc4;--tblr-secondary:#626976;--tblr-success:#2fb344;--tblr-info:#4299e1;--tblr-warning:#f76707;--tblr-danger:#d63939;--tblr-light:#fafbfc;--tblr-dark:#1e293b;--tblr-muted:#626976;--tblr-primary-rgb:32,107,196;--tblr-secondary-rgb:98,105,118;--tblr-success-rgb:47,179,68;--tblr-info-rgb:66,153,225;--tblr-warning-rgb:247,103,7;--tblr-danger-rgb:214,57,57;--tblr-light-rgb:250,251,252;--tblr-dark-rgb:30,41,59;--tblr-muted-rgb:98,105,118;--tblr-white-rgb:255,255,255;--tblr-black-rgb:0,0,0;--tblr-body-color-rgb:30,41,59;--tblr-body-bg-rgb:245,247,251;--tblr-font-sans-serif:-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;--tblr-font-monospace:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--tblr-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--tblr-body-font-family:var(--tblr-font-sans-serif);--tblr-body-font-size:0.875rem;--tblr-body-font-weight:400;--tblr-body-line-height:1.4285714286;--tblr-body-color:#1e293b;--tblr-body-bg:#f5f7fb}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--tblr-body-font-family);font-size:var(--tblr-body-font-size);font-weight:var(--tblr-body-font-weight);line-height:var(--tblr-body-line-height);color:var(--tblr-body-color);text-align:var(--tblr-body-text-align);background-color:var(--tblr-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.hr,hr{margin:2rem 0;color:inherit;background-color:currentColor;border:0;opacity:.16}.hr:not([size]),hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:600;line-height:1.2}.h1,h1{font-size:1.5rem}.h2,h2{font-size:1.25rem}.h3,h3{font-size:1rem}.h4,h4{font-size:.875rem}.h5,h5{font-size:.75rem}.h6,h6{font-size:.625rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:85.71428571%}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#206bc4;text-decoration:none}a:hover{color:#1a569d;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--tblr-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:85.71428571%}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:85.71428571%;color:#4b5462;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:85.71428571%;color:#fff;background-color:#0f172a;border-radius:2px}kbd kbd{padding:0;font-size:1em;font-weight:600}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#626976;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:.875rem;font-weight:400}.display-1{font-size:5rem;font-weight:300;line-height:1.2}.display-2{font-size:4.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}.display-5{font-size:3rem;font-weight:300;line-height:1.2}.display-6{font-size:2.5rem;font-weight:300;line-height:1.2}.list-unstyled{padding-right:0;list-style:none}.list-inline{padding-right:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-left:.5rem}.initialism{font-size:85.71428571%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:.875rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:85.71428571%;color:#475569}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#f5f7fb;border:1px solid #cbd5e1;border-radius:4px;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:85.71428571%;color:#475569}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-left:var(--tblr-gutter-x,1.5rem);padding-right:var(--tblr-gutter-x,1.5rem);margin-left:auto;margin-right:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--tblr-gutter-x:1rem;--tblr-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--tblr-gutter-y));margin-left:calc(-.5 * var(--tblr-gutter-x));margin-right:calc(-.5 * var(--tblr-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-left:calc(var(--tblr-gutter-x) * .5);padding-right:calc(var(--tblr-gutter-x) * .5);margin-top:var(--tblr-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-right:8.33333333%}.offset-2{margin-right:16.66666667%}.offset-3{margin-right:25%}.offset-4{margin-right:33.33333333%}.offset-5{margin-right:41.66666667%}.offset-6{margin-right:50%}.offset-7{margin-right:58.33333333%}.offset-8{margin-right:66.66666667%}.offset-9{margin-right:75%}.offset-10{margin-right:83.33333333%}.offset-11{margin-right:91.66666667%}.g-0,.gx-0{--tblr-gutter-x:0}.g-0,.gy-0{--tblr-gutter-y:0}.g-1,.gx-1{--tblr-gutter-x:0.25rem}.g-1,.gy-1{--tblr-gutter-y:0.25rem}.g-2,.gx-2{--tblr-gutter-x:0.5rem}.g-2,.gy-2{--tblr-gutter-y:0.5rem}.g-3,.gx-3{--tblr-gutter-x:1rem}.g-3,.gy-3{--tblr-gutter-y:1rem}.g-4,.gx-4{--tblr-gutter-x:2rem}.g-4,.gy-4{--tblr-gutter-y:2rem}.g-5,.gx-5{--tblr-gutter-x:4rem}.g-5,.gy-5{--tblr-gutter-y:4rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-right:0}.offset-sm-1{margin-right:8.33333333%}.offset-sm-2{margin-right:16.66666667%}.offset-sm-3{margin-right:25%}.offset-sm-4{margin-right:33.33333333%}.offset-sm-5{margin-right:41.66666667%}.offset-sm-6{margin-right:50%}.offset-sm-7{margin-right:58.33333333%}.offset-sm-8{margin-right:66.66666667%}.offset-sm-9{margin-right:75%}.offset-sm-10{margin-right:83.33333333%}.offset-sm-11{margin-right:91.66666667%}.g-sm-0,.gx-sm-0{--tblr-gutter-x:0}.g-sm-0,.gy-sm-0{--tblr-gutter-y:0}.g-sm-1,.gx-sm-1{--tblr-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--tblr-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--tblr-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--tblr-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--tblr-gutter-x:1rem}.g-sm-3,.gy-sm-3{--tblr-gutter-y:1rem}.g-sm-4,.gx-sm-4{--tblr-gutter-x:2rem}.g-sm-4,.gy-sm-4{--tblr-gutter-y:2rem}.g-sm-5,.gx-sm-5{--tblr-gutter-x:4rem}.g-sm-5,.gy-sm-5{--tblr-gutter-y:4rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-right:0}.offset-md-1{margin-right:8.33333333%}.offset-md-2{margin-right:16.66666667%}.offset-md-3{margin-right:25%}.offset-md-4{margin-right:33.33333333%}.offset-md-5{margin-right:41.66666667%}.offset-md-6{margin-right:50%}.offset-md-7{margin-right:58.33333333%}.offset-md-8{margin-right:66.66666667%}.offset-md-9{margin-right:75%}.offset-md-10{margin-right:83.33333333%}.offset-md-11{margin-right:91.66666667%}.g-md-0,.gx-md-0{--tblr-gutter-x:0}.g-md-0,.gy-md-0{--tblr-gutter-y:0}.g-md-1,.gx-md-1{--tblr-gutter-x:0.25rem}.g-md-1,.gy-md-1{--tblr-gutter-y:0.25rem}.g-md-2,.gx-md-2{--tblr-gutter-x:0.5rem}.g-md-2,.gy-md-2{--tblr-gutter-y:0.5rem}.g-md-3,.gx-md-3{--tblr-gutter-x:1rem}.g-md-3,.gy-md-3{--tblr-gutter-y:1rem}.g-md-4,.gx-md-4{--tblr-gutter-x:2rem}.g-md-4,.gy-md-4{--tblr-gutter-y:2rem}.g-md-5,.gx-md-5{--tblr-gutter-x:4rem}.g-md-5,.gy-md-5{--tblr-gutter-y:4rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-right:0}.offset-lg-1{margin-right:8.33333333%}.offset-lg-2{margin-right:16.66666667%}.offset-lg-3{margin-right:25%}.offset-lg-4{margin-right:33.33333333%}.offset-lg-5{margin-right:41.66666667%}.offset-lg-6{margin-right:50%}.offset-lg-7{margin-right:58.33333333%}.offset-lg-8{margin-right:66.66666667%}.offset-lg-9{margin-right:75%}.offset-lg-10{margin-right:83.33333333%}.offset-lg-11{margin-right:91.66666667%}.g-lg-0,.gx-lg-0{--tblr-gutter-x:0}.g-lg-0,.gy-lg-0{--tblr-gutter-y:0}.g-lg-1,.gx-lg-1{--tblr-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--tblr-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--tblr-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--tblr-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--tblr-gutter-x:1rem}.g-lg-3,.gy-lg-3{--tblr-gutter-y:1rem}.g-lg-4,.gx-lg-4{--tblr-gutter-x:2rem}.g-lg-4,.gy-lg-4{--tblr-gutter-y:2rem}.g-lg-5,.gx-lg-5{--tblr-gutter-x:4rem}.g-lg-5,.gy-lg-5{--tblr-gutter-y:4rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-right:0}.offset-xl-1{margin-right:8.33333333%}.offset-xl-2{margin-right:16.66666667%}.offset-xl-3{margin-right:25%}.offset-xl-4{margin-right:33.33333333%}.offset-xl-5{margin-right:41.66666667%}.offset-xl-6{margin-right:50%}.offset-xl-7{margin-right:58.33333333%}.offset-xl-8{margin-right:66.66666667%}.offset-xl-9{margin-right:75%}.offset-xl-10{margin-right:83.33333333%}.offset-xl-11{margin-right:91.66666667%}.g-xl-0,.gx-xl-0{--tblr-gutter-x:0}.g-xl-0,.gy-xl-0{--tblr-gutter-y:0}.g-xl-1,.gx-xl-1{--tblr-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--tblr-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--tblr-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--tblr-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--tblr-gutter-x:1rem}.g-xl-3,.gy-xl-3{--tblr-gutter-y:1rem}.g-xl-4,.gx-xl-4{--tblr-gutter-x:2rem}.g-xl-4,.gy-xl-4{--tblr-gutter-y:2rem}.g-xl-5,.gx-xl-5{--tblr-gutter-x:4rem}.g-xl-5,.gy-xl-5{--tblr-gutter-y:4rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-right:0}.offset-xxl-1{margin-right:8.33333333%}.offset-xxl-2{margin-right:16.66666667%}.offset-xxl-3{margin-right:25%}.offset-xxl-4{margin-right:33.33333333%}.offset-xxl-5{margin-right:41.66666667%}.offset-xxl-6{margin-right:50%}.offset-xxl-7{margin-right:58.33333333%}.offset-xxl-8{margin-right:66.66666667%}.offset-xxl-9{margin-right:75%}.offset-xxl-10{margin-right:83.33333333%}.offset-xxl-11{margin-right:91.66666667%}.g-xxl-0,.gx-xxl-0{--tblr-gutter-x:0}.g-xxl-0,.gy-xxl-0{--tblr-gutter-y:0}.g-xxl-1,.gx-xxl-1{--tblr-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--tblr-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--tblr-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--tblr-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--tblr-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--tblr-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--tblr-gutter-x:2rem}.g-xxl-4,.gy-xxl-4{--tblr-gutter-y:2rem}.g-xxl-5,.gx-xxl-5{--tblr-gutter-x:4rem}.g-xxl-5,.gy-xxl-5{--tblr-gutter-y:4rem}}.markdown>table,.table{--tblr-table-bg:transparent;--tblr-table-accent-bg:transparent;--tblr-table-striped-color:inherit;--tblr-table-striped-bg:var(--tblr-border-color-light);--tblr-table-active-color:inherit;--tblr-table-active-bg:rgba(0, 0, 0, 0.1);--tblr-table-hover-color:inherit;--tblr-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:inherit;vertical-align:top;border-color:rgba(98,105,118,.16)}.markdown>table>:not(caption)>*>*,.table>:not(caption)>*>*{padding:.75rem .5rem;background-color:var(--tblr-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--tblr-table-accent-bg)}.markdown>table>tbody,.table>tbody{vertical-align:inherit}.markdown>table>thead,.table>thead{vertical-align:bottom}.markdown>table>:not(:first-child),.table>:not(:first-child){border-top:2px solid rgba(98,105,118,.16)}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.markdown>table>:not(caption)>*,.table-bordered>:not(caption)>*{border-width:1px 0}.markdown>table>:not(caption)>*>*,.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(even)>*{--tblr-table-accent-bg:var(--tblr-table-striped-bg);color:var(--tblr-table-striped-color)}.table-active{--tblr-table-accent-bg:var(--tblr-table-active-bg);color:var(--tblr-table-active-color)}.table-hover>tbody>tr:hover>*{--tblr-table-accent-bg:var(--tblr-table-hover-bg);color:var(--tblr-table-hover-color)}.table-primary{--tblr-table-bg:#d2e1f3;--tblr-table-striped-bg:#c9d8ea;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c0cfe1;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#c5d3e5;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#c0cfe1}.table-secondary{--tblr-table-bg:#e0e1e4;--tblr-table-striped-bg:#d6d8dc;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#cdcfd3;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#d1d3d7;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#cdcfd3}.table-success{--tblr-table-bg:#d5f0da;--tblr-table-striped-bg:#cce6d2;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c3dcca;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#c7e1ce;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#c3dcca}.table-info{--tblr-table-bg:#d9ebf9;--tblr-table-striped-bg:#d0e1f0;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c6d8e6;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#cbdceb;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#c6d8e6}.table-warning{--tblr-table-bg:#fde1cd;--tblr-table-striped-bg:#f2d8c6;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e7cfbe;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#ecd3c2;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#e7cfbe}.table-danger{--tblr-table-bg:#f7d7d7;--tblr-table-striped-bg:#eccecf;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e1c6c7;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#e7cacb;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#e1c6c7}.table-light{--tblr-table-bg:#fafbfc;--tblr-table-striped-bg:#eff1f2;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e4e6e9;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#eaebee;--tblr-table-hover-color:#1e293b;color:#1e293b;border-color:#e4e6e9}.table-dark{--tblr-table-bg:#1e293b;--tblr-table-striped-bg:#293445;--tblr-table-striped-color:#fafbfc;--tblr-table-active-bg:#343e4e;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#2f3949;--tblr-table-hover-color:#fafbfc;color:#fafbfc;border-color:#343e4e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem;font-size:.875rem;font-weight:500}.col-form-label{padding-top:calc(.4375rem + 1px);padding-bottom:calc(.4375rem + 1px);margin-bottom:0;font-size:inherit;font-weight:500;line-height:1.4285714286}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.125rem + 1px);padding-bottom:calc(.125rem + 1px);font-size:.75rem}.form-text{margin-top:.25rem;font-size:85.71428571%;color:#626976}.form-control{display:block;width:100%;padding:.4375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:inherit;background-color:#fff;background-clip:padding-box;border:1px solid #d9dbde;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:4px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:inherit;background-color:#fff;border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-control::-webkit-date-and-time-value{height:1.4285714286em}.form-control::-webkit-input-placeholder{color:#a5a9b1;opacity:1}.form-control::-moz-placeholder{color:#a5a9b1;opacity:1}.form-control:-ms-input-placeholder{color:#a5a9b1;opacity:1}.form-control::-ms-input-placeholder{color:#a5a9b1;opacity:1}.form-control::placeholder{color:#a5a9b1;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#fafbfc;opacity:1}.form-control::-webkit-file-upload-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#eeeeef}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#eeeeef}.form-control::-webkit-file-upload-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#eeeeef}.form-control-plaintext{display:block;width:100%;padding:.4375rem 0;margin-bottom:0;line-height:1.4285714286;color:#1e293b;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-left:0;padding-right:0}.form-control-sm{min-height:calc(1.4285714286em + .25rem + 2px);padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.form-control-sm::-webkit-file-upload-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.4285714286em + 1rem + 2px);padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.form-control-lg::file-selector-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}textarea.form-control{min-height:calc(1.4285714286em + .875rem + 2px)}textarea.form-control-sm{min-height:calc(1.4285714286em + .25rem + 2px)}textarea.form-control-lg{min-height:calc(1.4285714286em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.4375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.4285714286em;border-radius:4px}.form-control-color::-webkit-color-swatch{height:1.4285714286em;border-radius:4px}.form-select{display:block;width:100%;padding:.4375rem .75rem .4375rem 2.25rem;-moz-padding-start:calc(.75rem - 3px);font-size:.875rem;font-weight:400;line-height:1.4285714286;color:inherit;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left .75rem center;background-size:16px 12px;border:1px solid #d9dbde;border-radius:4px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-left:.75rem;background-image:none}.form-select:disabled{background-color:#e2e8f0}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 inherit}.form-select-sm{padding-top:.125rem;padding-bottom:.125rem;padding-right:.5rem;font-size:.75rem;border-radius:2px}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-right:1.5rem;font-size:1.25rem;border-radius:8px}.form-check{display:block;min-height:1.25rem;padding-right:1.5rem;margin-bottom:.5rem}.form-check .form-check-input{float:right;margin-right:-1.5rem}.form-check-input{width:1rem;height:1rem;margin-top:.2142857143rem;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(98,105,118,.24);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:4px}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-check-input:checked{background-color:#206bc4;border-color:rgba(98,105,118,.24)}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#206bc4;border-color:#206bc4;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.7}.form-switch{padding-right:2.5rem}.form-switch .form-check-input{width:2rem;margin-right:-2.5rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23e6e7e9'/%3e%3c/svg%3e");background-position:right center;border-radius:2rem;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2390b5e2'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:left center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-left:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.25rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.375rem;background-color:#206bc4;border:2px solid var(--tblr-border-color-light);border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bcd3ed}.form-range::-webkit-slider-runnable-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color-light);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#206bc4;border:2px solid var(--tblr-border-color-light);border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#bcd3ed}.form-range::-moz-range-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color-light);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#64748b}.form-range:disabled::-moz-range-thumb{background-color:#64748b}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;right:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:100% 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control::-ms-input-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.4375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:#626976;text-align:center;white-space:nowrap;background-color:#fafbfc;border:1px solid #d9dbde;border-radius:4px}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-left:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-left-radius:0;border-bottom-left-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.71428571%;color:#2fb344}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;color:#fafbfc;background-color:rgba(47,179,68,.9);border-radius:4px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#2fb344;padding-left:calc(1.4285714286em + .875rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-left:calc(1.4285714286em + .875rem);background-position:top calc(.3571428572em + .21875rem) left calc(.3571428572em + .21875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#2fb344}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-left:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:left .75rem center,center left 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#2fb344}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#2fb344}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#2fb344}.form-check-inline .form-check-input~.valid-feedback{margin-right:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.71428571%;color:#d63939}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;color:#fafbfc;background-color:rgba(214,57,57,.9);border-radius:4px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#d63939;padding-left:calc(1.4285714286em + .875rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-left:calc(1.4285714286em + .875rem);background-position:top calc(.3571428572em + .21875rem) left calc(.3571428572em + .21875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#d63939}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-left:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:left .75rem center,center left 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#d63939}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#d63939}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#d63939}.form-check-inline .form-check-input~.invalid-feedback{margin-right:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:500;line-height:1.4285714286;color:#1e293b;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4375rem 1rem;font-size:.875rem;border-radius:4px;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#1e293b;text-decoration:none}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-link{font-weight:400;color:#206bc4;text-decoration:none}.btn-link:hover{color:#1a569d;text-decoration:underline}.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#475569}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.btn-group-sm>.btn,.btn-sm{padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(45deg)}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:11rem;padding:.25rem 0;margin:0;font-size:.875rem;color:#1e293b;text-align:right;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(98,105,118,.16);border-radius:4px}.dropdown-menu[data-bs-popper]{top:100%;right:0;margin-top:1px}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{left:0;right:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{left:0;right:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{left:0;right:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{left:0;right:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{left:0;right:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{left:0;right:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:1px}.dropup .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(-135deg)}.dropend .dropdown-menu[data-bs-popper]{top:0;left:auto;right:100%;margin-top:0;margin-right:1px}.dropend .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(135deg)}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;left:100%;right:auto;margin-top:0;margin-left:1px}.dropstart .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(-45deg)}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(98,105,118,.16)}.dropdown-item{display:block;width:100%;padding:.5rem .75rem;clear:both;font-weight:400;color:inherit;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:inherit;text-decoration:none;background-color:rgba(98,105,118,.04)}.dropdown-item.active,.dropdown-item:active{color:#206bc4;text-decoration:none;background-color:rgba(32,107,196,.04)}.dropdown-item.disabled,.dropdown-item:disabled{color:#64748b;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.25rem .75rem;margin-bottom:0;font-size:.765625rem;color:#475569;white-space:nowrap}.dropdown-item-text{display:block;padding:.5rem .75rem;color:inherit}.dropdown-menu-dark{color:#cbd5e1;background-color:#1e293b;border-color:rgba(98,105,118,.16)}.dropdown-menu-dark .dropdown-item{color:#cbd5e1}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#206bc4;background-color:rgba(32,107,196,.04)}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#64748b}.dropdown-menu-dark .dropdown-divider{border-color:rgba(98,105,118,.16)}.dropdown-menu-dark .dropdown-item-text{color:#cbd5e1}.dropdown-menu-dark .dropdown-header{color:#64748b}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-right:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-toggle-split{padding-left:.75rem;padding-right:.75rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-right:0}.dropstart .dropdown-toggle-split::before{margin-left:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-left:.375rem;padding-right:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-left:1.125rem;padding-right:1.125rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-right-radius:0;border-top-left-radius:0}.nav{display:flex;flex-wrap:wrap;padding-right:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem .75rem;color:inherit;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#1a569d;text-decoration:none}.nav-link.disabled{color:#475569;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #cbd5e1}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-right-radius:4px;border-top-left-radius:4px}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e2e8f0 #e2e8f0 #cbd5e1;isolation:isolate}.nav-tabs .nav-link.disabled{color:#475569;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#334155;background-color:#f5f7fb;border-color:#cbd5e1 #cbd5e1 #f5f7fb}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:4px}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#206bc4;background-color:rgba(32,107,196,.04)}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.25rem;padding-bottom:.25rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.5rem;padding-bottom:.5rem;margin-left:1rem;font-size:1rem;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-right:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-left:0;padding-right:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:0 0;font-size:1rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:4px;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--tblr-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-left:.75rem;padding-right:.75rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-left:0;border-right:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-left:.75rem;padding-right:.75rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-left:0;border-right:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.75rem;padding-right:.75rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-left:0;border-right:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-left:.75rem;padding-right:.75rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-left:0;border-right:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-left:.75rem;padding-right:.75rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-left:0;border-right:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-left:.75rem;padding-right:.75rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-left:0;border-right:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:#1e293b}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:#1e293b}.navbar-light .navbar-nav .nav-link{color:rgba(30,41,59,.7)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(30,41,59,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:#1e293b}.navbar-light .navbar-toggler{color:rgba(30,41,59,.7);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2830, 41, 59, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(30,41,59,.7)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:#1e293b}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.7)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(98,105,118,.16);border-radius:4px}.card>.hr,.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-right-radius:3px;border-top-left-radius:3px}.card>.list-group:last-child{border-bottom-width:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1.25rem}.card-title{margin-bottom:1.25rem}.card-subtitle{margin-top:-.625rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-right:1.25rem}.card-header{padding:1rem 1.25rem;margin-bottom:0;color:#626976;background-color:#fafbfc;border-bottom:1px solid rgba(98,105,118,.16)}.card-header:first-child{border-radius:3px 3px 0 0}.card-footer{padding:1rem 1.25rem;color:#626976;background-color:#fafbfc;border-top:1px solid rgba(98,105,118,.16)}.card-footer:last-child{border-radius:0 0 3px 3px}.card-header-tabs{margin-left:-.625rem;margin-bottom:-1rem;margin-right:-.625rem;border-bottom:0}.card-header-tabs .nav-link.active{background-color:#fff;border-bottom-color:#fff}.card-header-pills{margin-left:-.625rem;margin-right:-.625rem}.card-img-overlay{position:absolute;top:0;left:0;bottom:0;right:0;padding:1rem;border-radius:3px}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-right-radius:3px;border-top-left-radius:3px}.card-img,.card-img-bottom{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.card-group>.card{margin-bottom:1.5rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-right:0;border-right:0}.card-group>.card:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:not(:first-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-right-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:.875rem;color:#1e293b;text-align:right;background-color:transparent;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:inherit;background-color:transparent;box-shadow:inset 0 -1px 0 rgba(98,105,118,.16)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='inherit'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(180deg)}.accordion-button::after{flex-shrink:0;width:1rem;height:1rem;margin-right:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231e293b'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:rgba(98,105,118,.16);outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:transparent;border:1px solid rgba(98,105,118,.16)}.accordion-item:first-of-type{border-top-right-radius:4px;border-top-left-radius:4px}.accordion-item:first-of-type .accordion-button{border-top-right-radius:3px;border-top-left-radius:3px}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.accordion-item:last-of-type .accordion-collapse{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-left:0;border-right:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-right:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:right;padding-left:.5rem;color:#626976;content:var(--tblr-breadcrumb-divider, "/")}.breadcrumb-item.active{color:inherit}.pagination{display:flex;padding-right:0;list-style:none}.page-link{position:relative;display:block;color:#626976;background-color:transparent;border:0 solid #cbd5e1;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#1a569d;text-decoration:none;background-color:#e2e8f0;border-color:#cbd5e1}.page-link:focus{z-index:3;color:#1a569d;background-color:#e2e8f0;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.page-item:not(:first-child) .page-link{margin-right:0}.page-item.active .page-link{z-index:3;color:#fff;background-color:#206bc4;border-color:#206bc4}.page-item.disabled .page-link{color:rgba(98,105,118,.5);pointer-events:none;background-color:transparent;border-color:#cbd5e1}.page-link{padding:.25rem .25rem}.page-item:first-child .page-link{border-top-right-radius:4px;border-bottom-right-radius:4px}.page-item:last-child .page-link{border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.09375rem}.pagination-lg .page-item:first-child .page-link{border-top-right-radius:8px;border-bottom-right-radius:8px}.pagination-lg .page-item:last-child .page-link{border-top-left-radius:8px;border-bottom-left-radius:8px}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.765625rem}.pagination-sm .page-item:first-child .page-link{border-top-right-radius:2px;border-bottom-right-radius:2px}.pagination-sm .page-item:last-child .page-link{border-top-left-radius:2px;border-bottom-left-radius:2px}.badge{display:inline-block;padding:.25em .5em;font-size:85.71428571%;font-weight:500;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:4px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:4px}.alert-heading{color:inherit}.alert-link{font-weight:600}.alert-dismissible{padding-left:3rem}.alert-dismissible .btn-close{position:absolute;top:0;left:0;z-index:2;padding:1.25rem 1rem}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:.5rem}}@keyframes progress-bar-stripes{0%{background-position-x:.5rem}}.progress{display:flex;height:.5rem;overflow:hidden;font-size:.65625rem;background-color:#e6e7e9;border-radius:4px}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#206bc4;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:.5rem .5rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-right:0;margin-bottom:0;border-radius:4px}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:inherit;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:inherit;text-decoration:none;background-color:rgba(98,105,118,.04)}.list-group-item-action:active{color:#1e293b;background-color:#e2e8f0}.list-group-item{position:relative;display:block;padding:1rem 1.25rem;color:#0f172a;background-color:inherit;border:1px solid #e6e7e9}.list-group-item:first-child{border-top-right-radius:inherit;border-top-left-radius:inherit}.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#475569;pointer-events:none;background-color:inherit}.list-group-item.active{z-index:2;color:inherit;background-color:rgba(32,107,196,.04);border-color:#e6e7e9}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-right-radius:4px;border-top-left-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-left-radius:4px;border-bottom-right-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-right-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-right:-1px;border-right-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-right-radius:4px;border-top-left-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-left-radius:4px;border-bottom-right-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-right-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-right:-1px;border-right-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-right-radius:4px;border-top-left-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-left-radius:4px;border-bottom-right-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-right-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-right:-1px;border-right-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-right-radius:4px;border-top-left-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-left-radius:4px;border-bottom-right-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-right-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-right:-1px;border-right-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-right-radius:4px;border-top-left-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-left-radius:4px;border-bottom-right-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-right-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-right:-1px;border-right-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-right-radius:4px;border-top-left-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-left-radius:4px;border-bottom-right-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-right-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-right:-1px;border-right-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#134076;background-color:#d2e1f3}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#134076;background-color:#bdcbdb}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#134076;border-color:#134076}.list-group-item-secondary{color:#3b3f47;background-color:#e0e1e4}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#3b3f47;background-color:#cacbcd}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#3b3f47;border-color:#3b3f47}.list-group-item-success{color:#1c6b29;background-color:#d5f0da}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#1c6b29;background-color:#c0d8c4}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1c6b29;border-color:#1c6b29}.list-group-item-info{color:#285c87;background-color:#d9ebf9}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#285c87;background-color:#c3d4e0}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#285c87;border-color:#285c87}.list-group-item-warning{color:#943e04;background-color:#fde1cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#943e04;background-color:#e4cbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#943e04;border-color:#943e04}.list-group-item-danger{color:#802222;background-color:#f7d7d7}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#802222;background-color:#dec2c2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#802222;border-color:#802222}.list-group-item-light{color:#969797;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#969797;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#969797;border-color:#969797}.list-group-item-dark{color:#121923;background-color:#d2d4d8}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#121923;background-color:#bdbfc2}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#121923;border-color:#121923}.list-group-item-muted{color:#3b3f47;background-color:#e0e1e4}.list-group-item-muted.list-group-item-action:focus,.list-group-item-muted.list-group-item-action:hover{color:#3b3f47;background-color:#cacbcd}.list-group-item-muted.list-group-item-action.active{color:#fff;background-color:#3b3f47;border-color:#3b3f47}.btn-close{box-sizing:content-box;width:.75rem;height:.75rem;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/.75rem auto no-repeat;border:0;border-radius:4px;opacity:.3}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid #e6e7e9;box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:4px}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:1.5rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#626976;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-right-radius:3px;border-top-left-radius:3px}.toast-header .btn-close{margin-left:-.375rem;margin-right:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;right:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-1rem)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fafbfc;background-clip:padding-box;border:1px solid transparent;border-radius:4px;outline:0}.modal-backdrop{position:fixed;top:0;right:0;z-index:1050;width:100vw;height:100vh;background-color:#1e293b}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.24}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e6e7e9;border-top-right-radius:3px;border-top-left-radius:3px}.modal-header .btn-close{padding:.75rem .75rem;margin:-.75rem auto -.75rem -.75rem}.modal-title{margin-bottom:0;line-height:1.4285714286}.modal-body{position:relative;flex:1 1 auto;padding:1.5rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:1.125rem;border-top:0 solid #e6e7e9;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.modal-footer>*{margin:.375rem}@media (min-width:576px){.modal-dialog{max-width:540px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:380px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:720px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:right;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.765625rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:4px}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:right;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.765625rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid #e6e7e9;border-radius:8px}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:#e6e7e9}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:#e6e7e9}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:#e6e7e9}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;right:50%;display:block;width:1rem;margin-right:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:#e6e7e9}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;background-color:#f0f0f0;border-bottom:1px solid #e6e7e9;border-top-right-radius:7px;border-top-left-radius:7px}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#1e293b}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:right;width:100%;margin-left:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{right:0}.carousel-control-next{left:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:1.5rem;height:1.5rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='15 18 9 12 15 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='9 18 15 12 9 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-indicators{position:absolute;left:0;bottom:0;right:0;z-index:2;display:flex;justify-content:center;padding:0;margin-left:15%;margin-bottom:1rem;margin-right:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-left:3px;margin-right:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;left:15%;bottom:1.25rem;right:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:1.5rem;height:1.5rem;vertical-align:-.125em;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:1px}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:1.5rem;height:1.5rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fafbfc;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;right:0;z-index:1040;width:100vw;height:100vh;background-color:#1e293b}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.24}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.5rem}.offcanvas-header .btn-close{padding:.75rem .75rem;margin-top:-.75rem;margin-left:-.75rem;margin-bottom:-.75rem}.offcanvas-title{margin-bottom:0;line-height:1.4285714286}.offcanvas-body{flex-grow:1;padding:1.5rem 1.5rem;overflow-y:auto}.offcanvas-start{top:0;right:0;width:400px;border-left:1px solid rgba(98,105,118,.16);transform:translateX(100%)}.offcanvas-end{top:0;left:0;width:400px;border-right:1px solid rgba(98,105,118,.16);transform:translateX(-100%)}.offcanvas-top{top:0;left:0;right:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(98,105,118,.16);transform:translateY(-100%)}.offcanvas-bottom{left:0;right:0;height:30vh;max-height:100%;border-top:1px solid rgba(98,105,118,.16);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.2}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.1}}@keyframes placeholder-glow{50%{opacity:.1}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#206bc4}.link-primary:focus,.link-primary:hover{color:#1a569d}.link-secondary{color:#626976}.link-secondary:focus,.link-secondary:hover{color:#4e545e}.link-success{color:#2fb344}.link-success:focus,.link-success:hover{color:#268f36}.link-info{color:#4299e1}.link-info:focus,.link-info:hover{color:#357ab4}.link-warning{color:#f76707}.link-warning:focus,.link-warning:hover{color:#c65206}.link-danger{color:#d63939}.link-danger:focus,.link-danger:hover{color:#ab2e2e}.link-light{color:#fafbfc}.link-light:focus,.link-light:hover{color:#fbfcfd}.link-dark{color:#1e293b}.link-dark:focus,.link-dark:hover{color:#18212f}.link-muted{color:#626976}.link-muted:focus,.link-muted:hover{color:#4e545e}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--tblr-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;right:0;width:100%;height:100%}.ratio-1x1{--tblr-aspect-ratio:100%}.ratio-4x3{--tblr-aspect-ratio:75%}.ratio-3x4{--tblr-aspect-ratio:133.3333333333%}.ratio-16x9{--tblr-aspect-ratio:56.25%}.ratio-9x16{--tblr-aspect-ratio:177.7777777778%}.ratio-21x9{--tblr-aspect-ratio:42.8571428571%}.ratio-9x21{--tblr-aspect-ratio:233.3333333333%}.fixed-top{position:fixed;top:0;left:0;right:0;z-index:1030}.fixed-bottom{position:fixed;left:0;bottom:0;right:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;left:0;bottom:0;right:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.16}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:right!important}.float-end{float:left!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{right:0!important}.start-50{right:50%!important}.start-100{right:100%!important}.end-0{left:0!important}.end-50{left:50%!important}.end-100{left:100%!important}.translate-middle{transform:translate(50%,-50%)!important}.translate-middle-x{transform:translateX(50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid rgba(98,105,118,.16)!important}.border-wide{border:2px solid rgba(98,105,118,.16)!important}.border-0{border:0!important}.border-top{border-top:1px solid rgba(98,105,118,.16)!important}.border-top-wide{border-top:2px solid rgba(98,105,118,.16)!important}.border-top-0{border-top:0!important}.border-end{border-left:1px solid rgba(98,105,118,.16)!important}.border-end-wide{border-left:2px solid rgba(98,105,118,.16)!important}.border-end-0{border-left:0!important}.border-bottom{border-bottom:1px solid rgba(98,105,118,.16)!important}.border-bottom-wide{border-bottom:2px solid rgba(98,105,118,.16)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-right:1px solid rgba(98,105,118,.16)!important}.border-start-wide{border-right:2px solid rgba(98,105,118,.16)!important}.border-start-0{border-right:0!important}.border-primary{border-color:#206bc4!important}.border-secondary{border-color:#626976!important}.border-success{border-color:#2fb344!important}.border-info{border-color:#4299e1!important}.border-warning{border-color:#f76707!important}.border-danger{border-color:#d63939!important}.border-light{border-color:#fafbfc!important}.border-dark{border-color:#1e293b!important}.border-muted{border-color:#626976!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-0{width:0!important}.w-1{width:.25rem!important}.w-2{width:.5rem!important}.w-3{width:1rem!important}.w-4{width:2rem!important}.w-5{width:4rem!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-0{height:0!important}.h-1{height:.25rem!important}.h-2{height:.5rem!important}.h-3{height:1rem!important}.h-4{height:2rem!important}.h-5{height:4rem!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:2rem!important}.gap-5{gap:4rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:2rem!important}.m-5{margin:4rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:2rem!important;margin-right:2rem!important}.mx-5{margin-left:4rem!important;margin-right:4rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:2rem!important}.mt-5{margin-top:4rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-left:0!important}.me-1{margin-left:.25rem!important}.me-2{margin-left:.5rem!important}.me-3{margin-left:1rem!important}.me-4{margin-left:2rem!important}.me-5{margin-left:4rem!important}.me-auto{margin-left:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:2rem!important}.mb-5{margin-bottom:4rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-right:0!important}.ms-1{margin-right:.25rem!important}.ms-2{margin-right:.5rem!important}.ms-3{margin-right:1rem!important}.ms-4{margin-right:2rem!important}.ms-5{margin-right:4rem!important}.ms-auto{margin-right:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:2rem!important}.p-5{padding:4rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:2rem!important;padding-right:2rem!important}.px-5{padding-left:4rem!important;padding-right:4rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:2rem!important}.pt-5{padding-top:4rem!important}.pe-0{padding-left:0!important}.pe-1{padding-left:.25rem!important}.pe-2{padding-left:.5rem!important}.pe-3{padding-left:1rem!important}.pe-4{padding-left:2rem!important}.pe-5{padding-left:4rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:2rem!important}.pb-5{padding-bottom:4rem!important}.ps-0{padding-right:0!important}.ps-1{padding-right:.25rem!important}.ps-2{padding-right:.5rem!important}.ps-3{padding-right:1rem!important}.ps-4{padding-right:2rem!important}.ps-5{padding-right:4rem!important}.font-monospace{font-family:var(--tblr-font-monospace)!important}.fs-1{font-size:1.5rem!important}.fs-2{font-size:1.25rem!important}.fs-3{font-size:1rem!important}.fs-4{font-size:.875rem!important}.fs-5{font-size:.75rem!important}.fs-6{font-size:.625rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.1428571429!important}.lh-base{line-height:1.4285714286!important}.lh-lg{line-height:1.7142857143!important}.text-start{text-align:right!important}.text-end{text-align:left!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-primary{--tblr-text-opacity:1;color:rgba(var(--tblr-primary-rgb),var(--tblr-text-opacity))!important}.text-secondary{--tblr-text-opacity:1;color:rgba(var(--tblr-secondary-rgb),var(--tblr-text-opacity))!important}.text-success{--tblr-text-opacity:1;color:rgba(var(--tblr-success-rgb),var(--tblr-text-opacity))!important}.text-info{--tblr-text-opacity:1;color:rgba(var(--tblr-info-rgb),var(--tblr-text-opacity))!important}.text-warning{--tblr-text-opacity:1;color:rgba(var(--tblr-warning-rgb),var(--tblr-text-opacity))!important}.text-danger{--tblr-text-opacity:1;color:rgba(var(--tblr-danger-rgb),var(--tblr-text-opacity))!important}.text-light{--tblr-text-opacity:1;color:rgba(var(--tblr-light-rgb),var(--tblr-text-opacity))!important}.text-dark{--tblr-text-opacity:1;color:rgba(var(--tblr-dark-rgb),var(--tblr-text-opacity))!important}.text-muted{--tblr-text-opacity:1;color:#626976!important}.text-black{--tblr-text-opacity:1;color:rgba(var(--tblr-black-rgb),var(--tblr-text-opacity))!important}.text-white{--tblr-text-opacity:1;color:rgba(var(--tblr-white-rgb),var(--tblr-text-opacity))!important}.text-body{--tblr-text-opacity:1;color:rgba(var(--tblr-body-color-rgb),var(--tblr-text-opacity))!important}.text-black-50{--tblr-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--tblr-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--tblr-text-opacity:1;color:inherit!important}.text-opacity-25{--tblr-text-opacity:0.25}.text-opacity-50{--tblr-text-opacity:0.5}.text-opacity-75{--tblr-text-opacity:0.75}.text-opacity-100{--tblr-text-opacity:1}.bg-primary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-primary-rgb),var(--tblr-bg-opacity))!important}.bg-secondary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-secondary-rgb),var(--tblr-bg-opacity))!important}.bg-success{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-success-rgb),var(--tblr-bg-opacity))!important}.bg-info{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-info-rgb),var(--tblr-bg-opacity))!important}.bg-warning{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-warning-rgb),var(--tblr-bg-opacity))!important}.bg-danger{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-danger-rgb),var(--tblr-bg-opacity))!important}.bg-light{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-light-rgb),var(--tblr-bg-opacity))!important}.bg-dark{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dark-rgb),var(--tblr-bg-opacity))!important}.bg-muted{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-muted-rgb),var(--tblr-bg-opacity))!important}.bg-black{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-black-rgb),var(--tblr-bg-opacity))!important}.bg-white{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-white-rgb),var(--tblr-bg-opacity))!important}.bg-body{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-body-bg-rgb),var(--tblr-bg-opacity))!important}.bg-transparent{--tblr-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--tblr-bg-opacity:0.1}.bg-opacity-25{--tblr-bg-opacity:0.25}.bg-opacity-50{--tblr-bg-opacity:0.5}.bg-opacity-75{--tblr-bg-opacity:0.75}.bg-opacity-100{--tblr-bg-opacity:1}.bg-gradient{background-image:var(--tblr-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:4px!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:2px!important}.rounded-2{border-radius:4px!important}.rounded-3{border-radius:8px!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:100rem!important}.rounded-top{border-top-right-radius:4px!important;border-top-left-radius:4px!important}.rounded-end{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important}.rounded-bottom{border-bottom-left-radius:4px!important;border-bottom-right-radius:4px!important}.rounded-start{border-bottom-right-radius:4px!important;border-top-right-radius:4px!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.object-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-scale-down{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-none{-o-object-fit:none!important;object-fit:none!important}.tracking-tight{letter-spacing:-.05em!important}.tracking-normal{letter-spacing:0!important}.tracking-wide{letter-spacing:.05em!important}.cursor-auto{cursor:auto!important}.cursor-pointer{cursor:pointer!important}.cursor-move{cursor:move!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-zoom-in{cursor:zoom-in!important}.cursor-zoom-out{cursor:zoom-out!important}.cursor-default{cursor:default!important}.cursor-none{cursor:none!important}.cursor-help{cursor:help!important}.cursor-progress{cursor:progress!important}.cursor-wait{cursor:wait!important}.cursor-text{cursor:text!important}.cursor-v-text{cursor:vertical-text!important}.cursor-grab{cursor:-webkit-grab!important;cursor:grab!important}.cursor-grabbing{cursor:-webkit-grabbing!important;cursor:grabbing!important}.border-x{border-right:1px solid rgba(98,105,118,.16)!important;border-left:1px solid rgba(98,105,118,.16)!important}.border-x-wide{border-right:2px solid rgba(98,105,118,.16)!important;border-left:2px solid rgba(98,105,118,.16)!important}.border-x-0{border-right:0!important;border-left:0!important}.border-y{border-top:1px solid rgba(98,105,118,.16)!important;border-bottom:1px solid rgba(98,105,118,.16)!important}.border-y-wide{border-top:2px solid rgba(98,105,118,.16)!important;border-bottom:2px solid rgba(98,105,118,.16)!important}.border-y-0{border-top:0!important;border-bottom:0!important}.columns-2{-moz-columns:2!important;columns:2!important}.columns-3{-moz-columns:3!important;columns:3!important}.columns-4{-moz-columns:4!important;columns:4!important}@media (min-width:576px){.float-sm-start{float:right!important}.float-sm-end{float:left!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:2rem!important}.gap-sm-5{gap:4rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:2rem!important}.m-sm-5{margin:4rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:2rem!important;margin-right:2rem!important}.mx-sm-5{margin-left:4rem!important;margin-right:4rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-sm-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:2rem!important}.mt-sm-5{margin-top:4rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-left:0!important}.me-sm-1{margin-left:.25rem!important}.me-sm-2{margin-left:.5rem!important}.me-sm-3{margin-left:1rem!important}.me-sm-4{margin-left:2rem!important}.me-sm-5{margin-left:4rem!important}.me-sm-auto{margin-left:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:2rem!important}.mb-sm-5{margin-bottom:4rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-right:0!important}.ms-sm-1{margin-right:.25rem!important}.ms-sm-2{margin-right:.5rem!important}.ms-sm-3{margin-right:1rem!important}.ms-sm-4{margin-right:2rem!important}.ms-sm-5{margin-right:4rem!important}.ms-sm-auto{margin-right:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:2rem!important}.p-sm-5{padding:4rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:2rem!important;padding-right:2rem!important}.px-sm-5{padding-left:4rem!important;padding-right:4rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-sm-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:2rem!important}.pt-sm-5{padding-top:4rem!important}.pe-sm-0{padding-left:0!important}.pe-sm-1{padding-left:.25rem!important}.pe-sm-2{padding-left:.5rem!important}.pe-sm-3{padding-left:1rem!important}.pe-sm-4{padding-left:2rem!important}.pe-sm-5{padding-left:4rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:2rem!important}.pb-sm-5{padding-bottom:4rem!important}.ps-sm-0{padding-right:0!important}.ps-sm-1{padding-right:.25rem!important}.ps-sm-2{padding-right:.5rem!important}.ps-sm-3{padding-right:1rem!important}.ps-sm-4{padding-right:2rem!important}.ps-sm-5{padding-right:4rem!important}.text-sm-start{text-align:right!important}.text-sm-end{text-align:left!important}.text-sm-center{text-align:center!important}.columns-sm-2{-moz-columns:2!important;columns:2!important}.columns-sm-3{-moz-columns:3!important;columns:3!important}.columns-sm-4{-moz-columns:4!important;columns:4!important}}@media (min-width:768px){.float-md-start{float:right!important}.float-md-end{float:left!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:2rem!important}.gap-md-5{gap:4rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:2rem!important}.m-md-5{margin:4rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:2rem!important;margin-right:2rem!important}.mx-md-5{margin-left:4rem!important;margin-right:4rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-md-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:2rem!important}.mt-md-5{margin-top:4rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-left:0!important}.me-md-1{margin-left:.25rem!important}.me-md-2{margin-left:.5rem!important}.me-md-3{margin-left:1rem!important}.me-md-4{margin-left:2rem!important}.me-md-5{margin-left:4rem!important}.me-md-auto{margin-left:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:2rem!important}.mb-md-5{margin-bottom:4rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-right:0!important}.ms-md-1{margin-right:.25rem!important}.ms-md-2{margin-right:.5rem!important}.ms-md-3{margin-right:1rem!important}.ms-md-4{margin-right:2rem!important}.ms-md-5{margin-right:4rem!important}.ms-md-auto{margin-right:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:2rem!important}.p-md-5{padding:4rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:2rem!important;padding-right:2rem!important}.px-md-5{padding-left:4rem!important;padding-right:4rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-md-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:2rem!important}.pt-md-5{padding-top:4rem!important}.pe-md-0{padding-left:0!important}.pe-md-1{padding-left:.25rem!important}.pe-md-2{padding-left:.5rem!important}.pe-md-3{padding-left:1rem!important}.pe-md-4{padding-left:2rem!important}.pe-md-5{padding-left:4rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:2rem!important}.pb-md-5{padding-bottom:4rem!important}.ps-md-0{padding-right:0!important}.ps-md-1{padding-right:.25rem!important}.ps-md-2{padding-right:.5rem!important}.ps-md-3{padding-right:1rem!important}.ps-md-4{padding-right:2rem!important}.ps-md-5{padding-right:4rem!important}.text-md-start{text-align:right!important}.text-md-end{text-align:left!important}.text-md-center{text-align:center!important}.columns-md-2{-moz-columns:2!important;columns:2!important}.columns-md-3{-moz-columns:3!important;columns:3!important}.columns-md-4{-moz-columns:4!important;columns:4!important}}@media (min-width:992px){.float-lg-start{float:right!important}.float-lg-end{float:left!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:2rem!important}.gap-lg-5{gap:4rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:2rem!important}.m-lg-5{margin:4rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:2rem!important;margin-right:2rem!important}.mx-lg-5{margin-left:4rem!important;margin-right:4rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-lg-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:2rem!important}.mt-lg-5{margin-top:4rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-left:0!important}.me-lg-1{margin-left:.25rem!important}.me-lg-2{margin-left:.5rem!important}.me-lg-3{margin-left:1rem!important}.me-lg-4{margin-left:2rem!important}.me-lg-5{margin-left:4rem!important}.me-lg-auto{margin-left:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:2rem!important}.mb-lg-5{margin-bottom:4rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-right:0!important}.ms-lg-1{margin-right:.25rem!important}.ms-lg-2{margin-right:.5rem!important}.ms-lg-3{margin-right:1rem!important}.ms-lg-4{margin-right:2rem!important}.ms-lg-5{margin-right:4rem!important}.ms-lg-auto{margin-right:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:2rem!important}.p-lg-5{padding:4rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:2rem!important;padding-right:2rem!important}.px-lg-5{padding-left:4rem!important;padding-right:4rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-lg-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:2rem!important}.pt-lg-5{padding-top:4rem!important}.pe-lg-0{padding-left:0!important}.pe-lg-1{padding-left:.25rem!important}.pe-lg-2{padding-left:.5rem!important}.pe-lg-3{padding-left:1rem!important}.pe-lg-4{padding-left:2rem!important}.pe-lg-5{padding-left:4rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:2rem!important}.pb-lg-5{padding-bottom:4rem!important}.ps-lg-0{padding-right:0!important}.ps-lg-1{padding-right:.25rem!important}.ps-lg-2{padding-right:.5rem!important}.ps-lg-3{padding-right:1rem!important}.ps-lg-4{padding-right:2rem!important}.ps-lg-5{padding-right:4rem!important}.text-lg-start{text-align:right!important}.text-lg-end{text-align:left!important}.text-lg-center{text-align:center!important}.columns-lg-2{-moz-columns:2!important;columns:2!important}.columns-lg-3{-moz-columns:3!important;columns:3!important}.columns-lg-4{-moz-columns:4!important;columns:4!important}}@media (min-width:1200px){.float-xl-start{float:right!important}.float-xl-end{float:left!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:2rem!important}.gap-xl-5{gap:4rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:2rem!important}.m-xl-5{margin:4rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:2rem!important;margin-right:2rem!important}.mx-xl-5{margin-left:4rem!important;margin-right:4rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-xl-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:2rem!important}.mt-xl-5{margin-top:4rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-left:0!important}.me-xl-1{margin-left:.25rem!important}.me-xl-2{margin-left:.5rem!important}.me-xl-3{margin-left:1rem!important}.me-xl-4{margin-left:2rem!important}.me-xl-5{margin-left:4rem!important}.me-xl-auto{margin-left:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:2rem!important}.mb-xl-5{margin-bottom:4rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-right:0!important}.ms-xl-1{margin-right:.25rem!important}.ms-xl-2{margin-right:.5rem!important}.ms-xl-3{margin-right:1rem!important}.ms-xl-4{margin-right:2rem!important}.ms-xl-5{margin-right:4rem!important}.ms-xl-auto{margin-right:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:2rem!important}.p-xl-5{padding:4rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:2rem!important;padding-right:2rem!important}.px-xl-5{padding-left:4rem!important;padding-right:4rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-xl-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:2rem!important}.pt-xl-5{padding-top:4rem!important}.pe-xl-0{padding-left:0!important}.pe-xl-1{padding-left:.25rem!important}.pe-xl-2{padding-left:.5rem!important}.pe-xl-3{padding-left:1rem!important}.pe-xl-4{padding-left:2rem!important}.pe-xl-5{padding-left:4rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:2rem!important}.pb-xl-5{padding-bottom:4rem!important}.ps-xl-0{padding-right:0!important}.ps-xl-1{padding-right:.25rem!important}.ps-xl-2{padding-right:.5rem!important}.ps-xl-3{padding-right:1rem!important}.ps-xl-4{padding-right:2rem!important}.ps-xl-5{padding-right:4rem!important}.text-xl-start{text-align:right!important}.text-xl-end{text-align:left!important}.text-xl-center{text-align:center!important}.columns-xl-2{-moz-columns:2!important;columns:2!important}.columns-xl-3{-moz-columns:3!important;columns:3!important}.columns-xl-4{-moz-columns:4!important;columns:4!important}}@media (min-width:1400px){.float-xxl-start{float:right!important}.float-xxl-end{float:left!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:2rem!important}.gap-xxl-5{gap:4rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:2rem!important}.m-xxl-5{margin:4rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:2rem!important;margin-right:2rem!important}.mx-xxl-5{margin-left:4rem!important;margin-right:4rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-xxl-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:2rem!important}.mt-xxl-5{margin-top:4rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-left:0!important}.me-xxl-1{margin-left:.25rem!important}.me-xxl-2{margin-left:.5rem!important}.me-xxl-3{margin-left:1rem!important}.me-xxl-4{margin-left:2rem!important}.me-xxl-5{margin-left:4rem!important}.me-xxl-auto{margin-left:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:2rem!important}.mb-xxl-5{margin-bottom:4rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-right:0!important}.ms-xxl-1{margin-right:.25rem!important}.ms-xxl-2{margin-right:.5rem!important}.ms-xxl-3{margin-right:1rem!important}.ms-xxl-4{margin-right:2rem!important}.ms-xxl-5{margin-right:4rem!important}.ms-xxl-auto{margin-right:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:2rem!important}.p-xxl-5{padding:4rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:2rem!important;padding-right:2rem!important}.px-xxl-5{padding-left:4rem!important;padding-right:4rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-xxl-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:2rem!important}.pt-xxl-5{padding-top:4rem!important}.pe-xxl-0{padding-left:0!important}.pe-xxl-1{padding-left:.25rem!important}.pe-xxl-2{padding-left:.5rem!important}.pe-xxl-3{padding-left:1rem!important}.pe-xxl-4{padding-left:2rem!important}.pe-xxl-5{padding-left:4rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:2rem!important}.pb-xxl-5{padding-bottom:4rem!important}.ps-xxl-0{padding-right:0!important}.ps-xxl-1{padding-right:.25rem!important}.ps-xxl-2{padding-right:.5rem!important}.ps-xxl-3{padding-right:1rem!important}.ps-xxl-4{padding-right:2rem!important}.ps-xxl-5{padding-right:4rem!important}.text-xxl-start{text-align:right!important}.text-xxl-end{text-align:left!important}.text-xxl-center{text-align:center!important}.columns-xxl-2{-moz-columns:2!important;columns:2!important}.columns-xxl-3{-moz-columns:3!important;columns:3!important}.columns-xxl-4{-moz-columns:4!important;columns:4!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root{font-size:16px;height:100%;--tblr-card-bg:#ffffff;--tblr-card-bg-rgb:255,255,255;--tblr-border-color:#e6e7e9;--tblr-border-color-rgb:230,231,233;--tblr-border-color-light:#f2f3f4;--tblr-border-color-light-rgb:242,243,244}body{overflow-y:scroll;letter-spacing:0;touch-action:manipulation;text-rendering:optimizeLegibility;font-feature-settings:"liga" 0;position:relative;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media print{body{background:0 0}}::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){::-webkit-scrollbar{-webkit-transition:none;transition:none}}::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}::-webkit-scrollbar-corner{background:0 0}.layout-fluid .container,.layout-fluid [class*=" container-"],.layout-fluid [class^=container-]{max-width:100%}.layout-boxed{--tblr-theme-boxed-border-radius:0;--tblr-theme-boxed-width:1320px}@media (min-width:768px){.layout-boxed{background:#1e293b linear-gradient(to left,rgba(255,255,255,.1),transparent) fixed;padding:1rem;--tblr-theme-boxed-border-radius:4px}}.layout-boxed .page{margin:0 auto;max-width:var(--tblr-theme-boxed-width);border-radius:var(--tblr-theme-boxed-border-radius);color:#1e293b}@media (min-width:768px){.layout-boxed .page{border:1px solid var(--tblr-border-color);background:var(--tblr-body-bg)}}.layout-boxed .page>.navbar:first-child{border-top-right-radius:var(--tblr-theme-boxed-border-radius);border-top-left-radius:var(--tblr-theme-boxed-border-radius)}.navbar{align-items:stretch;min-height:3.5rem;background:0 0;color:rgba(30,41,59,.7)}.navbar-collapse .navbar{flex-grow:1}.navbar.collapsing{min-height:0}.navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar::-webkit-scrollbar-corner{background:0 0}.navbar .text-muted{color:rgba(30,41,59,.7)!important}.navbar .navbar-brand{color:#1e293b}.navbar .navbar-brand:focus,.navbar .navbar-brand:hover{color:#1e293b;opacity:.8}.navbar .navbar-nav .nav-link{color:rgba(30,41,59,.7)}.navbar .navbar-nav .nav-link:focus,.navbar .navbar-nav .nav-link:hover{color:#1e293b}.navbar .navbar-nav .nav-link.disabled{color:rgba(30,41,59,.3)}.navbar .navbar-nav .active>.nav-link,.navbar .navbar-nav .nav-link.active,.navbar .navbar-nav .nav-link.show,.navbar .navbar-nav .show>.nav-link{color:#1e293b}.navbar .navbar-toggler{color:#1e293b;border-color:transparent}.navbar .navbar-text{color:rgba(30,41,59,.7)}.navbar .navbar-text a,.navbar .navbar-text a:focus,.navbar .navbar-text a:hover{color:rgba(30,41,59,.7)}@media not print{.theme-dark .navbar{background:#1e293b;color:rgba(255,255,255,.7)}.theme-dark .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.theme-dark .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.theme-dark .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark .navbar .text-muted{color:rgba(255,255,255,.7)!important}.theme-dark .navbar .navbar-brand{color:#fff}.theme-dark .navbar .navbar-brand:focus,.theme-dark .navbar .navbar-brand:hover{color:#fff;opacity:.8}.theme-dark .navbar .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.theme-dark .navbar .navbar-nav .nav-link:focus,.theme-dark .navbar .navbar-nav .nav-link:hover{color:#fff}.theme-dark .navbar .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.theme-dark .navbar .navbar-nav .active>.nav-link,.theme-dark .navbar .navbar-nav .nav-link.active,.theme-dark .navbar .navbar-nav .nav-link.show,.theme-dark .navbar .navbar-nav .show>.nav-link{color:#fff}.theme-dark .navbar .navbar-toggler{color:#fff;border-color:transparent}.theme-dark .navbar .navbar-text{color:rgba(255,255,255,.7)}.theme-dark .navbar .navbar-text a,.theme-dark .navbar .navbar-text a:focus,.theme-dark .navbar .navbar-text a:hover{color:rgba(255,255,255,.7)}.theme-dark .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.theme-dark .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.theme-dark .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark .navbar .input-icon-addon{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.theme-dark .navbar .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::placeholder{color:rgba(250,251,252,.64)}}@media not print{@media (prefers-color-scheme:dark){.theme-dark-auto .navbar{background:#1e293b;color:rgba(255,255,255,.7)}.theme-dark-auto .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}.theme-dark-auto .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark-auto .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark-auto .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark-auto .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark-auto .navbar .text-muted{color:rgba(255,255,255,.7)!important}.theme-dark-auto .navbar .navbar-brand{color:#fff}.theme-dark-auto .navbar .navbar-brand:focus,.theme-dark-auto .navbar .navbar-brand:hover{color:#fff;opacity:.8}.theme-dark-auto .navbar .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar .navbar-nav .nav-link:focus,.theme-dark-auto .navbar .navbar-nav .nav-link:hover{color:#fff}.theme-dark-auto .navbar .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.theme-dark-auto .navbar .navbar-nav .active>.nav-link,.theme-dark-auto .navbar .navbar-nav .nav-link.active,.theme-dark-auto .navbar .navbar-nav .nav-link.show,.theme-dark-auto .navbar .navbar-nav .show>.nav-link{color:#fff}.theme-dark-auto .navbar .navbar-toggler{color:#fff;border-color:transparent}.theme-dark-auto .navbar .navbar-text{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar .navbar-text a,.theme-dark-auto .navbar .navbar-text a:focus,.theme-dark-auto .navbar .navbar-text a:hover{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}.theme-dark-auto .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark-auto .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark-auto .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark-auto .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark-auto .navbar .input-icon-addon{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.theme-dark-auto .navbar .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::placeholder{color:rgba(250,251,252,.64)}}}@media (prefers-color-scheme:dark) and (prefers-reduced-motion:reduce){.theme-dark-auto .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}@media (prefers-color-scheme:dark) and (prefers-reduced-motion:reduce){.theme-dark-auto .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar .dropdown-menu{position:absolute;z-index:1030}.navbar .navbar-nav{min-height:3rem}.navbar .navbar-nav .nav-link{position:relative;min-width:2rem;min-height:2rem;justify-content:center;border-radius:4px}.navbar .navbar-nav .nav-link .badge{position:absolute;top:.375rem;left:.375rem;transform:translate(-50%,-50%)}.navbar-nav{margin:0;padding:0}@media (max-width:575.98px){.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-sm .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:576px){.navbar-expand-sm .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-sm .navbar-dark .nav-item.active .nav-link,.navbar-expand-sm.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-sm .navbar-light .nav-item.active,.navbar-expand-sm.navbar-light .nav-item.active{position:relative}.navbar-expand-sm .navbar-light .nav-item.active:after,.navbar-expand-sm.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-sm .navbar-light.navbar-vertical,.navbar-expand-sm.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-sm .navbar-light.navbar-vertical.navbar-right,.navbar-expand-sm.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-sm.navbar-vertical~.navbar,.navbar-expand-sm.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-sm.navbar-vertical.navbar-right~.navbar,.navbar-expand-sm.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}@media (max-width:767.98px){.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-md .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:768px){.navbar-expand-md .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-md .navbar-dark .nav-item.active .nav-link,.navbar-expand-md.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-md .navbar-light .nav-item.active,.navbar-expand-md.navbar-light .nav-item.active{position:relative}.navbar-expand-md .navbar-light .nav-item.active:after,.navbar-expand-md.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-md .navbar-light.navbar-vertical,.navbar-expand-md.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-md .navbar-light.navbar-vertical.navbar-right,.navbar-expand-md.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-md.navbar-vertical~.navbar,.navbar-expand-md.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-md.navbar-vertical.navbar-right~.navbar,.navbar-expand-md.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}@media (max-width:991.98px){.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-lg .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:992px){.navbar-expand-lg .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-lg .navbar-dark .nav-item.active .nav-link,.navbar-expand-lg.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-lg .navbar-light .nav-item.active,.navbar-expand-lg.navbar-light .nav-item.active{position:relative}.navbar-expand-lg .navbar-light .nav-item.active:after,.navbar-expand-lg.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-lg .navbar-light.navbar-vertical,.navbar-expand-lg.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-lg .navbar-light.navbar-vertical.navbar-right,.navbar-expand-lg.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-lg.navbar-vertical~.navbar,.navbar-expand-lg.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-lg.navbar-vertical.navbar-right~.navbar,.navbar-expand-lg.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}@media (max-width:1199.98px){.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-xl .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:1200px){.navbar-expand-xl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xl .navbar-dark .nav-item.active .nav-link,.navbar-expand-xl.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-xl .navbar-light .nav-item.active,.navbar-expand-xl.navbar-light .nav-item.active{position:relative}.navbar-expand-xl .navbar-light .nav-item.active:after,.navbar-expand-xl.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-xl .navbar-light.navbar-vertical,.navbar-expand-xl.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xl .navbar-light.navbar-vertical.navbar-right,.navbar-expand-xl.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xl.navbar-vertical~.navbar,.navbar-expand-xl.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-xl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xl.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}@media (max-width:1399.98px){.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:1400px){.navbar-expand-xxl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xxl .navbar-dark .nav-item.active .nav-link,.navbar-expand-xxl.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-xxl .navbar-light .nav-item.active,.navbar-expand-xxl.navbar-light .nav-item.active{position:relative}.navbar-expand-xxl .navbar-light .nav-item.active:after,.navbar-expand-xxl.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-xxl .navbar-light.navbar-vertical,.navbar-expand-xxl.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xxl .navbar-light.navbar-vertical.navbar-right,.navbar-expand-xxl.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xxl.navbar-vertical~.navbar,.navbar-expand-xxl.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-xxl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xxl.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}.navbar-expand .navbar-collapse{flex-direction:column}.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-expand .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}.navbar-expand .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand .navbar-dark .nav-item.active .nav-link,.navbar-expand.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand .navbar-light .nav-item.active,.navbar-expand.navbar-light .nav-item.active{position:relative}.navbar-expand .navbar-light .nav-item.active:after,.navbar-expand.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand .navbar-light.navbar-vertical,.navbar-expand.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand .navbar-light.navbar-vertical.navbar-right,.navbar-expand.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand.navbar-vertical~.navbar,.navbar-expand.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand.navbar-vertical.navbar-right~.navbar,.navbar-expand.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}.navbar-brand{display:inline-flex;align-items:center;font-weight:600;margin:0}.navbar-brand-image{display:block;height:2rem;width:auto}.navbar-toggler{border:0;width:2rem;height:2rem;position:relative;display:flex;align-items:center;justify-content:center}.navbar-toggler-icon{height:2px;width:1.25em;background:currentColor;border-radius:10px;transition:top .2s .2s,bottom .2s .2s,transform .2s,opacity 0s .2s;position:relative}@media (prefers-reduced-motion:reduce){.navbar-toggler-icon{transition:none}}.navbar-toggler-icon:after,.navbar-toggler-icon:before{content:"";display:block;height:inherit;width:inherit;border-radius:inherit;background:inherit;position:absolute;right:0;transition:inherit}@media (prefers-reduced-motion:reduce){.navbar-toggler-icon:after,.navbar-toggler-icon:before{transition:none}}.navbar-toggler-icon:before{top:-.45em}.navbar-toggler-icon:after{bottom:-.45em}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transform:rotate(-45deg);transition:top .3s,bottom .3s,transform .3s .3s,opacity 0s .3s}@media (prefers-reduced-motion:reduce){.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transition:none}}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:before{top:0;transform:rotate(90deg)}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:after{bottom:0;opacity:0}.navbar-light{box-shadow:inset 0 -1px 0 0 rgba(98,105,118,.16);background-color:#fff}.navbar-dark{background:#1e293b;color:rgba(255,255,255,.7)}.navbar-dark::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar-dark::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar-dark::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar-dark::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar-dark:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar-dark::-webkit-scrollbar-corner{background:0 0}.navbar-dark .text-muted{color:rgba(255,255,255,.7)!important}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff;opacity:.8}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#fff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:#fff;border-color:transparent}.navbar-dark .navbar-text{color:rgba(255,255,255,.7)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:rgba(255,255,255,.7)}.navbar-dark::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar-dark::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar-dark::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar-dark::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar-dark:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar-dark::-webkit-scrollbar-corner{background:0 0}.navbar-dark .input-icon-addon{color:rgba(250,251,252,.64)}.navbar-dark .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.navbar-dark .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::placeholder{color:rgba(250,251,252,.64)}.navbar-nav{align-items:stretch}.navbar-nav .nav-item{display:flex;flex-direction:column;justify-content:center}.navbar-side{margin:0;display:flex;flex-direction:row;align-items:center;justify-content:space-around}@media (min-width:576px){.navbar-vertical.navbar-expand-sm{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:576px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-sm{transition:none}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.navbar-right{right:auto;left:0}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-collapse{align-items:stretch}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-sm .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm~.page{padding-right:15rem}.navbar-vertical.navbar-expand-sm~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:768px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-md{transition:none}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.navbar-right{right:auto;left:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-collapse{align-items:stretch}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-md .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:768px){.navbar-vertical.navbar-expand-md~.page{padding-right:15rem}.navbar-vertical.navbar-expand-md~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:992px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-lg{transition:none}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.navbar-right{right:auto;left:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-collapse{align-items:stretch}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-lg .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg~.page{padding-right:15rem}.navbar-vertical.navbar-expand-lg~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:1200px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-xl{transition:none}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.navbar-right{right:auto;left:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-collapse{align-items:stretch}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl~.page{padding-right:15rem}.navbar-vertical.navbar-expand-xl~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:1400px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-xxl{transition:none}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl.navbar-right{right:auto;left:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-collapse{align-items:stretch}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xxl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl~.page{padding-right:15rem}.navbar-vertical.navbar-expand-xxl~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}.navbar-vertical.navbar-expand{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}@media (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand{transition:none}}.navbar-vertical.navbar-expand.navbar-right{right:auto;left:0}.navbar-vertical.navbar-expand .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start}.navbar-vertical.navbar-expand~.page{padding-right:15rem}.navbar-vertical.navbar-expand~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}.navbar-vertical.navbar-expand.navbar-right~.page{padding-right:0;padding-left:15rem}.navbar-vertical.navbar-expand .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav{margin-right:calc(-1 * var(--tblr-gutter-x,1.5rem));margin-left:calc(-1 * var(--tblr-gutter-x,1.5rem))}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem 1.5rem;justify-content:flex-start}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:3.25rem;color:inherit}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4.75rem}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:6.25rem}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}.navbar-overlap:after{content:"";height:9rem;position:absolute;top:100%;right:0;left:0;background:inherit;z-index:-1;box-shadow:inherit}.page{display:flex;flex-direction:column;position:relative;min-height:100vh}.page-center{justify-content:center}.page-wrapper{flex:1;display:flex;flex-direction:column}@media print{.page-wrapper{margin:0!important}}.page-wrapper-full .page-body:first-child{margin:0;border-top:0}.page-body{margin-top:1.25rem;margin-bottom:1.25rem}.page-body-card{background:#fff;border-top:1px solid rgba(98,105,118,.16);padding:1.25rem 0;margin-bottom:0;flex:1}.page-body~.page-body-card{margin-top:0}.page-cover{background:no-repeat center/cover;min-height:9rem}@media (min-width:768px){.page-cover{min-height:12rem}}@media (min-width:992px){.page-cover{min-height:15rem}}.page-cover-overlay{position:relative}.page-cover-overlay:after{content:"";position:absolute;top:0;right:0;left:0;bottom:0;background-image:linear-gradient(-180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%)}.page-header{display:flex;flex-wrap:wrap;min-height:2.25rem;flex-direction:column;justify-content:center}.page-wrapper .page-header{margin:1.25rem 0 0}.page-header-border{border-bottom:1px solid rgba(98,105,118,.16);padding-bottom:1.25rem}.page-pretitle{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976}.page-title{margin:0;font-size:1.25rem;line-height:1.4;font-weight:600;color:inherit;display:flex;align-items:center}.page-title svg{width:1.5rem;height:1.5rem;margin-left:.25rem}.page-title-lg{font-size:1.5rem;line-height:1.3333333333}.page-subtitle{margin-top:.25rem;color:#626976}.page-tabs{margin-top:.5rem;position:relative}.page-header-tabs .nav-bordered{border:0}.page-header-tabs+.page-body-card{margin-top:0}.footer{border-top:1px solid #e6e7e9;background-color:#fff;padding:2rem 0;color:#626976;margin-top:auto}.footer-transparent{background-color:transparent;border-top:0}/*! +@charset "UTF-8";:root{--tblr-blue:#206bc4;--tblr-indigo:#4263eb;--tblr-purple:#ae3ec9;--tblr-pink:#d6336c;--tblr-red:#d63939;--tblr-orange:#f76707;--tblr-yellow:#f59f00;--tblr-green:#2fb344;--tblr-teal:#0ca678;--tblr-cyan:#17a2b8;--tblr-black:#000000;--tblr-white:#ffffff;--tblr-gray:#475569;--tblr-gray-dark:#1e293b;--tblr-gray-100:#f1f5f9;--tblr-gray-200:#e2e8f0;--tblr-gray-300:#cbd5e1;--tblr-gray-400:#94a3b8;--tblr-gray-500:#64748b;--tblr-gray-600:#475569;--tblr-gray-700:#334155;--tblr-gray-800:#1e293b;--tblr-gray-900:#0f172a;--tblr-primary:#206bc4;--tblr-secondary:#626976;--tblr-success:#2fb344;--tblr-info:#4299e1;--tblr-warning:#f76707;--tblr-danger:#d63939;--tblr-light:#fafbfc;--tblr-dark:#1e293b;--tblr-muted:#626976;--tblr-blue:#206bc4;--tblr-azure:#4299e1;--tblr-indigo:#4263eb;--tblr-purple:#ae3ec9;--tblr-pink:#d6336c;--tblr-red:#d63939;--tblr-orange:#f76707;--tblr-yellow:#f59f00;--tblr-lime:#74b816;--tblr-green:#2fb344;--tblr-teal:#0ca678;--tblr-cyan:#17a2b8;--tblr-facebook:#3b5998;--tblr-twitter:#1da1f2;--tblr-linkedin:#0a66c2;--tblr-google:#dc4e41;--tblr-youtube:#ff0000;--tblr-vimeo:#1ab7ea;--tblr-dribbble:#ea4c89;--tblr-github:#181717;--tblr-instagram:#e4405f;--tblr-pinterest:#bd081c;--tblr-vk:#6383a8;--tblr-rss:#ffa500;--tblr-flickr:#0063dc;--tblr-bitbucket:#0052cc;--tblr-tabler:#206bc4;--tblr-primary-rgb:32,107,196;--tblr-secondary-rgb:98,105,118;--tblr-success-rgb:47,179,68;--tblr-info-rgb:66,153,225;--tblr-warning-rgb:247,103,7;--tblr-danger-rgb:214,57,57;--tblr-light-rgb:250,251,252;--tblr-dark-rgb:30,41,59;--tblr-muted-rgb:98,105,118;--tblr-blue-rgb:32,107,196;--tblr-azure-rgb:66,153,225;--tblr-indigo-rgb:66,99,235;--tblr-purple-rgb:174,62,201;--tblr-pink-rgb:214,51,108;--tblr-red-rgb:214,57,57;--tblr-orange-rgb:247,103,7;--tblr-yellow-rgb:245,159,0;--tblr-lime-rgb:116,184,22;--tblr-green-rgb:47,179,68;--tblr-teal-rgb:12,166,120;--tblr-cyan-rgb:23,162,184;--tblr-facebook-rgb:59,89,152;--tblr-twitter-rgb:29,161,242;--tblr-linkedin-rgb:10,102,194;--tblr-google-rgb:220,78,65;--tblr-youtube-rgb:255,0,0;--tblr-vimeo-rgb:26,183,234;--tblr-dribbble-rgb:234,76,137;--tblr-github-rgb:24,23,23;--tblr-instagram-rgb:228,64,95;--tblr-pinterest-rgb:189,8,28;--tblr-vk-rgb:99,131,168;--tblr-rss-rgb:255,165,0;--tblr-flickr-rgb:0,99,220;--tblr-bitbucket-rgb:0,82,204;--tblr-tabler-rgb:32,107,196;--tblr-white-rgb:255,255,255;--tblr-black-rgb:0,0,0;--tblr-body-color-rgb:30,41,59;--tblr-body-bg-rgb:245,247,251;--tblr-font-sans-serif:-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;--tblr-font-monospace:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--tblr-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--tblr-body-font-family:var(--tblr-font-sans-serif);--tblr-body-font-size:0.875rem;--tblr-body-font-weight:400;--tblr-body-line-height:1.4285714286;--tblr-body-color:#1e293b;--tblr-body-bg:#f5f7fb;--tblr-border-width:1px;--tblr-border-style:solid;--tblr-border-color:#e6e7e9;--tblr-border-color-translucent:rgba(0, 0, 0, 0.175);--tblr-border-radius:4px;--tblr-border-radius-sm:2px;--tblr-border-radius-lg:8px;--tblr-border-radius-xl:1rem;--tblr-border-radius-2xl:2rem;--tblr-border-radius-pill:100rem;--tblr-link-color:#206bc4;--tblr-link-hover-color:#1a569d;--tblr-code-color:#4b5462;--tblr-highlight-bg:#fdeccc}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--tblr-body-font-family);font-size:var(--tblr-body-font-size);font-weight:var(--tblr-body-font-weight);line-height:var(--tblr-body-line-height);color:var(--tblr-body-color);text-align:var(--tblr-body-text-align);background-color:var(--tblr-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.hr,hr{margin:2rem 0;color:inherit;border:0;border-top:1px solid;opacity:.16}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:600;line-height:1.2}.h1,h1{font-size:1.5rem}.h2,h2{font-size:1.25rem}.h3,h3{font-size:1rem}.h4,h4{font-size:.875rem}.h5,h5{font-size:.75rem}.h6,h6{font-size:.625rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:85.71428571%}.mark,mark{padding:.1875em;background-color:var(--tblr-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--tblr-link-color);text-decoration:none}a:hover{color:var(--tblr-link-hover-color);text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--tblr-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:85.71428571%}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:85.71428571%;color:var(--tblr-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:85.71428571%;color:var(--tblr-body-bg);background-color:var(--tblr-body-color);border-radius:2px}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#626976;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:.875rem;font-weight:400}.display-1{font-size:5rem;font-weight:300;line-height:1.2}.display-2{font-size:4.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}.display-5{font-size:3rem;font-weight:300;line-height:1.2}.display-6{font-size:2rem;font-weight:300;line-height:1.2}.list-unstyled{padding-right:0;list-style:none}.list-inline{padding-right:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-left:.5rem}.initialism{font-size:85.71428571%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:.875rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:85.71428571%;color:#475569}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#f5f7fb;border:1px solid var(--tblr-border-color);border-radius:4px;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:85.71428571%;color:#475569}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--tblr-gutter-x:1.5rem;--tblr-gutter-y:0;width:100%;padding-left:calc(var(--tblr-gutter-x) * .5);padding-right:calc(var(--tblr-gutter-x) * .5);margin-left:auto;margin-right:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--tblr-gutter-x:1rem;--tblr-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--tblr-gutter-y));margin-left:calc(-.5 * var(--tblr-gutter-x));margin-right:calc(-.5 * var(--tblr-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-left:calc(var(--tblr-gutter-x) * .5);padding-right:calc(var(--tblr-gutter-x) * .5);margin-top:var(--tblr-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-right:8.33333333%}.offset-2{margin-right:16.66666667%}.offset-3{margin-right:25%}.offset-4{margin-right:33.33333333%}.offset-5{margin-right:41.66666667%}.offset-6{margin-right:50%}.offset-7{margin-right:58.33333333%}.offset-8{margin-right:66.66666667%}.offset-9{margin-right:75%}.offset-10{margin-right:83.33333333%}.offset-11{margin-right:91.66666667%}.g-0,.gx-0{--tblr-gutter-x:0}.g-0,.gy-0{--tblr-gutter-y:0}.g-1,.gx-1{--tblr-gutter-x:0.25rem}.g-1,.gy-1{--tblr-gutter-y:0.25rem}.g-2,.gx-2{--tblr-gutter-x:0.5rem}.g-2,.gy-2{--tblr-gutter-y:0.5rem}.g-3,.gx-3{--tblr-gutter-x:1rem}.g-3,.gy-3{--tblr-gutter-y:1rem}.g-4,.gx-4{--tblr-gutter-x:2rem}.g-4,.gy-4{--tblr-gutter-y:2rem}.g-5,.gx-5{--tblr-gutter-x:4rem}.g-5,.gy-5{--tblr-gutter-y:4rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-right:0}.offset-sm-1{margin-right:8.33333333%}.offset-sm-2{margin-right:16.66666667%}.offset-sm-3{margin-right:25%}.offset-sm-4{margin-right:33.33333333%}.offset-sm-5{margin-right:41.66666667%}.offset-sm-6{margin-right:50%}.offset-sm-7{margin-right:58.33333333%}.offset-sm-8{margin-right:66.66666667%}.offset-sm-9{margin-right:75%}.offset-sm-10{margin-right:83.33333333%}.offset-sm-11{margin-right:91.66666667%}.g-sm-0,.gx-sm-0{--tblr-gutter-x:0}.g-sm-0,.gy-sm-0{--tblr-gutter-y:0}.g-sm-1,.gx-sm-1{--tblr-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--tblr-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--tblr-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--tblr-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--tblr-gutter-x:1rem}.g-sm-3,.gy-sm-3{--tblr-gutter-y:1rem}.g-sm-4,.gx-sm-4{--tblr-gutter-x:2rem}.g-sm-4,.gy-sm-4{--tblr-gutter-y:2rem}.g-sm-5,.gx-sm-5{--tblr-gutter-x:4rem}.g-sm-5,.gy-sm-5{--tblr-gutter-y:4rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-right:0}.offset-md-1{margin-right:8.33333333%}.offset-md-2{margin-right:16.66666667%}.offset-md-3{margin-right:25%}.offset-md-4{margin-right:33.33333333%}.offset-md-5{margin-right:41.66666667%}.offset-md-6{margin-right:50%}.offset-md-7{margin-right:58.33333333%}.offset-md-8{margin-right:66.66666667%}.offset-md-9{margin-right:75%}.offset-md-10{margin-right:83.33333333%}.offset-md-11{margin-right:91.66666667%}.g-md-0,.gx-md-0{--tblr-gutter-x:0}.g-md-0,.gy-md-0{--tblr-gutter-y:0}.g-md-1,.gx-md-1{--tblr-gutter-x:0.25rem}.g-md-1,.gy-md-1{--tblr-gutter-y:0.25rem}.g-md-2,.gx-md-2{--tblr-gutter-x:0.5rem}.g-md-2,.gy-md-2{--tblr-gutter-y:0.5rem}.g-md-3,.gx-md-3{--tblr-gutter-x:1rem}.g-md-3,.gy-md-3{--tblr-gutter-y:1rem}.g-md-4,.gx-md-4{--tblr-gutter-x:2rem}.g-md-4,.gy-md-4{--tblr-gutter-y:2rem}.g-md-5,.gx-md-5{--tblr-gutter-x:4rem}.g-md-5,.gy-md-5{--tblr-gutter-y:4rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-right:0}.offset-lg-1{margin-right:8.33333333%}.offset-lg-2{margin-right:16.66666667%}.offset-lg-3{margin-right:25%}.offset-lg-4{margin-right:33.33333333%}.offset-lg-5{margin-right:41.66666667%}.offset-lg-6{margin-right:50%}.offset-lg-7{margin-right:58.33333333%}.offset-lg-8{margin-right:66.66666667%}.offset-lg-9{margin-right:75%}.offset-lg-10{margin-right:83.33333333%}.offset-lg-11{margin-right:91.66666667%}.g-lg-0,.gx-lg-0{--tblr-gutter-x:0}.g-lg-0,.gy-lg-0{--tblr-gutter-y:0}.g-lg-1,.gx-lg-1{--tblr-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--tblr-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--tblr-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--tblr-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--tblr-gutter-x:1rem}.g-lg-3,.gy-lg-3{--tblr-gutter-y:1rem}.g-lg-4,.gx-lg-4{--tblr-gutter-x:2rem}.g-lg-4,.gy-lg-4{--tblr-gutter-y:2rem}.g-lg-5,.gx-lg-5{--tblr-gutter-x:4rem}.g-lg-5,.gy-lg-5{--tblr-gutter-y:4rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-right:0}.offset-xl-1{margin-right:8.33333333%}.offset-xl-2{margin-right:16.66666667%}.offset-xl-3{margin-right:25%}.offset-xl-4{margin-right:33.33333333%}.offset-xl-5{margin-right:41.66666667%}.offset-xl-6{margin-right:50%}.offset-xl-7{margin-right:58.33333333%}.offset-xl-8{margin-right:66.66666667%}.offset-xl-9{margin-right:75%}.offset-xl-10{margin-right:83.33333333%}.offset-xl-11{margin-right:91.66666667%}.g-xl-0,.gx-xl-0{--tblr-gutter-x:0}.g-xl-0,.gy-xl-0{--tblr-gutter-y:0}.g-xl-1,.gx-xl-1{--tblr-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--tblr-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--tblr-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--tblr-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--tblr-gutter-x:1rem}.g-xl-3,.gy-xl-3{--tblr-gutter-y:1rem}.g-xl-4,.gx-xl-4{--tblr-gutter-x:2rem}.g-xl-4,.gy-xl-4{--tblr-gutter-y:2rem}.g-xl-5,.gx-xl-5{--tblr-gutter-x:4rem}.g-xl-5,.gy-xl-5{--tblr-gutter-y:4rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-right:0}.offset-xxl-1{margin-right:8.33333333%}.offset-xxl-2{margin-right:16.66666667%}.offset-xxl-3{margin-right:25%}.offset-xxl-4{margin-right:33.33333333%}.offset-xxl-5{margin-right:41.66666667%}.offset-xxl-6{margin-right:50%}.offset-xxl-7{margin-right:58.33333333%}.offset-xxl-8{margin-right:66.66666667%}.offset-xxl-9{margin-right:75%}.offset-xxl-10{margin-right:83.33333333%}.offset-xxl-11{margin-right:91.66666667%}.g-xxl-0,.gx-xxl-0{--tblr-gutter-x:0}.g-xxl-0,.gy-xxl-0{--tblr-gutter-y:0}.g-xxl-1,.gx-xxl-1{--tblr-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--tblr-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--tblr-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--tblr-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--tblr-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--tblr-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--tblr-gutter-x:2rem}.g-xxl-4,.gy-xxl-4{--tblr-gutter-y:2rem}.g-xxl-5,.gx-xxl-5{--tblr-gutter-x:4rem}.g-xxl-5,.gy-xxl-5{--tblr-gutter-y:4rem}}.markdown>table,.table{--tblr-table-color:inherit;--tblr-table-bg:transparent;--tblr-table-border-color:rgba(98, 105, 118, 0.16);--tblr-table-accent-bg:transparent;--tblr-table-striped-color:inherit;--tblr-table-striped-bg:var(--tblr-border-color-light);--tblr-table-active-color:inherit;--tblr-table-active-bg:rgba(0, 0, 0, 0.1);--tblr-table-hover-color:inherit;--tblr-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:var(--tblr-table-color);vertical-align:top;border-color:var(--tblr-table-border-color)}.markdown>table>:not(caption)>*>*,.table>:not(caption)>*>*{padding:.75rem .75rem;background-color:var(--tblr-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--tblr-table-accent-bg)}.markdown>table>tbody,.table>tbody{vertical-align:inherit}.markdown>table>thead,.table>thead{vertical-align:bottom}.table-group-divider{border-top:2px solid rgba(98,105,118,.16)}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.markdown>table>:not(caption)>*,.table-bordered>:not(caption)>*{border-width:1px 0}.markdown>table>:not(caption)>*>*,.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(even)>*{--tblr-table-accent-bg:var(--tblr-table-striped-bg);color:var(--tblr-table-striped-color)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--tblr-table-accent-bg:var(--tblr-table-striped-bg);color:var(--tblr-table-striped-color)}.table-active{--tblr-table-accent-bg:var(--tblr-table-active-bg);color:var(--tblr-table-active-color)}.table-hover>tbody>tr:hover>*{--tblr-table-accent-bg:var(--tblr-table-hover-bg);color:var(--tblr-table-hover-color)}.table-primary{--tblr-table-color:#1e293b;--tblr-table-bg:#d2e1f3;--tblr-table-border-color:#c0cfe1;--tblr-table-striped-bg:#c9d8ea;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c0cfe1;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#c5d3e5;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-secondary{--tblr-table-color:#1e293b;--tblr-table-bg:#e0e1e4;--tblr-table-border-color:#cdcfd3;--tblr-table-striped-bg:#d6d8dc;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#cdcfd3;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#d1d3d7;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-success{--tblr-table-color:#1e293b;--tblr-table-bg:#d5f0da;--tblr-table-border-color:#c3dcca;--tblr-table-striped-bg:#cce6d2;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c3dcca;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#c7e1ce;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-info{--tblr-table-color:#1e293b;--tblr-table-bg:#d9ebf9;--tblr-table-border-color:#c6d8e6;--tblr-table-striped-bg:#d0e1f0;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#c6d8e6;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#cbdceb;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-warning{--tblr-table-color:#1e293b;--tblr-table-bg:#fde1cd;--tblr-table-border-color:#e7cfbe;--tblr-table-striped-bg:#f2d8c6;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e7cfbe;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#ecd3c2;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-danger{--tblr-table-color:#1e293b;--tblr-table-bg:#f7d7d7;--tblr-table-border-color:#e1c6c7;--tblr-table-striped-bg:#eccecf;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e1c6c7;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#e7cacb;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-light{--tblr-table-color:#1e293b;--tblr-table-bg:#fafbfc;--tblr-table-border-color:#e4e6e9;--tblr-table-striped-bg:#eff1f2;--tblr-table-striped-color:#1e293b;--tblr-table-active-bg:#e4e6e9;--tblr-table-active-color:#1e293b;--tblr-table-hover-bg:#eaebee;--tblr-table-hover-color:#1e293b;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-dark{--tblr-table-color:#fafbfc;--tblr-table-bg:#1e293b;--tblr-table-border-color:#343e4e;--tblr-table-striped-bg:#293445;--tblr-table-striped-color:#fafbfc;--tblr-table-active-bg:#343e4e;--tblr-table-active-color:#fafbfc;--tblr-table-hover-bg:#2f3949;--tblr-table-hover-color:#fafbfc;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem;font-size:.875rem;font-weight:500}.col-form-label{padding-top:calc(.4375rem + 1px);padding-bottom:calc(.4375rem + 1px);margin-bottom:0;font-size:inherit;font-weight:500;line-height:1.4285714286}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.125rem + 1px);padding-bottom:calc(.125rem + 1px);font-size:.75rem}.form-text{margin-top:.25rem;font-size:85.71428571%;color:#626976}.form-control{display:block;width:100%;padding:.4375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:inherit;background-color:#fff;background-clip:padding-box;border:1px solid #d9dbde;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:4px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:inherit;background-color:#fff;border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-control::-webkit-date-and-time-value{height:1.4285714286em}.form-control::-webkit-input-placeholder{color:#a5a9b1;opacity:1}.form-control::-moz-placeholder{color:#a5a9b1;opacity:1}.form-control:-ms-input-placeholder{color:#a5a9b1;opacity:1}.form-control::-ms-input-placeholder{color:#a5a9b1;opacity:1}.form-control::placeholder{color:#a5a9b1;opacity:1}.form-control:disabled{background-color:#fafbfc;opacity:1}.form-control::-webkit-file-upload-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.4375rem .75rem;margin:-.4375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:inherit;background-color:#fafbfc;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#eeeeef}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#eeeeef}.form-control-plaintext{display:block;width:100%;padding:.4375rem 0;margin-bottom:0;line-height:1.4285714286;color:#1e293b;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-left:0;padding-right:0}.form-control-sm{min-height:calc(1.4285714286em + .25rem + 2px);padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.form-control-sm::-webkit-file-upload-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.125rem .5rem;margin:-.125rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.4285714286em + 1rem + 2px);padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}.form-control-lg::file-selector-button{padding:.5rem 1.5rem;margin:-.5rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem}textarea.form-control{min-height:calc(1.4285714286em + .875rem + 2px)}textarea.form-control-sm{min-height:calc(1.4285714286em + .25rem + 2px)}textarea.form-control-lg{min-height:calc(1.4285714286em + 1rem + 2px)}.form-control-color{width:3rem;height:calc(1.4285714286em + .875rem + 2px);padding:.4375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:4px}.form-control-color::-webkit-color-swatch{border-radius:4px}.form-control-color.form-control-sm{height:calc(1.4285714286em + .25rem + 2px)}.form-control-color.form-control-lg{height:calc(1.4285714286em + 1rem + 2px)}.form-select{display:block;width:100%;padding:.4375rem .75rem .4375rem 2.25rem;-moz-padding-start:calc(.75rem - 3px);font-size:.875rem;font-weight:400;line-height:1.4285714286;color:inherit;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left .75rem center;background-size:16px 12px;border:1px solid #d9dbde;border-radius:4px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-left:.75rem;background-image:none}.form-select:disabled{background-color:#e2e8f0}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 inherit}.form-select-sm{padding-top:.125rem;padding-bottom:.125rem;padding-right:.5rem;font-size:.75rem;border-radius:2px}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-right:1.5rem;font-size:1.25rem;border-radius:8px}.form-check{display:block;min-height:1.25rem;padding-right:1.5rem;margin-bottom:.5rem}.form-check .form-check-input{float:right;margin-right:-1.5rem}.form-check-reverse{padding-left:1.5rem;padding-right:0;text-align:left}.form-check-reverse .form-check-input{float:left;margin-left:-1.5rem;margin-right:0}.form-check-input{width:1rem;height:1rem;margin-top:.2142857143rem;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(98,105,118,.24);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:4px}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#90b5e2;outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-check-input:checked{background-color:#206bc4;border-color:rgba(98,105,118,.24)}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#206bc4;border-color:#206bc4;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.7}.form-switch{padding-right:2.5rem}.form-switch .form-check-input{width:2rem;margin-right:-2.5rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23e6e7e9'/%3e%3c/svg%3e");background-position:right center;border-radius:2rem;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2390b5e2'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:left center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-left:2.5rem;padding-right:0}.form-switch.form-check-reverse .form-check-input{margin-left:-2.5rem;margin-right:0}.form-check-inline{display:inline-block;margin-left:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.25rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f5f7fb,0 0 0 .25rem rgba(32,107,196,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.375rem;background-color:#206bc4;border:2px solid var(--tblr-border-color-light);border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bcd3ed}.form-range::-webkit-slider-runnable-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color-light);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#206bc4;border:2px solid var(--tblr-border-color-light);border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#bcd3ed}.form-range::-moz-range-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color-light);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#64748b}.form-range:disabled::-moz-range-thumb{background-color:#64748b}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;right:0;width:100%;height:100%;padding:1rem .75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid transparent;transform-origin:100% 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-webkit-input-placeholder,.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext:-ms-input-placeholder,.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control-plaintext::-ms-input-placeholder,.form-floating>.form-control::-ms-input-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:not(:-ms-input-placeholder),.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.4375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:#626976;text-align:center;white-space:nowrap;background-color:#fafbfc;border:1px solid #d9dbde;border-radius:4px}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1.5rem;font-size:1.25rem;border-radius:8px}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.125rem .5rem;font-size:.75rem;border-radius:2px}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-left:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-left-radius:0;border-bottom-left-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select,.input-group>:not(:first-child):not(.dropdown-menu):not(.form-floating):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.71428571%;color:#2fb344}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;color:#fafbfc;background-color:rgba(47,179,68,.9);border-radius:4px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#2fb344;padding-left:calc(1.4285714286em + .875rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-left:calc(1.4285714286em + .875rem);background-position:top calc(.3571428572em + .21875rem) left calc(.3571428572em + .21875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#2fb344}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-left:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:left .75rem center,center left 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#2fb344;box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.4285714286em + .875rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#2fb344}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#2fb344}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(47,179,68,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#2fb344}.form-check-inline .form-check-input~.valid-feedback{margin-right:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.71428571%;color:#d63939}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;color:#fafbfc;background-color:rgba(214,57,57,.9);border-radius:4px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#d63939;padding-left:calc(1.4285714286em + .875rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left calc(.3571428572em + .21875rem) center;background-size:calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-left:calc(1.4285714286em + .875rem);background-position:top calc(.3571428572em + .21875rem) left calc(.3571428572em + .21875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#d63939}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-left:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a5a9b1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:left .75rem center,center left 2.25rem;background-size:16px 12px,calc(.7142857143em + .4375rem) calc(.7142857143em + .4375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#d63939;box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.4285714286em + .875rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#d63939}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#d63939}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(214,57,57,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#d63939}.form-check-inline .form-check-input~.invalid-feedback{margin-right:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{--tblr-btn-padding-x:1rem;--tblr-btn-padding-y:0.4375rem;--tblr-btn-font-size:0.875rem;--tblr-btn-font-weight:500;--tblr-btn-line-height:1.4285714286;--tblr-btn-color:#1e293b;--tblr-btn-bg:transparent;--tblr-btn-border-width:1px;--tblr-btn-border-color:transparent;--tblr-btn-border-radius:4px;--tblr-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--tblr-btn-disabled-opacity:0.65;--tblr-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--tblr-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--tblr-btn-padding-y) var(--tblr-btn-padding-x);font-family:var(--tblr-btn-font-family);font-size:var(--tblr-btn-font-size);font-weight:var(--tblr-btn-font-weight);line-height:var(--tblr-btn-line-height);color:var(--tblr-btn-color);text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:var(--tblr-btn-border-width) solid var(--tblr-btn-border-color);border-radius:var(--tblr-btn-border-radius);background-color:var(--tblr-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--tblr-btn-hover-color);text-decoration:none;background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color)}.btn-check:focus+.btn,.btn:focus{color:var(--tblr-btn-hover-color);background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color);outline:0;box-shadow:var(--tblr-btn-focus-box-shadow)}.btn-check:active+.btn,.btn-check:checked+.btn,.btn.active,.btn.show,.btn:active{color:var(--tblr-btn-active-color);background-color:var(--tblr-btn-active-bg);border-color:var(--tblr-btn-active-border-color)}.btn-check:active+.btn:focus,.btn-check:checked+.btn:focus,.btn.active:focus,.btn.show:focus,.btn:active:focus{box-shadow:var(--tblr-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--tblr-btn-disabled-color);pointer-events:none;background-color:var(--tblr-btn-disabled-bg);border-color:var(--tblr-btn-disabled-border-color);opacity:var(--tblr-btn-disabled-opacity)}.btn-primary{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1b5ba7;--tblr-btn-hover-border-color:#1a569d;--tblr-btn-focus-shadow-rgb:65,129,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1a569d;--tblr-btn-active-border-color:#185093;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#206bc4;--tblr-btn-disabled-border-color:#206bc4}.btn-secondary{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#626976;--tblr-btn-border-color:#626976;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#535964;--tblr-btn-hover-border-color:#4e545e;--tblr-btn-focus-shadow-rgb:121,127,138;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4e545e;--tblr-btn-active-border-color:#4a4f59;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#626976;--tblr-btn-disabled-border-color:#626976}.btn-success{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#2fb344;--tblr-btn-border-color:#2fb344;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#28983a;--tblr-btn-hover-border-color:#268f36;--tblr-btn-focus-shadow-rgb:77,190,96;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#268f36;--tblr-btn-active-border-color:#238633;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#2fb344;--tblr-btn-disabled-border-color:#2fb344}.btn-info{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#4299e1;--tblr-btn-border-color:#4299e1;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3882bf;--tblr-btn-hover-border-color:#357ab4;--tblr-btn-focus-shadow-rgb:94,168,229;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#357ab4;--tblr-btn-active-border-color:#3273a9;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#4299e1;--tblr-btn-disabled-border-color:#4299e1}.btn-warning{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#f76707;--tblr-btn-border-color:#f76707;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d25806;--tblr-btn-hover-border-color:#c65206;--tblr-btn-focus-shadow-rgb:247,125,44;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#c65206;--tblr-btn-active-border-color:#b94d05;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#f76707;--tblr-btn-disabled-border-color:#f76707}.btn-danger{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#d63939;--tblr-btn-border-color:#d63939;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#b63030;--tblr-btn-hover-border-color:#ab2e2e;--tblr-btn-focus-shadow-rgb:219,86,86;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ab2e2e;--tblr-btn-active-border-color:#a12b2b;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#d63939;--tblr-btn-disabled-border-color:#d63939}.btn-light{--tblr-btn-color:#1e293b;--tblr-btn-bg:#fafbfc;--tblr-btn-border-color:#fafbfc;--tblr-btn-hover-color:#1e293b;--tblr-btn-hover-bg:#d5d5d6;--tblr-btn-hover-border-color:#c8c9ca;--tblr-btn-focus-shadow-rgb:217,220,223;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#c8c9ca;--tblr-btn-active-border-color:#bcbcbd;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1e293b;--tblr-btn-disabled-bg:#fafbfc;--tblr-btn-disabled-border-color:#fafbfc}.btn-dark{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#1e293b;--tblr-btn-border-color:#1e293b;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#404958;--tblr-btn-hover-border-color:#353e4f;--tblr-btn-focus-shadow-rgb:63,73,88;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4b5462;--tblr-btn-active-border-color:#353e4f;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#1e293b;--tblr-btn-disabled-border-color:#1e293b}.btn-muted{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#626976;--tblr-btn-border-color:#626976;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#535964;--tblr-btn-hover-border-color:#4e545e;--tblr-btn-focus-shadow-rgb:121,127,138;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4e545e;--tblr-btn-active-border-color:#4a4f59;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#626976;--tblr-btn-disabled-border-color:#626976}.btn-blue{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1b5ba7;--tblr-btn-hover-border-color:#1a569d;--tblr-btn-focus-shadow-rgb:65,129,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1a569d;--tblr-btn-active-border-color:#185093;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#206bc4;--tblr-btn-disabled-border-color:#206bc4}.btn-azure{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#4299e1;--tblr-btn-border-color:#4299e1;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3882bf;--tblr-btn-hover-border-color:#357ab4;--tblr-btn-focus-shadow-rgb:94,168,229;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#357ab4;--tblr-btn-active-border-color:#3273a9;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#4299e1;--tblr-btn-disabled-border-color:#4299e1}.btn-indigo{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#4263eb;--tblr-btn-border-color:#4263eb;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3854c8;--tblr-btn-hover-border-color:#354fbc;--tblr-btn-focus-shadow-rgb:94,122,238;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#354fbc;--tblr-btn-active-border-color:#324ab0;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#4263eb;--tblr-btn-disabled-border-color:#4263eb}.btn-purple{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#ae3ec9;--tblr-btn-border-color:#ae3ec9;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#9435ab;--tblr-btn-hover-border-color:#8b32a1;--tblr-btn-focus-shadow-rgb:185,90,209;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#8b32a1;--tblr-btn-active-border-color:#832f97;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#ae3ec9;--tblr-btn-disabled-border-color:#ae3ec9}.btn-pink{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#d6336c;--tblr-btn-border-color:#d6336c;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#b62b5c;--tblr-btn-hover-border-color:#ab2956;--tblr-btn-focus-shadow-rgb:219,81,130;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ab2956;--tblr-btn-active-border-color:#a12651;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#d6336c;--tblr-btn-disabled-border-color:#d6336c}.btn-red{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#d63939;--tblr-btn-border-color:#d63939;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#b63030;--tblr-btn-hover-border-color:#ab2e2e;--tblr-btn-focus-shadow-rgb:219,86,86;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ab2e2e;--tblr-btn-active-border-color:#a12b2b;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#d63939;--tblr-btn-disabled-border-color:#d63939}.btn-orange{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#f76707;--tblr-btn-border-color:#f76707;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d25806;--tblr-btn-hover-border-color:#c65206;--tblr-btn-focus-shadow-rgb:247,125,44;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#c65206;--tblr-btn-active-border-color:#b94d05;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#f76707;--tblr-btn-disabled-border-color:#f76707}.btn-yellow{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#f59f00;--tblr-btn-border-color:#f59f00;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d08700;--tblr-btn-hover-border-color:#c47f00;--tblr-btn-focus-shadow-rgb:246,173,38;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#c47f00;--tblr-btn-active-border-color:#b87700;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#f59f00;--tblr-btn-disabled-border-color:#f59f00}.btn-lime{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#74b816;--tblr-btn-border-color:#74b816;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#639c13;--tblr-btn-hover-border-color:#5d9312;--tblr-btn-focus-shadow-rgb:136,194,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#5d9312;--tblr-btn-active-border-color:#578a11;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#74b816;--tblr-btn-disabled-border-color:#74b816}.btn-green{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#2fb344;--tblr-btn-border-color:#2fb344;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#28983a;--tblr-btn-hover-border-color:#268f36;--tblr-btn-focus-shadow-rgb:77,190,96;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#268f36;--tblr-btn-active-border-color:#238633;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#2fb344;--tblr-btn-disabled-border-color:#2fb344}.btn-teal{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#0ca678;--tblr-btn-border-color:#0ca678;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0a8d66;--tblr-btn-hover-border-color:#0a8560;--tblr-btn-focus-shadow-rgb:48,179,140;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0a8560;--tblr-btn-active-border-color:#097d5a;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#0ca678;--tblr-btn-disabled-border-color:#0ca678}.btn-cyan{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#17a2b8;--tblr-btn-border-color:#17a2b8;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#148a9c;--tblr-btn-hover-border-color:#128293;--tblr-btn-focus-shadow-rgb:57,175,194;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#128293;--tblr-btn-active-border-color:#117a8a;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#17a2b8;--tblr-btn-disabled-border-color:#17a2b8}.btn-facebook{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#3b5998;--tblr-btn-border-color:#3b5998;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#324c81;--tblr-btn-hover-border-color:#2f477a;--tblr-btn-focus-shadow-rgb:88,113,167;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2f477a;--tblr-btn-active-border-color:#2c4372;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#3b5998;--tblr-btn-disabled-border-color:#3b5998}.btn-twitter{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#1da1f2;--tblr-btn-border-color:#1da1f2;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1989ce;--tblr-btn-hover-border-color:#1781c2;--tblr-btn-focus-shadow-rgb:62,175,244;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1781c2;--tblr-btn-active-border-color:#1679b6;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#1da1f2;--tblr-btn-disabled-border-color:#1da1f2}.btn-linkedin{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#0a66c2;--tblr-btn-border-color:#0a66c2;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0957a5;--tblr-btn-hover-border-color:#08529b;--tblr-btn-focus-shadow-rgb:46,124,203;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#08529b;--tblr-btn-active-border-color:#084d92;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#0a66c2;--tblr-btn-disabled-border-color:#0a66c2}.btn-google{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#dc4e41;--tblr-btn-border-color:#dc4e41;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#bb4237;--tblr-btn-hover-border-color:#b03e34;--tblr-btn-focus-shadow-rgb:225,104,93;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#b03e34;--tblr-btn-active-border-color:#a53b31;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#dc4e41;--tblr-btn-disabled-border-color:#dc4e41}.btn-youtube{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#ff0000;--tblr-btn-border-color:#ff0000;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d90000;--tblr-btn-hover-border-color:#cc0000;--tblr-btn-focus-shadow-rgb:254,38,38;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#cc0000;--tblr-btn-active-border-color:#bf0000;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#ff0000;--tblr-btn-disabled-border-color:#ff0000}.btn-vimeo{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#1ab7ea;--tblr-btn-border-color:#1ab7ea;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#169cc7;--tblr-btn-hover-border-color:#1592bb;--tblr-btn-focus-shadow-rgb:60,193,237;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1592bb;--tblr-btn-active-border-color:#1489b0;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#1ab7ea;--tblr-btn-disabled-border-color:#1ab7ea}.btn-dribbble{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#ea4c89;--tblr-btn-border-color:#ea4c89;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#c74174;--tblr-btn-hover-border-color:#bb3d6e;--tblr-btn-focus-shadow-rgb:236,102,154;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#bb3d6e;--tblr-btn-active-border-color:#b03967;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#ea4c89;--tblr-btn-disabled-border-color:#ea4c89}.btn-github{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#181717;--tblr-btn-border-color:#181717;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#141414;--tblr-btn-hover-border-color:#131212;--tblr-btn-focus-shadow-rgb:58,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#131212;--tblr-btn-active-border-color:#121111;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#181717;--tblr-btn-disabled-border-color:#181717}.btn-instagram{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#e4405f;--tblr-btn-border-color:#e4405f;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#c23651;--tblr-btn-hover-border-color:#b6334c;--tblr-btn-focus-shadow-rgb:231,92,119;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#b6334c;--tblr-btn-active-border-color:#ab3047;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#e4405f;--tblr-btn-disabled-border-color:#e4405f}.btn-pinterest{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#bd081c;--tblr-btn-border-color:#bd081c;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#a10718;--tblr-btn-hover-border-color:#970616;--tblr-btn-focus-shadow-rgb:198,44,62;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#970616;--tblr-btn-active-border-color:#8e0615;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#bd081c;--tblr-btn-disabled-border-color:#bd081c}.btn-vk{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#6383a8;--tblr-btn-border-color:#6383a8;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#546f8f;--tblr-btn-hover-border-color:#4f6986;--tblr-btn-focus-shadow-rgb:122,149,181;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4f6986;--tblr-btn-active-border-color:#4a627e;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#6383a8;--tblr-btn-disabled-border-color:#6383a8}.btn-rss{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#ffa500;--tblr-btn-border-color:#ffa500;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d98c00;--tblr-btn-hover-border-color:#cc8400;--tblr-btn-focus-shadow-rgb:254,178,38;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#cc8400;--tblr-btn-active-border-color:#bf7c00;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#ffa500;--tblr-btn-disabled-border-color:#ffa500}.btn-flickr{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#0063dc;--tblr-btn-border-color:#0063dc;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0054bb;--tblr-btn-hover-border-color:#004fb0;--tblr-btn-focus-shadow-rgb:38,122,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#004fb0;--tblr-btn-active-border-color:#004aa5;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#0063dc;--tblr-btn-disabled-border-color:#0063dc}.btn-bitbucket{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#0052cc;--tblr-btn-border-color:#0052cc;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0046ad;--tblr-btn-hover-border-color:#0042a3;--tblr-btn-focus-shadow-rgb:38,107,211;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0042a3;--tblr-btn-active-border-color:#003e99;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#0052cc;--tblr-btn-disabled-border-color:#0052cc}.btn-tabler{--tblr-btn-color:#fafbfc;--tblr-btn-bg:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1b5ba7;--tblr-btn-hover-border-color:#1a569d;--tblr-btn-focus-shadow-rgb:65,129,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1a569d;--tblr-btn-active-border-color:#185093;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:#206bc4;--tblr-btn-disabled-border-color:#206bc4}.btn-outline-primary{--tblr-btn-color:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:#206bc4;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#206bc4;--tblr-gradient:none}.btn-outline-secondary{--tblr-btn-color:#626976;--tblr-btn-border-color:#626976;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#626976;--tblr-btn-hover-border-color:#626976;--tblr-btn-focus-shadow-rgb:98,105,118;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#626976;--tblr-btn-active-border-color:#626976;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#626976;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#626976;--tblr-gradient:none}.btn-outline-success{--tblr-btn-color:#2fb344;--tblr-btn-border-color:#2fb344;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#2fb344;--tblr-btn-hover-border-color:#2fb344;--tblr-btn-focus-shadow-rgb:47,179,68;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2fb344;--tblr-btn-active-border-color:#2fb344;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#2fb344;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#2fb344;--tblr-gradient:none}.btn-outline-info{--tblr-btn-color:#4299e1;--tblr-btn-border-color:#4299e1;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4299e1;--tblr-btn-hover-border-color:#4299e1;--tblr-btn-focus-shadow-rgb:66,153,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4299e1;--tblr-btn-active-border-color:#4299e1;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4299e1;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#4299e1;--tblr-gradient:none}.btn-outline-warning{--tblr-btn-color:#f76707;--tblr-btn-border-color:#f76707;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f76707;--tblr-btn-hover-border-color:#f76707;--tblr-btn-focus-shadow-rgb:247,103,7;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f76707;--tblr-btn-active-border-color:#f76707;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f76707;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#f76707;--tblr-gradient:none}.btn-outline-danger{--tblr-btn-color:#d63939;--tblr-btn-border-color:#d63939;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d63939;--tblr-btn-hover-border-color:#d63939;--tblr-btn-focus-shadow-rgb:214,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d63939;--tblr-btn-active-border-color:#d63939;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d63939;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#d63939;--tblr-gradient:none}.btn-outline-light{--tblr-btn-color:#fafbfc;--tblr-btn-border-color:#fafbfc;--tblr-btn-hover-color:#1e293b;--tblr-btn-hover-bg:#fafbfc;--tblr-btn-hover-border-color:#fafbfc;--tblr-btn-focus-shadow-rgb:250,251,252;--tblr-btn-active-color:#1e293b;--tblr-btn-active-bg:#fafbfc;--tblr-btn-active-border-color:#fafbfc;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#fafbfc;--tblr-gradient:none}.btn-outline-dark{--tblr-btn-color:#1e293b;--tblr-btn-border-color:#1e293b;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1e293b;--tblr-btn-hover-border-color:#1e293b;--tblr-btn-focus-shadow-rgb:30,41,59;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1e293b;--tblr-btn-active-border-color:#1e293b;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1e293b;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#1e293b;--tblr-gradient:none}.btn-outline-muted{--tblr-btn-color:#626976;--tblr-btn-border-color:#626976;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#626976;--tblr-btn-hover-border-color:#626976;--tblr-btn-focus-shadow-rgb:98,105,118;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#626976;--tblr-btn-active-border-color:#626976;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#626976;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#626976;--tblr-gradient:none}.btn-outline-blue{--tblr-btn-color:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:#206bc4;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#206bc4;--tblr-gradient:none}.btn-outline-azure{--tblr-btn-color:#4299e1;--tblr-btn-border-color:#4299e1;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4299e1;--tblr-btn-hover-border-color:#4299e1;--tblr-btn-focus-shadow-rgb:66,153,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4299e1;--tblr-btn-active-border-color:#4299e1;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4299e1;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#4299e1;--tblr-gradient:none}.btn-outline-indigo{--tblr-btn-color:#4263eb;--tblr-btn-border-color:#4263eb;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4263eb;--tblr-btn-hover-border-color:#4263eb;--tblr-btn-focus-shadow-rgb:66,99,235;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4263eb;--tblr-btn-active-border-color:#4263eb;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4263eb;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#4263eb;--tblr-gradient:none}.btn-outline-purple{--tblr-btn-color:#ae3ec9;--tblr-btn-border-color:#ae3ec9;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ae3ec9;--tblr-btn-hover-border-color:#ae3ec9;--tblr-btn-focus-shadow-rgb:174,62,201;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ae3ec9;--tblr-btn-active-border-color:#ae3ec9;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ae3ec9;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#ae3ec9;--tblr-gradient:none}.btn-outline-pink{--tblr-btn-color:#d6336c;--tblr-btn-border-color:#d6336c;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d6336c;--tblr-btn-hover-border-color:#d6336c;--tblr-btn-focus-shadow-rgb:214,51,108;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d6336c;--tblr-btn-active-border-color:#d6336c;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d6336c;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#d6336c;--tblr-gradient:none}.btn-outline-red{--tblr-btn-color:#d63939;--tblr-btn-border-color:#d63939;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d63939;--tblr-btn-hover-border-color:#d63939;--tblr-btn-focus-shadow-rgb:214,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d63939;--tblr-btn-active-border-color:#d63939;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d63939;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#d63939;--tblr-gradient:none}.btn-outline-orange{--tblr-btn-color:#f76707;--tblr-btn-border-color:#f76707;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f76707;--tblr-btn-hover-border-color:#f76707;--tblr-btn-focus-shadow-rgb:247,103,7;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f76707;--tblr-btn-active-border-color:#f76707;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f76707;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#f76707;--tblr-gradient:none}.btn-outline-yellow{--tblr-btn-color:#f59f00;--tblr-btn-border-color:#f59f00;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f59f00;--tblr-btn-hover-border-color:#f59f00;--tblr-btn-focus-shadow-rgb:245,159,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f59f00;--tblr-btn-active-border-color:#f59f00;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f59f00;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#f59f00;--tblr-gradient:none}.btn-outline-lime{--tblr-btn-color:#74b816;--tblr-btn-border-color:#74b816;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#74b816;--tblr-btn-hover-border-color:#74b816;--tblr-btn-focus-shadow-rgb:116,184,22;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#74b816;--tblr-btn-active-border-color:#74b816;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#74b816;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#74b816;--tblr-gradient:none}.btn-outline-green{--tblr-btn-color:#2fb344;--tblr-btn-border-color:#2fb344;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#2fb344;--tblr-btn-hover-border-color:#2fb344;--tblr-btn-focus-shadow-rgb:47,179,68;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2fb344;--tblr-btn-active-border-color:#2fb344;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#2fb344;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#2fb344;--tblr-gradient:none}.btn-outline-teal{--tblr-btn-color:#0ca678;--tblr-btn-border-color:#0ca678;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0ca678;--tblr-btn-hover-border-color:#0ca678;--tblr-btn-focus-shadow-rgb:12,166,120;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0ca678;--tblr-btn-active-border-color:#0ca678;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0ca678;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#0ca678;--tblr-gradient:none}.btn-outline-cyan{--tblr-btn-color:#17a2b8;--tblr-btn-border-color:#17a2b8;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#17a2b8;--tblr-btn-hover-border-color:#17a2b8;--tblr-btn-focus-shadow-rgb:23,162,184;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#17a2b8;--tblr-btn-active-border-color:#17a2b8;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#17a2b8;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#17a2b8;--tblr-gradient:none}.btn-outline-facebook{--tblr-btn-color:#3b5998;--tblr-btn-border-color:#3b5998;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3b5998;--tblr-btn-hover-border-color:#3b5998;--tblr-btn-focus-shadow-rgb:59,89,152;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#3b5998;--tblr-btn-active-border-color:#3b5998;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#3b5998;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#3b5998;--tblr-gradient:none}.btn-outline-twitter{--tblr-btn-color:#1da1f2;--tblr-btn-border-color:#1da1f2;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1da1f2;--tblr-btn-hover-border-color:#1da1f2;--tblr-btn-focus-shadow-rgb:29,161,242;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1da1f2;--tblr-btn-active-border-color:#1da1f2;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1da1f2;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#1da1f2;--tblr-gradient:none}.btn-outline-linkedin{--tblr-btn-color:#0a66c2;--tblr-btn-border-color:#0a66c2;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0a66c2;--tblr-btn-hover-border-color:#0a66c2;--tblr-btn-focus-shadow-rgb:10,102,194;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0a66c2;--tblr-btn-active-border-color:#0a66c2;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0a66c2;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#0a66c2;--tblr-gradient:none}.btn-outline-google{--tblr-btn-color:#dc4e41;--tblr-btn-border-color:#dc4e41;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#dc4e41;--tblr-btn-hover-border-color:#dc4e41;--tblr-btn-focus-shadow-rgb:220,78,65;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#dc4e41;--tblr-btn-active-border-color:#dc4e41;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#dc4e41;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#dc4e41;--tblr-gradient:none}.btn-outline-youtube{--tblr-btn-color:#ff0000;--tblr-btn-border-color:#ff0000;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ff0000;--tblr-btn-hover-border-color:#ff0000;--tblr-btn-focus-shadow-rgb:255,0,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ff0000;--tblr-btn-active-border-color:#ff0000;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ff0000;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#ff0000;--tblr-gradient:none}.btn-outline-vimeo{--tblr-btn-color:#1ab7ea;--tblr-btn-border-color:#1ab7ea;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1ab7ea;--tblr-btn-hover-border-color:#1ab7ea;--tblr-btn-focus-shadow-rgb:26,183,234;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1ab7ea;--tblr-btn-active-border-color:#1ab7ea;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1ab7ea;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#1ab7ea;--tblr-gradient:none}.btn-outline-dribbble{--tblr-btn-color:#ea4c89;--tblr-btn-border-color:#ea4c89;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ea4c89;--tblr-btn-hover-border-color:#ea4c89;--tblr-btn-focus-shadow-rgb:234,76,137;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ea4c89;--tblr-btn-active-border-color:#ea4c89;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ea4c89;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#ea4c89;--tblr-gradient:none}.btn-outline-github{--tblr-btn-color:#181717;--tblr-btn-border-color:#181717;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#181717;--tblr-btn-hover-border-color:#181717;--tblr-btn-focus-shadow-rgb:24,23,23;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#181717;--tblr-btn-active-border-color:#181717;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#181717;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#181717;--tblr-gradient:none}.btn-outline-instagram{--tblr-btn-color:#e4405f;--tblr-btn-border-color:#e4405f;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#e4405f;--tblr-btn-hover-border-color:#e4405f;--tblr-btn-focus-shadow-rgb:228,64,95;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#e4405f;--tblr-btn-active-border-color:#e4405f;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#e4405f;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#e4405f;--tblr-gradient:none}.btn-outline-pinterest{--tblr-btn-color:#bd081c;--tblr-btn-border-color:#bd081c;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#bd081c;--tblr-btn-hover-border-color:#bd081c;--tblr-btn-focus-shadow-rgb:189,8,28;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#bd081c;--tblr-btn-active-border-color:#bd081c;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#bd081c;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#bd081c;--tblr-gradient:none}.btn-outline-vk{--tblr-btn-color:#6383a8;--tblr-btn-border-color:#6383a8;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#6383a8;--tblr-btn-hover-border-color:#6383a8;--tblr-btn-focus-shadow-rgb:99,131,168;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#6383a8;--tblr-btn-active-border-color:#6383a8;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#6383a8;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#6383a8;--tblr-gradient:none}.btn-outline-rss{--tblr-btn-color:#ffa500;--tblr-btn-border-color:#ffa500;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ffa500;--tblr-btn-hover-border-color:#ffa500;--tblr-btn-focus-shadow-rgb:255,165,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ffa500;--tblr-btn-active-border-color:#ffa500;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ffa500;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#ffa500;--tblr-gradient:none}.btn-outline-flickr{--tblr-btn-color:#0063dc;--tblr-btn-border-color:#0063dc;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0063dc;--tblr-btn-hover-border-color:#0063dc;--tblr-btn-focus-shadow-rgb:0,99,220;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0063dc;--tblr-btn-active-border-color:#0063dc;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0063dc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#0063dc;--tblr-gradient:none}.btn-outline-bitbucket{--tblr-btn-color:#0052cc;--tblr-btn-border-color:#0052cc;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0052cc;--tblr-btn-hover-border-color:#0052cc;--tblr-btn-focus-shadow-rgb:0,82,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0052cc;--tblr-btn-active-border-color:#0052cc;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0052cc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#0052cc;--tblr-gradient:none}.btn-outline-tabler{--tblr-btn-color:#206bc4;--tblr-btn-border-color:#206bc4;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:#206bc4;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:#206bc4;--tblr-gradient:none}.btn-link{--tblr-btn-font-weight:400;--tblr-btn-color:var(--tblr-link-color);--tblr-btn-bg:transparent;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:var(--tblr-link-hover-color);--tblr-btn-hover-border-color:transparent;--tblr-btn-active-color:var(--tblr-link-hover-color);--tblr-btn-active-border-color:transparent;--tblr-btn-disabled-color:#475569;--tblr-btn-disabled-border-color:transparent;--tblr-btn-box-shadow:none;--tblr-btn-focus-shadow-rgb:65,129,204;text-decoration:none}.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link:focus{color:var(--tblr-btn-color)}.btn-link:hover{color:var(--tblr-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--tblr-btn-padding-y:0.5rem;--tblr-btn-padding-x:1.5rem;--tblr-btn-font-size:1.25rem;--tblr-btn-border-radius:8px}.btn-group-sm>.btn,.btn-sm{--tblr-btn-padding-y:0.125rem;--tblr-btn-padding-x:0.5rem;--tblr-btn-font-size:0.75rem;--tblr-btn-border-radius:2px}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(45deg)}.dropdown-menu{--tblr-dropdown-min-width:11rem;--tblr-dropdown-padding-x:0;--tblr-dropdown-padding-y:0.25rem;--tblr-dropdown-spacer:1px;--tblr-dropdown-font-size:0.875rem;--tblr-dropdown-color:#1e293b;--tblr-dropdown-bg:#ffffff;--tblr-dropdown-border-color:rgba(98, 105, 118, 0.16);--tblr-dropdown-border-radius:4px;--tblr-dropdown-border-width:1px;--tblr-dropdown-inner-border-radius:3px;--tblr-dropdown-divider-bg:rgba(98, 105, 118, 0.16);--tblr-dropdown-divider-margin-y:0.5rem;--tblr-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--tblr-dropdown-link-color:inherit;--tblr-dropdown-link-hover-color:inherit;--tblr-dropdown-link-hover-bg:rgba(98, 105, 118, 0.04);--tblr-dropdown-link-active-color:#206bc4;--tblr-dropdown-link-active-bg:rgba(32, 107, 196, 0.04);--tblr-dropdown-link-disabled-color:#64748b;--tblr-dropdown-item-padding-x:0.75rem;--tblr-dropdown-item-padding-y:0.5rem;--tblr-dropdown-header-color:#475569;--tblr-dropdown-header-padding-x:0.75rem;--tblr-dropdown-header-padding-y:0.25rem;position:absolute;z-index:1000;display:none;min-width:var(--tblr-dropdown-min-width);padding:var(--tblr-dropdown-padding-y) var(--tblr-dropdown-padding-x);margin:0;font-size:var(--tblr-dropdown-font-size);color:var(--tblr-dropdown-color);text-align:right;list-style:none;background-color:var(--tblr-dropdown-bg);background-clip:padding-box;border:var(--tblr-dropdown-border-width) solid var(--tblr-dropdown-border-color);border-radius:var(--tblr-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;right:0;margin-top:var(--tblr-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{left:0;right:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{left:0;right:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{left:0;right:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{left:0;right:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{left:0;right:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{left:0;right:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--tblr-dropdown-spacer)}.dropup .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(-135deg)}.dropend .dropdown-menu[data-bs-popper]{top:0;left:auto;right:100%;margin-top:0;margin-right:var(--tblr-dropdown-spacer)}.dropend .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(135deg)}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;left:100%;right:auto;margin-top:0;margin-left:var(--tblr-dropdown-spacer)}.dropstart .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(-45deg)}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--tblr-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--tblr-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--tblr-dropdown-link-color);text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:var(--tblr-dropdown-link-hover-color);text-decoration:none;background-color:var(--tblr-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--tblr-dropdown-link-active-color);text-decoration:none;background-color:var(--tblr-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--tblr-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--tblr-dropdown-header-padding-y) var(--tblr-dropdown-header-padding-x);margin-bottom:0;font-size:.765625rem;color:var(--tblr-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x);color:var(--tblr-dropdown-link-color)}.dropdown-menu-dark{--tblr-dropdown-color:#cbd5e1;--tblr-dropdown-bg:#1e293b;--tblr-dropdown-border-color:rgba(98, 105, 118, 0.16);--tblr-dropdown-link-color:#cbd5e1;--tblr-dropdown-link-hover-color:#ffffff;--tblr-dropdown-divider-bg:rgba(98, 105, 118, 0.16);--tblr-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--tblr-dropdown-link-active-color:#206bc4;--tblr-dropdown-link-active-bg:rgba(32, 107, 196, 0.04);--tblr-dropdown-link-disabled-color:#64748b;--tblr-dropdown-header-color:#64748b}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:4px}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-right:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-toggle-split{padding-left:.75rem;padding-right:.75rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-right:0}.dropstart .dropdown-toggle-split::before{margin-left:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-left:.375rem;padding-right:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-left:1.125rem;padding-right:1.125rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-right-radius:0;border-top-left-radius:0}.nav{--tblr-nav-link-padding-x:0.75rem;--tblr-nav-link-padding-y:0.5rem;--tblr-nav-link-color:inherit;--tblr-nav-link-hover-color:var(--tblr-link-hover-color);--tblr-nav-link-disabled-color:#475569;display:flex;flex-wrap:wrap;padding-right:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--tblr-nav-link-padding-y) var(--tblr-nav-link-padding-x);font-size:var(--tblr-nav-link-font-size);font-weight:var(--tblr-nav-link-font-weight);color:var(--tblr-nav-link-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--tblr-nav-link-hover-color);text-decoration:none}.nav-link.disabled{color:var(--tblr-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--tblr-nav-tabs-border-width:1px;--tblr-nav-tabs-border-color:#cbd5e1;--tblr-nav-tabs-border-radius:4px;--tblr-nav-tabs-link-hover-border-color:#e2e8f0 #e2e8f0 #cbd5e1;--tblr-nav-tabs-link-active-color:#334155;--tblr-nav-tabs-link-active-bg:#f5f7fb;--tblr-nav-tabs-link-active-border-color:#cbd5e1 #cbd5e1 #f5f7fb;border-bottom:var(--tblr-nav-tabs-border-width) solid var(--tblr-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(var(--tblr-nav-tabs-border-width) * -1);background:0 0;border:var(--tblr-nav-tabs-border-width) solid transparent;border-top-right-radius:var(--tblr-nav-tabs-border-radius);border-top-left-radius:var(--tblr-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--tblr-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--tblr-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--tblr-nav-tabs-link-active-color);background-color:var(--tblr-nav-tabs-link-active-bg);border-color:var(--tblr-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(var(--tblr-nav-tabs-border-width) * -1);border-top-right-radius:0;border-top-left-radius:0}.nav-pills{--tblr-nav-pills-border-radius:4px;--tblr-nav-pills-link-active-color:#206bc4;--tblr-nav-pills-link-active-bg:rgba(32, 107, 196, 0.04)}.nav-pills .nav-link{background:0 0;border:0;border-radius:var(--tblr-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--tblr-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--tblr-nav-pills-link-active-color);background-color:var(--tblr-nav-pills-link-active-bg)}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--tblr-navbar-padding-x:0;--tblr-navbar-padding-y:0.25rem;--tblr-navbar-color:#1e293b;--tblr-navbar-hover-color:rgba(0, 0, 0, 0.7);--tblr-navbar-disabled-color:rgba(30, 41, 59, 0.3);--tblr-navbar-active-color:#1e293b;--tblr-navbar-brand-padding-y:0.5rem;--tblr-navbar-brand-margin-end:1rem;--tblr-navbar-brand-font-size:1rem;--tblr-navbar-brand-color:#1e293b;--tblr-navbar-brand-hover-color:#1e293b;--tblr-navbar-nav-link-padding-x:0.75rem;--tblr-navbar-toggler-padding-y:0;--tblr-navbar-toggler-padding-x:0;--tblr-navbar-toggler-font-size:1rem;--tblr-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231e293b' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--tblr-navbar-toggler-border-color:rgba(0, 0, 0, 0.1);--tblr-navbar-toggler-border-radius:4px;--tblr-navbar-toggler-focus-width:0;--tblr-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--tblr-navbar-padding-y) var(--tblr-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--tblr-navbar-brand-padding-y);padding-bottom:var(--tblr-navbar-brand-padding-y);margin-left:var(--tblr-navbar-brand-margin-end);font-size:var(--tblr-navbar-brand-font-size);color:var(--tblr-navbar-brand-color);white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--tblr-navbar-brand-hover-color);text-decoration:none}.navbar-nav{--tblr-nav-link-padding-x:0;--tblr-nav-link-padding-y:0.5rem;--tblr-nav-link-color:var(--tblr-navbar-color);--tblr-nav-link-hover-color:var(--tblr-navbar-hover-color);--tblr-nav-link-disabled-color:var(--tblr-navbar-disabled-color);display:flex;flex-direction:column;padding-right:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .show>.nav-link{color:var(--tblr-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--tblr-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--tblr-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--tblr-navbar-toggler-padding-y) var(--tblr-navbar-toggler-padding-x);font-size:var(--tblr-navbar-toggler-font-size);line-height:1;color:var(--tblr-navbar-color);background-color:transparent;border:var(--tblr-border-width) solid var(--tblr-navbar-toggler-border-color);border-radius:var(--tblr-navbar-toggler-border-radius);transition:var(--tblr-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--tblr-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--tblr-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--tblr-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-left:var(--tblr-navbar-nav-link-padding-x);padding-right:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-left:var(--tblr-navbar-nav-link-padding-x);padding-right:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-left:var(--tblr-navbar-nav-link-padding-x);padding-right:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-left:var(--tblr-navbar-nav-link-padding-x);padding-right:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-left:var(--tblr-navbar-nav-link-padding-x);padding-right:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-left:var(--tblr-navbar-nav-link-padding-x);padding-right:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark{--tblr-navbar-color:rgba(255, 255, 255, 0.7);--tblr-navbar-hover-color:rgba(255, 255, 255, 0.75);--tblr-navbar-disabled-color:rgba(255, 255, 255, 0.3);--tblr-navbar-active-color:#ffffff;--tblr-navbar-brand-color:#ffffff;--tblr-navbar-brand-hover-color:#ffffff;--tblr-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--tblr-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--tblr-card-spacer-y:1rem;--tblr-card-spacer-x:1.25rem;--tblr-card-title-spacer-y:1.25rem;--tblr-card-border-width:1px;--tblr-card-border-color:rgba(98, 105, 118, 0.16);--tblr-card-border-radius:4px;--tblr-card-inner-border-radius:3px;--tblr-card-cap-padding-y:1rem;--tblr-card-cap-padding-x:1.25rem;--tblr-card-cap-bg:#fafbfc;--tblr-card-cap-color:#626976;--tblr-card-bg:#ffffff;--tblr-card-img-overlay-padding:1rem;--tblr-card-group-margin:1.5rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--tblr-card-height);word-wrap:break-word;background-color:var(--tblr-card-bg);background-clip:border-box;border:var(--tblr-card-border-width) solid var(--tblr-card-border-color);border-radius:var(--tblr-card-border-radius)}.card>.hr,.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-right-radius:var(--tblr-card-inner-border-radius);border-top-left-radius:var(--tblr-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-left-radius:var(--tblr-card-inner-border-radius);border-bottom-right-radius:var(--tblr-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--tblr-card-spacer-y) var(--tblr-card-spacer-x);color:var(--tblr-card-color)}.card-title{margin-bottom:var(--tblr-card-title-spacer-y)}.card-subtitle{margin-top:calc(-.5 * var(--tblr-card-title-spacer-y));margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-right:var(--tblr-card-spacer-x)}.card-header{padding:var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x);margin-bottom:0;color:var(--tblr-card-cap-color);background-color:var(--tblr-card-cap-bg);border-bottom:var(--tblr-card-border-width) solid var(--tblr-card-border-color)}.card-header:first-child{border-radius:var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius) 0 0}.card-footer{padding:var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x);color:var(--tblr-card-cap-color);background-color:var(--tblr-card-cap-bg);border-top:var(--tblr-card-border-width) solid var(--tblr-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius)}.card-header-tabs{margin-left:calc(-.5 * var(--tblr-card-cap-padding-x));margin-bottom:calc(-1 * var(--tblr-card-cap-padding-y));margin-right:calc(-.5 * var(--tblr-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--tblr-card-bg);border-bottom-color:var(--tblr-card-bg)}.card-header-pills{margin-left:calc(-.5 * var(--tblr-card-cap-padding-x));margin-right:calc(-.5 * var(--tblr-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;left:0;bottom:0;right:0;padding:var(--tblr-card-img-overlay-padding);border-radius:var(--tblr-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-right-radius:var(--tblr-card-inner-border-radius);border-top-left-radius:var(--tblr-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-left-radius:var(--tblr-card-inner-border-radius);border-bottom-right-radius:var(--tblr-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--tblr-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-right:0;border-right:0}.card-group>.card:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:not(:first-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-right-radius:0}}.accordion{--tblr-accordion-color:#fafbfc;--tblr-accordion-bg:transparent;--tblr-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--tblr-accordion-border-color:rgba(98, 105, 118, 0.16);--tblr-accordion-border-width:1px;--tblr-accordion-border-radius:4px;--tblr-accordion-inner-border-radius:3px;--tblr-accordion-btn-padding-x:1.25rem;--tblr-accordion-btn-padding-y:1rem;--tblr-accordion-btn-color:var(--tblr-body-color);--tblr-accordion-btn-bg:transparent;--tblr-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--tblr-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--tblr-accordion-btn-icon-width:1rem;--tblr-accordion-btn-icon-transform:rotate(-180deg);--tblr-accordion-btn-icon-transition:transform 0.2s ease-in-out;--tblr-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='inherit'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--tblr-accordion-btn-focus-border-color:rgba(98, 105, 118, 0.16);--tblr-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(32, 107, 196, 0.25);--tblr-accordion-body-padding-x:1.25rem;--tblr-accordion-body-padding-y:1rem;--tblr-accordion-active-color:inherit;--tblr-accordion-active-bg:transparent}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--tblr-accordion-btn-padding-y) var(--tblr-accordion-btn-padding-x);font-size:.875rem;color:var(--tblr-accordion-btn-color);text-align:right;background-color:var(--tblr-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--tblr-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--tblr-accordion-active-color);background-color:var(--tblr-accordion-active-bg);box-shadow:inset 0 calc(var(--tblr-accordion-border-width) * -1) 0 var(--tblr-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--tblr-accordion-btn-active-icon);transform:var(--tblr-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--tblr-accordion-btn-icon-width);height:var(--tblr-accordion-btn-icon-width);margin-right:auto;content:"";background-image:var(--tblr-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--tblr-accordion-btn-icon-width);transition:var(--tblr-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--tblr-accordion-btn-focus-border-color);outline:0;box-shadow:var(--tblr-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--tblr-accordion-color);background-color:var(--tblr-accordion-bg);border:var(--tblr-accordion-border-width) solid var(--tblr-accordion-border-color)}.accordion-item:first-of-type{border-top-right-radius:var(--tblr-accordion-border-radius);border-top-left-radius:var(--tblr-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-right-radius:var(--tblr-accordion-inner-border-radius);border-top-left-radius:var(--tblr-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-left-radius:var(--tblr-accordion-border-radius);border-bottom-right-radius:var(--tblr-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-left-radius:var(--tblr-accordion-inner-border-radius);border-bottom-right-radius:var(--tblr-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-left-radius:var(--tblr-accordion-border-radius);border-bottom-right-radius:var(--tblr-accordion-border-radius)}.accordion-body{padding:var(--tblr-accordion-body-padding-y) var(--tblr-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-left:0;border-right:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{--tblr-breadcrumb-padding-x:0;--tblr-breadcrumb-padding-y:0;--tblr-breadcrumb-margin-bottom:1rem;--tblr-breadcrumb-divider-color:#626976;--tblr-breadcrumb-item-padding-x:0.5rem;--tblr-breadcrumb-item-active-color:inherit;display:flex;flex-wrap:wrap;padding:var(--tblr-breadcrumb-padding-y) var(--tblr-breadcrumb-padding-x);margin-bottom:var(--tblr-breadcrumb-margin-bottom);font-size:var(--tblr-breadcrumb-font-size);list-style:none;background-color:var(--tblr-breadcrumb-bg);border-radius:var(--tblr-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-right:var(--tblr-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:right;padding-left:var(--tblr-breadcrumb-item-padding-x);color:var(--tblr-breadcrumb-divider-color);content:var(--tblr-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--tblr-breadcrumb-item-active-color)}.pagination{--tblr-pagination-padding-x:0.25rem;--tblr-pagination-padding-y:0.25rem;--tblr-pagination-font-size:0.875rem;--tblr-pagination-color:#626976;--tblr-pagination-bg:transparent;--tblr-pagination-border-width:0;--tblr-pagination-border-color:#cbd5e1;--tblr-pagination-border-radius:4px;--tblr-pagination-hover-color:var(--tblr-link-hover-color);--tblr-pagination-hover-bg:#e2e8f0;--tblr-pagination-hover-border-color:#cbd5e1;--tblr-pagination-focus-color:var(--tblr-link-hover-color);--tblr-pagination-focus-bg:#e2e8f0;--tblr-pagination-focus-box-shadow:0 0 0 0.25rem rgba(32, 107, 196, 0.25);--tblr-pagination-active-color:#ffffff;--tblr-pagination-active-bg:#206bc4;--tblr-pagination-active-border-color:#206bc4;--tblr-pagination-disabled-color:rgba(98, 105, 118, 0.5);--tblr-pagination-disabled-bg:transparent;--tblr-pagination-disabled-border-color:#cbd5e1;display:flex;padding-right:0;list-style:none}.page-link{position:relative;display:block;padding:var(--tblr-pagination-padding-y) var(--tblr-pagination-padding-x);font-size:var(--tblr-pagination-font-size);color:var(--tblr-pagination-color);background-color:var(--tblr-pagination-bg);border:var(--tblr-pagination-border-width) solid var(--tblr-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--tblr-pagination-hover-color);text-decoration:none;background-color:var(--tblr-pagination-hover-bg);border-color:var(--tblr-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--tblr-pagination-focus-color);background-color:var(--tblr-pagination-focus-bg);outline:0;box-shadow:var(--tblr-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--tblr-pagination-active-color);background-color:var(--tblr-pagination-active-bg);border-color:var(--tblr-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--tblr-pagination-disabled-color);pointer-events:none;background-color:var(--tblr-pagination-disabled-bg);border-color:var(--tblr-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-right:0}.page-item:first-child .page-link{border-top-right-radius:var(--tblr-pagination-border-radius);border-bottom-right-radius:var(--tblr-pagination-border-radius)}.page-item:last-child .page-link{border-top-left-radius:var(--tblr-pagination-border-radius);border-bottom-left-radius:var(--tblr-pagination-border-radius)}.pagination-lg{--tblr-pagination-padding-x:1.5rem;--tblr-pagination-padding-y:0.75rem;--tblr-pagination-font-size:1.09375rem;--tblr-pagination-border-radius:8px}.pagination-sm{--tblr-pagination-padding-x:0.5rem;--tblr-pagination-padding-y:0.25rem;--tblr-pagination-font-size:0.765625rem;--tblr-pagination-border-radius:2px}.badge{--tblr-badge-padding-x:0.5em;--tblr-badge-padding-y:0.25em;--tblr-badge-font-size:85.71428571%;--tblr-badge-font-weight:500;--tblr-badge-color:#ffffff;--tblr-badge-border-radius:4px;display:inline-block;padding:var(--tblr-badge-padding-y) var(--tblr-badge-padding-x);font-size:var(--tblr-badge-font-size);font-weight:var(--tblr-badge-font-weight);line-height:1;color:var(--tblr-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--tblr-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--tblr-alert-bg:transparent;--tblr-alert-padding-x:1rem;--tblr-alert-padding-y:1rem;--tblr-alert-margin-bottom:1rem;--tblr-alert-color:inherit;--tblr-alert-border-color:transparent;--tblr-alert-border:1px solid var(--tblr-alert-border-color);--tblr-alert-border-radius:4px;position:relative;padding:var(--tblr-alert-padding-y) var(--tblr-alert-padding-x);margin-bottom:var(--tblr-alert-margin-bottom);color:var(--tblr-alert-color);background-color:var(--tblr-alert-bg);border:var(--tblr-alert-border);border-radius:var(--tblr-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:600}.alert-dismissible{padding-left:3rem}.alert-dismissible .btn-close{position:absolute;top:0;left:0;z-index:2;padding:1.25rem 1rem}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:.5rem}}@keyframes progress-bar-stripes{0%{background-position-x:.5rem}}.progress{--tblr-progress-height:0.5rem;--tblr-progress-font-size:0.65625rem;--tblr-progress-bg:#e6e7e9;--tblr-progress-border-radius:4px;--tblr-progress-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.075);--tblr-progress-bar-color:#ffffff;--tblr-progress-bar-bg:#206bc4;--tblr-progress-bar-transition:width 0.6s ease;display:flex;height:var(--tblr-progress-height);overflow:hidden;font-size:var(--tblr-progress-font-size);background-color:var(--tblr-progress-bg);border-radius:var(--tblr-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--tblr-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--tblr-progress-bar-bg);transition:var(--tblr-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--tblr-progress-height) var(--tblr-progress-height)}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{--tblr-list-group-color:#0f172a;--tblr-list-group-bg:inherit;--tblr-list-group-border-color:#e6e7e9;--tblr-list-group-border-width:1px;--tblr-list-group-border-radius:4px;--tblr-list-group-item-padding-x:1.25rem;--tblr-list-group-item-padding-y:1rem;--tblr-list-group-action-color:inherit;--tblr-list-group-action-hover-color:inherit;--tblr-list-group-action-hover-bg:rgba(98, 105, 118, 0.04);--tblr-list-group-action-active-color:#1e293b;--tblr-list-group-action-active-bg:#e2e8f0;--tblr-list-group-disabled-color:#475569;--tblr-list-group-disabled-bg:inherit;--tblr-list-group-active-color:inherit;--tblr-list-group-active-bg:rgba(32, 107, 196, 0.04);--tblr-list-group-active-border-color:#e6e7e9;display:flex;flex-direction:column;padding-right:0;margin-bottom:0;border-radius:var(--tblr-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--tblr-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--tblr-list-group-action-hover-color);text-decoration:none;background-color:var(--tblr-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--tblr-list-group-action-active-color);background-color:var(--tblr-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--tblr-list-group-item-padding-y) var(--tblr-list-group-item-padding-x);color:var(--tblr-list-group-color);background-color:var(--tblr-list-group-bg);border:var(--tblr-list-group-border-width) solid var(--tblr-list-group-border-color)}.list-group-item:first-child{border-top-right-radius:inherit;border-top-left-radius:inherit}.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--tblr-list-group-disabled-color);pointer-events:none;background-color:var(--tblr-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--tblr-list-group-active-color);background-color:var(--tblr-list-group-active-bg);border-color:var(--tblr-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(var(--tblr-list-group-border-width) * -1);border-top-width:var(--tblr-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-right-radius:var(--tblr-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-left-radius:var(--tblr-list-group-border-radius);border-bottom-right-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-right-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-right:calc(var(--tblr-list-group-border-width) * -1);border-right-width:var(--tblr-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-right-radius:var(--tblr-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-left-radius:var(--tblr-list-group-border-radius);border-bottom-right-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-right-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-right:calc(var(--tblr-list-group-border-width) * -1);border-right-width:var(--tblr-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-right-radius:var(--tblr-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-left-radius:var(--tblr-list-group-border-radius);border-bottom-right-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-right-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-right:calc(var(--tblr-list-group-border-width) * -1);border-right-width:var(--tblr-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-right-radius:var(--tblr-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-left-radius:var(--tblr-list-group-border-radius);border-bottom-right-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-right-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-right:calc(var(--tblr-list-group-border-width) * -1);border-right-width:var(--tblr-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-right-radius:var(--tblr-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-left-radius:var(--tblr-list-group-border-radius);border-bottom-right-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-right-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-right:calc(var(--tblr-list-group-border-width) * -1);border-right-width:var(--tblr-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-right-radius:var(--tblr-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-left-radius:var(--tblr-list-group-border-radius);border-bottom-right-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-right-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-right:calc(var(--tblr-list-group-border-width) * -1);border-right-width:var(--tblr-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--tblr-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#134076;background-color:#d2e1f3}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#134076;background-color:#bdcbdb}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#134076;border-color:#134076}.list-group-item-secondary{color:#3b3f47;background-color:#e0e1e4}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#3b3f47;background-color:#cacbcd}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#3b3f47;border-color:#3b3f47}.list-group-item-success{color:#1c6b29;background-color:#d5f0da}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#1c6b29;background-color:#c0d8c4}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1c6b29;border-color:#1c6b29}.list-group-item-info{color:#285c87;background-color:#d9ebf9}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#285c87;background-color:#c3d4e0}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#285c87;border-color:#285c87}.list-group-item-warning{color:#943e04;background-color:#fde1cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#943e04;background-color:#e4cbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#943e04;border-color:#943e04}.list-group-item-danger{color:#802222;background-color:#f7d7d7}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#802222;background-color:#dec2c2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#802222;border-color:#802222}.list-group-item-light{color:#969797;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#969797;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#969797;border-color:#969797}.list-group-item-dark{color:#121923;background-color:#d2d4d8}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#121923;background-color:#bdbfc2}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#121923;border-color:#121923}.list-group-item-muted{color:#3b3f47;background-color:#e0e1e4}.list-group-item-muted.list-group-item-action:focus,.list-group-item-muted.list-group-item-action:hover{color:#3b3f47;background-color:#cacbcd}.list-group-item-muted.list-group-item-action.active{color:#fff;background-color:#3b3f47;border-color:#3b3f47}.list-group-item-blue{color:#134076;background-color:#d2e1f3}.list-group-item-blue.list-group-item-action:focus,.list-group-item-blue.list-group-item-action:hover{color:#134076;background-color:#bdcbdb}.list-group-item-blue.list-group-item-action.active{color:#fff;background-color:#134076;border-color:#134076}.list-group-item-azure{color:#285c87;background-color:#d9ebf9}.list-group-item-azure.list-group-item-action:focus,.list-group-item-azure.list-group-item-action:hover{color:#285c87;background-color:#c3d4e0}.list-group-item-azure.list-group-item-action.active{color:#fff;background-color:#285c87;border-color:#285c87}.list-group-item-indigo{color:#283b8d;background-color:#d9e0fb}.list-group-item-indigo.list-group-item-action:focus,.list-group-item-indigo.list-group-item-action:hover{color:#283b8d;background-color:#c3cae2}.list-group-item-indigo.list-group-item-action.active{color:#fff;background-color:#283b8d;border-color:#283b8d}.list-group-item-purple{color:#682579;background-color:#efd8f4}.list-group-item-purple.list-group-item-action:focus,.list-group-item-purple.list-group-item-action:hover{color:#682579;background-color:#d7c2dc}.list-group-item-purple.list-group-item-action.active{color:#fff;background-color:#682579;border-color:#682579}.list-group-item-pink{color:#801f41;background-color:#f7d6e2}.list-group-item-pink.list-group-item-action:focus,.list-group-item-pink.list-group-item-action:hover{color:#801f41;background-color:#dec1cb}.list-group-item-pink.list-group-item-action.active{color:#fff;background-color:#801f41;border-color:#801f41}.list-group-item-red{color:#802222;background-color:#f7d7d7}.list-group-item-red.list-group-item-action:focus,.list-group-item-red.list-group-item-action:hover{color:#802222;background-color:#dec2c2}.list-group-item-red.list-group-item-action.active{color:#fff;background-color:#802222;border-color:#802222}.list-group-item-orange{color:#943e04;background-color:#fde1cd}.list-group-item-orange.list-group-item-action:focus,.list-group-item-orange.list-group-item-action:hover{color:#943e04;background-color:#e4cbb9}.list-group-item-orange.list-group-item-action.active{color:#fff;background-color:#943e04;border-color:#943e04}.list-group-item-yellow{color:#935f00;background-color:#fdeccc}.list-group-item-yellow.list-group-item-action:focus,.list-group-item-yellow.list-group-item-action:hover{color:#935f00;background-color:#e4d4b8}.list-group-item-yellow.list-group-item-action.active{color:#fff;background-color:#935f00;border-color:#935f00}.list-group-item-lime{color:#466e0d;background-color:#e3f1d0}.list-group-item-lime.list-group-item-action:focus,.list-group-item-lime.list-group-item-action:hover{color:#466e0d;background-color:#ccd9bb}.list-group-item-lime.list-group-item-action.active{color:#fff;background-color:#466e0d;border-color:#466e0d}.list-group-item-green{color:#1c6b29;background-color:#d5f0da}.list-group-item-green.list-group-item-action:focus,.list-group-item-green.list-group-item-action:hover{color:#1c6b29;background-color:#c0d8c4}.list-group-item-green.list-group-item-action.active{color:#fff;background-color:#1c6b29;border-color:#1c6b29}.list-group-item-teal{color:#076448;background-color:#ceede4}.list-group-item-teal.list-group-item-action:focus,.list-group-item-teal.list-group-item-action:hover{color:#076448;background-color:#b9d5cd}.list-group-item-teal.list-group-item-action.active{color:#fff;background-color:#076448;border-color:#076448}.list-group-item-cyan{color:#0e616e;background-color:#d1ecf1}.list-group-item-cyan.list-group-item-action:focus,.list-group-item-cyan.list-group-item-action:hover{color:#0e616e;background-color:#bcd4d9}.list-group-item-cyan.list-group-item-action.active{color:#fff;background-color:#0e616e;border-color:#0e616e}.list-group-item-facebook{color:#23355b;background-color:#d8deea}.list-group-item-facebook.list-group-item-action:focus,.list-group-item-facebook.list-group-item-action:hover{color:#23355b;background-color:#c2c8d3}.list-group-item-facebook.list-group-item-action.active{color:#fff;background-color:#23355b;border-color:#23355b}.list-group-item-twitter{color:#116191;background-color:#d2ecfc}.list-group-item-twitter.list-group-item-action:focus,.list-group-item-twitter.list-group-item-action:hover{color:#116191;background-color:#bdd4e3}.list-group-item-twitter.list-group-item-action.active{color:#fff;background-color:#116191;border-color:#116191}.list-group-item-linkedin{color:#063d74;background-color:#cee0f3}.list-group-item-linkedin.list-group-item-action:focus,.list-group-item-linkedin.list-group-item-action:hover{color:#063d74;background-color:#b9cadb}.list-group-item-linkedin.list-group-item-action.active{color:#fff;background-color:#063d74;border-color:#063d74}.list-group-item-google{color:#842f27;background-color:#f8dcd9}.list-group-item-google.list-group-item-action:focus,.list-group-item-google.list-group-item-action:hover{color:#842f27;background-color:#dfc6c3}.list-group-item-google.list-group-item-action.active{color:#fff;background-color:#842f27;border-color:#842f27}.list-group-item-youtube{color:#900;background-color:#fcc}.list-group-item-youtube.list-group-item-action:focus,.list-group-item-youtube.list-group-item-action:hover{color:#900;background-color:#e6b8b8}.list-group-item-youtube.list-group-item-action.active{color:#fff;background-color:#900;border-color:#900}.list-group-item-vimeo{color:#106e8c;background-color:#d1f1fb}.list-group-item-vimeo.list-group-item-action:focus,.list-group-item-vimeo.list-group-item-action:hover{color:#106e8c;background-color:#bcd9e2}.list-group-item-vimeo.list-group-item-action.active{color:#fff;background-color:#106e8c;border-color:#106e8c}.list-group-item-dribbble{color:#8c2e52;background-color:#fbdbe7}.list-group-item-dribbble.list-group-item-action:focus,.list-group-item-dribbble.list-group-item-action:hover{color:#8c2e52;background-color:#e2c5d0}.list-group-item-dribbble.list-group-item-action.active{color:#fff;background-color:#8c2e52;border-color:#8c2e52}.list-group-item-github{color:#0e0e0e;background-color:#d1d1d1}.list-group-item-github.list-group-item-action:focus,.list-group-item-github.list-group-item-action:hover{color:#0e0e0e;background-color:#bcbcbc}.list-group-item-github.list-group-item-action.active{color:#fff;background-color:#0e0e0e;border-color:#0e0e0e}.list-group-item-instagram{color:#892639;background-color:#fad9df}.list-group-item-instagram.list-group-item-action:focus,.list-group-item-instagram.list-group-item-action:hover{color:#892639;background-color:#e1c3c9}.list-group-item-instagram.list-group-item-action.active{color:#fff;background-color:#892639;border-color:#892639}.list-group-item-pinterest{color:#710511;background-color:#f2ced2}.list-group-item-pinterest.list-group-item-action:focus,.list-group-item-pinterest.list-group-item-action:hover{color:#710511;background-color:#dab9bd}.list-group-item-pinterest.list-group-item-action.active{color:#fff;background-color:#710511;border-color:#710511}.list-group-item-vk{color:#3b4f65;background-color:#e0e6ee}.list-group-item-vk.list-group-item-action:focus,.list-group-item-vk.list-group-item-action:hover{color:#3b4f65;background-color:#cacfd6}.list-group-item-vk.list-group-item-action.active{color:#fff;background-color:#3b4f65;border-color:#3b4f65}.list-group-item-rss{color:#996300;background-color:#ffedcc}.list-group-item-rss.list-group-item-action:focus,.list-group-item-rss.list-group-item-action:hover{color:#996300;background-color:#e6d5b8}.list-group-item-rss.list-group-item-action.active{color:#fff;background-color:#996300;border-color:#996300}.list-group-item-flickr{color:#003b84;background-color:#cce0f8}.list-group-item-flickr.list-group-item-action:focus,.list-group-item-flickr.list-group-item-action:hover{color:#003b84;background-color:#b8cadf}.list-group-item-flickr.list-group-item-action.active{color:#fff;background-color:#003b84;border-color:#003b84}.list-group-item-bitbucket{color:#00317a;background-color:#ccdcf5}.list-group-item-bitbucket.list-group-item-action:focus,.list-group-item-bitbucket.list-group-item-action:hover{color:#00317a;background-color:#b8c6dd}.list-group-item-bitbucket.list-group-item-action.active{color:#fff;background-color:#00317a;border-color:#00317a}.list-group-item-tabler{color:#134076;background-color:#d2e1f3}.list-group-item-tabler.list-group-item-action:focus,.list-group-item-tabler.list-group-item-action:hover{color:#134076;background-color:#bdcbdb}.list-group-item-tabler.list-group-item-action.active{color:#fff;background-color:#134076;border-color:#134076}.btn-close{box-sizing:content-box;width:.75rem;height:.75rem;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/.75rem auto no-repeat;border:0;border-radius:4px;opacity:.3}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(32,107,196,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{--tblr-toast-padding-x:0.75rem;--tblr-toast-padding-y:0.5rem;--tblr-toast-spacing:1.5rem;--tblr-toast-max-width:350px;--tblr-toast-font-size:0.875rem;--tblr-toast-bg:rgba(255, 255, 255, 0.85);--tblr-toast-border-width:1px;--tblr-toast-border-color:#e6e7e9;--tblr-toast-border-radius:4px;--tblr-toast-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--tblr-toast-header-color:#626976;--tblr-toast-header-bg:rgba(255, 255, 255, 0.85);--tblr-toast-header-border-color:rgba(0, 0, 0, 0.05);width:var(--tblr-toast-max-width);max-width:100%;font-size:var(--tblr-toast-font-size);color:var(--tblr-toast-color);pointer-events:auto;background-color:var(--tblr-toast-bg);background-clip:padding-box;border:var(--tblr-toast-border-width) solid var(--tblr-toast-border-color);box-shadow:var(--tblr-toast-box-shadow);border-radius:var(--tblr-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{position:absolute;z-index:1090;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--tblr-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--tblr-toast-padding-y) var(--tblr-toast-padding-x);color:var(--tblr-toast-header-color);background-color:var(--tblr-toast-header-bg);background-clip:padding-box;border-bottom:var(--tblr-toast-border-width) solid var(--tblr-toast-header-border-color);border-top-right-radius:calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width));border-top-left-radius:calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width))}.toast-header .btn-close{margin-left:calc(var(--tblr-toast-padding-x) * -.5);margin-right:var(--tblr-toast-padding-x)}.toast-body{padding:var(--tblr-toast-padding-x);word-wrap:break-word}.modal{--tblr-modal-zindex:1055;--tblr-modal-width:540px;--tblr-modal-padding:1.5rem;--tblr-modal-margin:0.5rem;--tblr-modal-bg:#fafbfc;--tblr-modal-border-color:transparent;--tblr-modal-border-width:1px;--tblr-modal-border-radius:4px;--tblr-modal-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--tblr-modal-inner-border-radius:3px;--tblr-modal-header-padding-x:1.5rem;--tblr-modal-header-padding-y:1.5rem;--tblr-modal-header-padding:1.5rem;--tblr-modal-header-border-color:#e6e7e9;--tblr-modal-header-border-width:1px;--tblr-modal-title-line-height:1.4285714286;--tblr-modal-footer-gap:0.75rem;--tblr-modal-footer-border-color:#e6e7e9;--tblr-modal-footer-border-width:0;position:fixed;top:0;right:0;z-index:var(--tblr-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--tblr-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-1rem)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--tblr-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--tblr-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--tblr-modal-color);pointer-events:auto;background-color:var(--tblr-modal-bg);background-clip:padding-box;border:var(--tblr-modal-border-width) solid var(--tblr-modal-border-color);border-radius:var(--tblr-modal-border-radius);outline:0}.modal-backdrop{--tblr-backdrop-zindex:1050;--tblr-backdrop-bg:#1e293b;--tblr-backdrop-opacity:0.24;position:fixed;top:0;right:0;z-index:var(--tblr-backdrop-zindex);width:100vw;height:100vh;background-color:var(--tblr-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--tblr-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--tblr-modal-header-padding);border-bottom:var(--tblr-modal-header-border-width) solid var(--tblr-modal-header-border-color);border-top-right-radius:var(--tblr-modal-inner-border-radius);border-top-left-radius:var(--tblr-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--tblr-modal-header-padding-y) * .5) calc(var(--tblr-modal-header-padding-x) * .5);margin:calc(var(--tblr-modal-header-padding-y) * -.5) auto calc(var(--tblr-modal-header-padding-y) * -.5) calc(var(--tblr-modal-header-padding-x) * -.5)}.modal-title{margin-bottom:0;line-height:var(--tblr-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--tblr-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--tblr-modal-padding) - var(--tblr-modal-footer-gap) * .5);background-color:var(--tblr-modal-footer-bg);border-top:var(--tblr-modal-footer-border-width) solid var(--tblr-modal-footer-border-color);border-bottom-left-radius:var(--tblr-modal-inner-border-radius);border-bottom-right-radius:var(--tblr-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--tblr-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--tblr-modal-margin:1.75rem;--tblr-modal-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--tblr-modal-width);margin-left:auto;margin-right:auto}.modal-sm{--tblr-modal-width:380px}}@media (min-width:992px){.modal-lg,.modal-xl{--tblr-modal-width:720px}}@media (min-width:1200px){.modal-xl{--tblr-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--tblr-tooltip-zindex:1080;--tblr-tooltip-max-width:200px;--tblr-tooltip-padding-x:0.5rem;--tblr-tooltip-padding-y:0.25rem;--tblr-tooltip-font-size:0.765625rem;--tblr-tooltip-color:#ffffff;--tblr-tooltip-bg:#000000;--tblr-tooltip-border-radius:4px;--tblr-tooltip-opacity:0.9;--tblr-tooltip-arrow-width:0.8rem;--tblr-tooltip-arrow-height:0.4rem;z-index:var(--tblr-tooltip-zindex);display:block;padding:var(--tblr-tooltip-arrow-height);margin:var(--tblr-tooltip-margin);font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:right;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--tblr-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--tblr-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--tblr-tooltip-arrow-width);height:var(--tblr-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * .5) 0;border-top-color:var(--tblr-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:var(--tblr-tooltip-arrow-height);height:var(--tblr-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * .5) 0;border-right-color:var(--tblr-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height);border-bottom-color:var(--tblr-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:var(--tblr-tooltip-arrow-height);height:var(--tblr-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--tblr-tooltip-arrow-width) * .5) 0 calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height);border-left-color:var(--tblr-tooltip-bg)}.tooltip-inner{max-width:var(--tblr-tooltip-max-width);padding:var(--tblr-tooltip-padding-y) var(--tblr-tooltip-padding-x);color:var(--tblr-tooltip-color);text-align:center;background-color:var(--tblr-tooltip-bg);border-radius:var(--tblr-tooltip-border-radius)}.popover{--tblr-popover-zindex:1070;--tblr-popover-max-width:276px;--tblr-popover-font-size:0.765625rem;--tblr-popover-bg:#ffffff;--tblr-popover-border-width:1px;--tblr-popover-border-color:#e6e7e9;--tblr-popover-border-radius:8px;--tblr-popover-inner-border-radius:7px;--tblr-popover-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--tblr-popover-header-padding-x:1rem;--tblr-popover-header-padding-y:0.5rem;--tblr-popover-header-font-size:0.875rem;--tblr-popover-header-color:var(--tblr-heading-color);--tblr-popover-header-bg:#f0f0f0;--tblr-popover-body-padding-x:1rem;--tblr-popover-body-padding-y:1rem;--tblr-popover-body-color:#1e293b;--tblr-popover-arrow-width:1rem;--tblr-popover-arrow-height:0.5rem;--tblr-popover-arrow-border:var(--tblr-popover-border-color);z-index:var(--tblr-popover-zindex);display:block;max-width:var(--tblr-popover-max-width);font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:right;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--tblr-popover-font-size);word-wrap:break-word;background-color:var(--tblr-popover-bg);background-clip:padding-box;border:var(--tblr-popover-border-width) solid var(--tblr-popover-border-color);border-radius:var(--tblr-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--tblr-popover-arrow-width);height:var(--tblr-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--tblr-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--tblr-popover-border-width);border-top-color:var(--tblr-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width));width:var(--tblr-popover-arrow-height);height:var(--tblr-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--tblr-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--tblr-popover-border-width);border-right-color:var(--tblr-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--tblr-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--tblr-popover-border-width);border-bottom-color:var(--tblr-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;right:50%;display:block;width:var(--tblr-popover-arrow-width);margin-right:calc(var(--tblr-popover-arrow-width) * -.5);content:"";border-bottom:var(--tblr-popover-border-width) solid var(--tblr-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(var(--tblr-popover-arrow-height) * -1 - var(--tblr-popover-border-width));width:var(--tblr-popover-arrow-height);height:var(--tblr-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--tblr-popover-arrow-width) * .5) 0 calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--tblr-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--tblr-popover-border-width);border-left-color:var(--tblr-popover-bg)}.popover-header{padding:var(--tblr-popover-header-padding-y) var(--tblr-popover-header-padding-x);margin-bottom:0;font-size:var(--tblr-popover-header-font-size);color:var(--tblr-popover-header-color);background-color:var(--tblr-popover-header-bg);border-bottom:var(--tblr-popover-border-width) solid var(--tblr-popover-border-color);border-top-right-radius:var(--tblr-popover-inner-border-radius);border-top-left-radius:var(--tblr-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--tblr-popover-body-padding-y) var(--tblr-popover-body-padding-x);color:var(--tblr-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:right;width:100%;margin-left:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{right:0}.carousel-control-next{left:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:1.5rem;height:1.5rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='15 18 9 12 15 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='9 18 15 12 9 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-indicators{position:absolute;left:0;bottom:0;right:0;z-index:2;display:flex;justify-content:center;padding:0;margin-left:15%;margin-bottom:1rem;margin-right:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-left:3px;margin-right:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;left:15%;bottom:1.25rem;right:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--tblr-spinner-width);height:var(--tblr-spinner-height);vertical-align:var(--tblr-spinner-vertical-align);border-radius:50%;-webkit-animation:var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name);animation:var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name)}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--tblr-spinner-width:1.5rem;--tblr-spinner-height:1.5rem;--tblr-spinner-vertical-align:-0.125em;--tblr-spinner-border-width:2px;--tblr-spinner-animation-speed:0.75s;--tblr-spinner-animation-name:spinner-border;border:var(--tblr-spinner-border-width) solid currentcolor;border-left-color:transparent}.spinner-border-sm{--tblr-spinner-width:1rem;--tblr-spinner-height:1rem;--tblr-spinner-border-width:0.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--tblr-spinner-width:1.5rem;--tblr-spinner-height:1.5rem;--tblr-spinner-vertical-align:-0.125em;--tblr-spinner-animation-speed:0.75s;--tblr-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--tblr-spinner-width:1rem;--tblr-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--tblr-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--tblr-offcanvas-width:400px;--tblr-offcanvas-height:30vh;--tblr-offcanvas-padding-x:1.5rem;--tblr-offcanvas-padding-y:1.5rem;--tblr-offcanvas-bg:#fafbfc;--tblr-offcanvas-border-width:1px;--tblr-offcanvas-border-color:rgba(98, 105, 118, 0.16);--tblr-offcanvas-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075)}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-end{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-top{top:0;left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-bottom{left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:575.98px){.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}}@media (max-width:575.98px){.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-end{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-top{top:0;left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-bottom{left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:767.98px){.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}}@media (max-width:767.98px){.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-end{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-top{top:0;left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-bottom{left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:991.98px){.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}}@media (max-width:991.98px){.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-end{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-top{top:0;left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-bottom{left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1199.98px){.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}}@media (max-width:1199.98px){.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-end{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-top{top:0;left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-bottom{left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}}@media (max-width:1399.98px){.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--tblr-offcanvas-height:auto;--tblr-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-end{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-top{top:0;left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{left:0;right:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;right:0;z-index:1040;width:100vw;height:100vh;background-color:#1e293b}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.24}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--tblr-offcanvas-padding-y) * .5) calc(var(--tblr-offcanvas-padding-x) * .5);margin-top:calc(var(--tblr-offcanvas-padding-y) * -.5);margin-left:calc(var(--tblr-offcanvas-padding-x) * -.5);margin-bottom:calc(var(--tblr-offcanvas-padding-y) * -.5)}.offcanvas-title{margin-bottom:0;line-height:1.4285714286}.offcanvas-body{flex-grow:1;padding:var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.2}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.1}}@keyframes placeholder-glow{50%{opacity:.1}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fafbfc!important;background-color:RGBA(32,107,196,var(--tblr-bg-opacity,1))!important}.text-bg-secondary{color:#fafbfc!important;background-color:RGBA(98,105,118,var(--tblr-bg-opacity,1))!important}.text-bg-success{color:#fafbfc!important;background-color:RGBA(47,179,68,var(--tblr-bg-opacity,1))!important}.text-bg-info{color:#fafbfc!important;background-color:RGBA(66,153,225,var(--tblr-bg-opacity,1))!important}.text-bg-warning{color:#fafbfc!important;background-color:RGBA(247,103,7,var(--tblr-bg-opacity,1))!important}.text-bg-danger{color:#fafbfc!important;background-color:RGBA(214,57,57,var(--tblr-bg-opacity,1))!important}.text-bg-light{color:#1e293b!important;background-color:RGBA(250,251,252,var(--tblr-bg-opacity,1))!important}.text-bg-dark{color:#fafbfc!important;background-color:RGBA(30,41,59,var(--tblr-bg-opacity,1))!important}.text-bg-muted{color:#fafbfc!important;background-color:RGBA(98,105,118,var(--tblr-bg-opacity,1))!important}.text-bg-blue{color:#fafbfc!important;background-color:RGBA(32,107,196,var(--tblr-bg-opacity,1))!important}.text-bg-azure{color:#fafbfc!important;background-color:RGBA(66,153,225,var(--tblr-bg-opacity,1))!important}.text-bg-indigo{color:#fafbfc!important;background-color:RGBA(66,99,235,var(--tblr-bg-opacity,1))!important}.text-bg-purple{color:#fafbfc!important;background-color:RGBA(174,62,201,var(--tblr-bg-opacity,1))!important}.text-bg-pink{color:#fafbfc!important;background-color:RGBA(214,51,108,var(--tblr-bg-opacity,1))!important}.text-bg-red{color:#fafbfc!important;background-color:RGBA(214,57,57,var(--tblr-bg-opacity,1))!important}.text-bg-orange{color:#fafbfc!important;background-color:RGBA(247,103,7,var(--tblr-bg-opacity,1))!important}.text-bg-yellow{color:#fafbfc!important;background-color:RGBA(245,159,0,var(--tblr-bg-opacity,1))!important}.text-bg-lime{color:#fafbfc!important;background-color:RGBA(116,184,22,var(--tblr-bg-opacity,1))!important}.text-bg-green{color:#fafbfc!important;background-color:RGBA(47,179,68,var(--tblr-bg-opacity,1))!important}.text-bg-teal{color:#fafbfc!important;background-color:RGBA(12,166,120,var(--tblr-bg-opacity,1))!important}.text-bg-cyan{color:#fafbfc!important;background-color:RGBA(23,162,184,var(--tblr-bg-opacity,1))!important}.text-bg-facebook{color:#fafbfc!important;background-color:RGBA(59,89,152,var(--tblr-bg-opacity,1))!important}.text-bg-twitter{color:#fafbfc!important;background-color:RGBA(29,161,242,var(--tblr-bg-opacity,1))!important}.text-bg-linkedin{color:#fafbfc!important;background-color:RGBA(10,102,194,var(--tblr-bg-opacity,1))!important}.text-bg-google{color:#fafbfc!important;background-color:RGBA(220,78,65,var(--tblr-bg-opacity,1))!important}.text-bg-youtube{color:#fafbfc!important;background-color:RGBA(255,0,0,var(--tblr-bg-opacity,1))!important}.text-bg-vimeo{color:#fafbfc!important;background-color:RGBA(26,183,234,var(--tblr-bg-opacity,1))!important}.text-bg-dribbble{color:#fafbfc!important;background-color:RGBA(234,76,137,var(--tblr-bg-opacity,1))!important}.text-bg-github{color:#fafbfc!important;background-color:RGBA(24,23,23,var(--tblr-bg-opacity,1))!important}.text-bg-instagram{color:#fafbfc!important;background-color:RGBA(228,64,95,var(--tblr-bg-opacity,1))!important}.text-bg-pinterest{color:#fafbfc!important;background-color:RGBA(189,8,28,var(--tblr-bg-opacity,1))!important}.text-bg-vk{color:#fafbfc!important;background-color:RGBA(99,131,168,var(--tblr-bg-opacity,1))!important}.text-bg-rss{color:#fafbfc!important;background-color:RGBA(255,165,0,var(--tblr-bg-opacity,1))!important}.text-bg-flickr{color:#fafbfc!important;background-color:RGBA(0,99,220,var(--tblr-bg-opacity,1))!important}.text-bg-bitbucket{color:#fafbfc!important;background-color:RGBA(0,82,204,var(--tblr-bg-opacity,1))!important}.text-bg-tabler{color:#fafbfc!important;background-color:RGBA(32,107,196,var(--tblr-bg-opacity,1))!important}.link-primary{color:#206bc4!important}.link-primary:focus,.link-primary:hover{color:#1a569d!important}.link-secondary{color:#626976!important}.link-secondary:focus,.link-secondary:hover{color:#4e545e!important}.link-success{color:#2fb344!important}.link-success:focus,.link-success:hover{color:#268f36!important}.link-info{color:#4299e1!important}.link-info:focus,.link-info:hover{color:#357ab4!important}.link-warning{color:#f76707!important}.link-warning:focus,.link-warning:hover{color:#c65206!important}.link-danger{color:#d63939!important}.link-danger:focus,.link-danger:hover{color:#ab2e2e!important}.link-light{color:#fafbfc!important}.link-light:focus,.link-light:hover{color:#fbfcfd!important}.link-dark{color:#1e293b!important}.link-dark:focus,.link-dark:hover{color:#18212f!important}.link-muted{color:#626976!important}.link-muted:focus,.link-muted:hover{color:#4e545e!important}.link-blue{color:#206bc4!important}.link-blue:focus,.link-blue:hover{color:#1a569d!important}.link-azure{color:#4299e1!important}.link-azure:focus,.link-azure:hover{color:#357ab4!important}.link-indigo{color:#4263eb!important}.link-indigo:focus,.link-indigo:hover{color:#354fbc!important}.link-purple{color:#ae3ec9!important}.link-purple:focus,.link-purple:hover{color:#8b32a1!important}.link-pink{color:#d6336c!important}.link-pink:focus,.link-pink:hover{color:#ab2956!important}.link-red{color:#d63939!important}.link-red:focus,.link-red:hover{color:#ab2e2e!important}.link-orange{color:#f76707!important}.link-orange:focus,.link-orange:hover{color:#c65206!important}.link-yellow{color:#f59f00!important}.link-yellow:focus,.link-yellow:hover{color:#c47f00!important}.link-lime{color:#74b816!important}.link-lime:focus,.link-lime:hover{color:#5d9312!important}.link-green{color:#2fb344!important}.link-green:focus,.link-green:hover{color:#268f36!important}.link-teal{color:#0ca678!important}.link-teal:focus,.link-teal:hover{color:#0a8560!important}.link-cyan{color:#17a2b8!important}.link-cyan:focus,.link-cyan:hover{color:#128293!important}.link-facebook{color:#3b5998!important}.link-facebook:focus,.link-facebook:hover{color:#2f477a!important}.link-twitter{color:#1da1f2!important}.link-twitter:focus,.link-twitter:hover{color:#1781c2!important}.link-linkedin{color:#0a66c2!important}.link-linkedin:focus,.link-linkedin:hover{color:#08529b!important}.link-google{color:#dc4e41!important}.link-google:focus,.link-google:hover{color:#b03e34!important}.link-youtube{color:red!important}.link-youtube:focus,.link-youtube:hover{color:#c00!important}.link-vimeo{color:#1ab7ea!important}.link-vimeo:focus,.link-vimeo:hover{color:#1592bb!important}.link-dribbble{color:#ea4c89!important}.link-dribbble:focus,.link-dribbble:hover{color:#bb3d6e!important}.link-github{color:#181717!important}.link-github:focus,.link-github:hover{color:#131212!important}.link-instagram{color:#e4405f!important}.link-instagram:focus,.link-instagram:hover{color:#b6334c!important}.link-pinterest{color:#bd081c!important}.link-pinterest:focus,.link-pinterest:hover{color:#970616!important}.link-vk{color:#6383a8!important}.link-vk:focus,.link-vk:hover{color:#4f6986!important}.link-rss{color:orange!important}.link-rss:focus,.link-rss:hover{color:#cc8400!important}.link-flickr{color:#0063dc!important}.link-flickr:focus,.link-flickr:hover{color:#004fb0!important}.link-bitbucket{color:#0052cc!important}.link-bitbucket:focus,.link-bitbucket:hover{color:#0042a3!important}.link-tabler{color:#206bc4!important}.link-tabler:focus,.link-tabler:hover{color:#1a569d!important}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--tblr-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;right:0;width:100%;height:100%}.ratio-1x1{--tblr-aspect-ratio:100%}.ratio-4x3{--tblr-aspect-ratio:75%}.ratio-3x4{--tblr-aspect-ratio:133.3333333333%}.ratio-16x9{--tblr-aspect-ratio:56.25%}.ratio-9x16{--tblr-aspect-ratio:177.7777777778%}.ratio-21x9{--tblr-aspect-ratio:42.8571428571%}.ratio-9x21{--tblr-aspect-ratio:233.3333333333%}.fixed-top{position:fixed;top:0;left:0;right:0;z-index:1030}.fixed-bottom{position:fixed;left:0;bottom:0;right:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;left:0;bottom:0;right:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.16}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:right!important}.float-end{float:left!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{right:0!important}.start-50{right:50%!important}.start-100{right:100%!important}.end-0{left:0!important}.end-50{left:50%!important}.end-100{left:100%!important}.translate-middle{transform:translate(50%,-50%)!important}.translate-middle-x{transform:translateX(50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid rgba(98,105,118,.16)!important}.border-wide{border:2px solid rgba(98,105,118,.16)!important}.border-0{border:0!important}.border-top{border-top:1px solid rgba(98,105,118,.16)!important}.border-top-wide{border-top:2px solid rgba(98,105,118,.16)!important}.border-top-0{border-top:0!important}.border-end{border-left:1px solid rgba(98,105,118,.16)!important}.border-end-wide{border-left:2px solid rgba(98,105,118,.16)!important}.border-end-0{border-left:0!important}.border-bottom{border-bottom:1px solid rgba(98,105,118,.16)!important}.border-bottom-wide{border-bottom:2px solid rgba(98,105,118,.16)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-right:1px solid rgba(98,105,118,.16)!important}.border-start-wide{border-right:2px solid rgba(98,105,118,.16)!important}.border-start-0{border-right:0!important}.border-primary{--tblr-border-opacity:1;border-color:rgba(var(--tblr-primary-rgb),var(--tblr-border-opacity))!important}.border-secondary{--tblr-border-opacity:1;border-color:rgba(var(--tblr-secondary-rgb),var(--tblr-border-opacity))!important}.border-success{--tblr-border-opacity:1;border-color:rgba(var(--tblr-success-rgb),var(--tblr-border-opacity))!important}.border-info{--tblr-border-opacity:1;border-color:rgba(var(--tblr-info-rgb),var(--tblr-border-opacity))!important}.border-warning{--tblr-border-opacity:1;border-color:rgba(var(--tblr-warning-rgb),var(--tblr-border-opacity))!important}.border-danger{--tblr-border-opacity:1;border-color:rgba(var(--tblr-danger-rgb),var(--tblr-border-opacity))!important}.border-light{--tblr-border-opacity:1;border-color:rgba(var(--tblr-light-rgb),var(--tblr-border-opacity))!important}.border-dark{--tblr-border-opacity:1;border-color:rgba(var(--tblr-dark-rgb),var(--tblr-border-opacity))!important}.border-muted{--tblr-border-opacity:1;border-color:rgba(var(--tblr-muted-rgb),var(--tblr-border-opacity))!important}.border-blue{--tblr-border-opacity:1;border-color:rgba(var(--tblr-blue-rgb),var(--tblr-border-opacity))!important}.border-azure{--tblr-border-opacity:1;border-color:rgba(var(--tblr-azure-rgb),var(--tblr-border-opacity))!important}.border-indigo{--tblr-border-opacity:1;border-color:rgba(var(--tblr-indigo-rgb),var(--tblr-border-opacity))!important}.border-purple{--tblr-border-opacity:1;border-color:rgba(var(--tblr-purple-rgb),var(--tblr-border-opacity))!important}.border-pink{--tblr-border-opacity:1;border-color:rgba(var(--tblr-pink-rgb),var(--tblr-border-opacity))!important}.border-red{--tblr-border-opacity:1;border-color:rgba(var(--tblr-red-rgb),var(--tblr-border-opacity))!important}.border-orange{--tblr-border-opacity:1;border-color:rgba(var(--tblr-orange-rgb),var(--tblr-border-opacity))!important}.border-yellow{--tblr-border-opacity:1;border-color:rgba(var(--tblr-yellow-rgb),var(--tblr-border-opacity))!important}.border-lime{--tblr-border-opacity:1;border-color:rgba(var(--tblr-lime-rgb),var(--tblr-border-opacity))!important}.border-green{--tblr-border-opacity:1;border-color:rgba(var(--tblr-green-rgb),var(--tblr-border-opacity))!important}.border-teal{--tblr-border-opacity:1;border-color:rgba(var(--tblr-teal-rgb),var(--tblr-border-opacity))!important}.border-cyan{--tblr-border-opacity:1;border-color:rgba(var(--tblr-cyan-rgb),var(--tblr-border-opacity))!important}.border-facebook{--tblr-border-opacity:1;border-color:rgba(var(--tblr-facebook-rgb),var(--tblr-border-opacity))!important}.border-twitter{--tblr-border-opacity:1;border-color:rgba(var(--tblr-twitter-rgb),var(--tblr-border-opacity))!important}.border-linkedin{--tblr-border-opacity:1;border-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-border-opacity))!important}.border-google{--tblr-border-opacity:1;border-color:rgba(var(--tblr-google-rgb),var(--tblr-border-opacity))!important}.border-youtube{--tblr-border-opacity:1;border-color:rgba(var(--tblr-youtube-rgb),var(--tblr-border-opacity))!important}.border-vimeo{--tblr-border-opacity:1;border-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-border-opacity))!important}.border-dribbble{--tblr-border-opacity:1;border-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-border-opacity))!important}.border-github{--tblr-border-opacity:1;border-color:rgba(var(--tblr-github-rgb),var(--tblr-border-opacity))!important}.border-instagram{--tblr-border-opacity:1;border-color:rgba(var(--tblr-instagram-rgb),var(--tblr-border-opacity))!important}.border-pinterest{--tblr-border-opacity:1;border-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-border-opacity))!important}.border-vk{--tblr-border-opacity:1;border-color:rgba(var(--tblr-vk-rgb),var(--tblr-border-opacity))!important}.border-rss{--tblr-border-opacity:1;border-color:rgba(var(--tblr-rss-rgb),var(--tblr-border-opacity))!important}.border-flickr{--tblr-border-opacity:1;border-color:rgba(var(--tblr-flickr-rgb),var(--tblr-border-opacity))!important}.border-bitbucket{--tblr-border-opacity:1;border-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-border-opacity))!important}.border-tabler{--tblr-border-opacity:1;border-color:rgba(var(--tblr-tabler-rgb),var(--tblr-border-opacity))!important}.border-white{--tblr-border-opacity:1;border-color:rgba(var(--tblr-white-rgb),var(--tblr-border-opacity))!important}.border-1{--tblr-border-width:1px}.border-2{--tblr-border-width:2px}.border-3{--tblr-border-width:3px}.border-4{--tblr-border-width:4px}.border-5{--tblr-border-width:5px}.border-opacity-10{--tblr-border-opacity:0.1}.border-opacity-25{--tblr-border-opacity:0.25}.border-opacity-50{--tblr-border-opacity:0.5}.border-opacity-75{--tblr-border-opacity:0.75}.border-opacity-100{--tblr-border-opacity:1}.w-0{width:0!important}.w-1{width:.25rem!important}.w-2{width:.5rem!important}.w-3{width:1rem!important}.w-4{width:2rem!important}.w-5{width:4rem!important}.w-25{width:25%!important}.w-33{width:33.33333%!important}.w-50{width:50%!important}.w-66{width:66.66666%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-0{height:0!important}.h-1{height:.25rem!important}.h-2{height:.5rem!important}.h-3{height:1rem!important}.h-4{height:2rem!important}.h-5{height:4rem!important}.h-25{height:25%!important}.h-33{height:33.33333%!important}.h-50{height:50%!important}.h-66{height:66.66666%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:2rem!important}.m-5{margin:4rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:2rem!important;margin-right:2rem!important}.mx-5{margin-left:4rem!important;margin-right:4rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:2rem!important}.mt-5{margin-top:4rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-left:0!important}.me-1{margin-left:.25rem!important}.me-2{margin-left:.5rem!important}.me-3{margin-left:1rem!important}.me-4{margin-left:2rem!important}.me-5{margin-left:4rem!important}.me-auto{margin-left:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:2rem!important}.mb-5{margin-bottom:4rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-right:0!important}.ms-1{margin-right:.25rem!important}.ms-2{margin-right:.5rem!important}.ms-3{margin-right:1rem!important}.ms-4{margin-right:2rem!important}.ms-5{margin-right:4rem!important}.ms-auto{margin-right:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:2rem!important}.p-5{padding:4rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:2rem!important;padding-right:2rem!important}.px-5{padding-left:4rem!important;padding-right:4rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:2rem!important}.pt-5{padding-top:4rem!important}.pe-0{padding-left:0!important}.pe-1{padding-left:.25rem!important}.pe-2{padding-left:.5rem!important}.pe-3{padding-left:1rem!important}.pe-4{padding-left:2rem!important}.pe-5{padding-left:4rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:2rem!important}.pb-5{padding-bottom:4rem!important}.ps-0{padding-right:0!important}.ps-1{padding-right:.25rem!important}.ps-2{padding-right:.5rem!important}.ps-3{padding-right:1rem!important}.ps-4{padding-right:2rem!important}.ps-5{padding-right:4rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:2rem!important}.gap-5{gap:4rem!important}.font-monospace{font-family:var(--tblr-font-monospace)!important}.fs-1{font-size:1.5rem!important}.fs-2{font-size:1.25rem!important}.fs-3{font-size:1rem!important}.fs-4{font-size:.875rem!important}.fs-5{font-size:.75rem!important}.fs-6{font-size:.625rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:600!important}.fw-semibold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.1428571429!important}.lh-base{line-height:1.4285714286!important}.lh-lg{line-height:1.7142857143!important}.text-start{text-align:right!important}.text-end{text-align:left!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-primary{--tblr-text-opacity:1;color:rgba(var(--tblr-primary-rgb),var(--tblr-text-opacity))!important}.text-secondary{--tblr-text-opacity:1;color:rgba(var(--tblr-secondary-rgb),var(--tblr-text-opacity))!important}.text-success{--tblr-text-opacity:1;color:rgba(var(--tblr-success-rgb),var(--tblr-text-opacity))!important}.text-info{--tblr-text-opacity:1;color:rgba(var(--tblr-info-rgb),var(--tblr-text-opacity))!important}.text-warning{--tblr-text-opacity:1;color:rgba(var(--tblr-warning-rgb),var(--tblr-text-opacity))!important}.text-danger{--tblr-text-opacity:1;color:rgba(var(--tblr-danger-rgb),var(--tblr-text-opacity))!important}.text-light{--tblr-text-opacity:1;color:rgba(var(--tblr-light-rgb),var(--tblr-text-opacity))!important}.text-dark{--tblr-text-opacity:1;color:rgba(var(--tblr-dark-rgb),var(--tblr-text-opacity))!important}.text-muted{--tblr-text-opacity:1;color:#626976!important}.text-blue{--tblr-text-opacity:1;color:rgba(var(--tblr-blue-rgb),var(--tblr-text-opacity))!important}.text-azure{--tblr-text-opacity:1;color:rgba(var(--tblr-azure-rgb),var(--tblr-text-opacity))!important}.text-indigo{--tblr-text-opacity:1;color:rgba(var(--tblr-indigo-rgb),var(--tblr-text-opacity))!important}.text-purple{--tblr-text-opacity:1;color:rgba(var(--tblr-purple-rgb),var(--tblr-text-opacity))!important}.text-pink{--tblr-text-opacity:1;color:rgba(var(--tblr-pink-rgb),var(--tblr-text-opacity))!important}.text-red{--tblr-text-opacity:1;color:rgba(var(--tblr-red-rgb),var(--tblr-text-opacity))!important}.text-orange{--tblr-text-opacity:1;color:rgba(var(--tblr-orange-rgb),var(--tblr-text-opacity))!important}.text-yellow{--tblr-text-opacity:1;color:rgba(var(--tblr-yellow-rgb),var(--tblr-text-opacity))!important}.text-lime{--tblr-text-opacity:1;color:rgba(var(--tblr-lime-rgb),var(--tblr-text-opacity))!important}.text-green{--tblr-text-opacity:1;color:rgba(var(--tblr-green-rgb),var(--tblr-text-opacity))!important}.text-teal{--tblr-text-opacity:1;color:rgba(var(--tblr-teal-rgb),var(--tblr-text-opacity))!important}.text-cyan{--tblr-text-opacity:1;color:rgba(var(--tblr-cyan-rgb),var(--tblr-text-opacity))!important}.text-facebook{--tblr-text-opacity:1;color:rgba(var(--tblr-facebook-rgb),var(--tblr-text-opacity))!important}.text-twitter{--tblr-text-opacity:1;color:rgba(var(--tblr-twitter-rgb),var(--tblr-text-opacity))!important}.text-linkedin{--tblr-text-opacity:1;color:rgba(var(--tblr-linkedin-rgb),var(--tblr-text-opacity))!important}.text-google{--tblr-text-opacity:1;color:rgba(var(--tblr-google-rgb),var(--tblr-text-opacity))!important}.text-youtube{--tblr-text-opacity:1;color:rgba(var(--tblr-youtube-rgb),var(--tblr-text-opacity))!important}.text-vimeo{--tblr-text-opacity:1;color:rgba(var(--tblr-vimeo-rgb),var(--tblr-text-opacity))!important}.text-dribbble{--tblr-text-opacity:1;color:rgba(var(--tblr-dribbble-rgb),var(--tblr-text-opacity))!important}.text-github{--tblr-text-opacity:1;color:rgba(var(--tblr-github-rgb),var(--tblr-text-opacity))!important}.text-instagram{--tblr-text-opacity:1;color:rgba(var(--tblr-instagram-rgb),var(--tblr-text-opacity))!important}.text-pinterest{--tblr-text-opacity:1;color:rgba(var(--tblr-pinterest-rgb),var(--tblr-text-opacity))!important}.text-vk{--tblr-text-opacity:1;color:rgba(var(--tblr-vk-rgb),var(--tblr-text-opacity))!important}.text-rss{--tblr-text-opacity:1;color:rgba(var(--tblr-rss-rgb),var(--tblr-text-opacity))!important}.text-flickr{--tblr-text-opacity:1;color:rgba(var(--tblr-flickr-rgb),var(--tblr-text-opacity))!important}.text-bitbucket{--tblr-text-opacity:1;color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-text-opacity))!important}.text-tabler{--tblr-text-opacity:1;color:rgba(var(--tblr-tabler-rgb),var(--tblr-text-opacity))!important}.text-black{--tblr-text-opacity:1;color:rgba(var(--tblr-black-rgb),var(--tblr-text-opacity))!important}.text-white{--tblr-text-opacity:1;color:rgba(var(--tblr-white-rgb),var(--tblr-text-opacity))!important}.text-body{--tblr-text-opacity:1;color:rgba(var(--tblr-body-color-rgb),var(--tblr-text-opacity))!important}.text-black-50{--tblr-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--tblr-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--tblr-text-opacity:1;color:inherit!important}.text-opacity-25{--tblr-text-opacity:0.25}.text-opacity-50{--tblr-text-opacity:0.5}.text-opacity-75{--tblr-text-opacity:0.75}.text-opacity-100{--tblr-text-opacity:1}.bg-primary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-primary-rgb),var(--tblr-bg-opacity))!important}.bg-secondary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-secondary-rgb),var(--tblr-bg-opacity))!important}.bg-success{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-success-rgb),var(--tblr-bg-opacity))!important}.bg-info{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-info-rgb),var(--tblr-bg-opacity))!important}.bg-warning{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-warning-rgb),var(--tblr-bg-opacity))!important}.bg-danger{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-danger-rgb),var(--tblr-bg-opacity))!important}.bg-light{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-light-rgb),var(--tblr-bg-opacity))!important}.bg-dark{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dark-rgb),var(--tblr-bg-opacity))!important}.bg-muted{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-muted-rgb),var(--tblr-bg-opacity))!important}.bg-blue{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-blue-rgb),var(--tblr-bg-opacity))!important}.bg-azure{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-azure-rgb),var(--tblr-bg-opacity))!important}.bg-indigo{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-indigo-rgb),var(--tblr-bg-opacity))!important}.bg-purple{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-purple-rgb),var(--tblr-bg-opacity))!important}.bg-pink{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-pink-rgb),var(--tblr-bg-opacity))!important}.bg-red{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-red-rgb),var(--tblr-bg-opacity))!important}.bg-orange{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-orange-rgb),var(--tblr-bg-opacity))!important}.bg-yellow{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-yellow-rgb),var(--tblr-bg-opacity))!important}.bg-lime{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-lime-rgb),var(--tblr-bg-opacity))!important}.bg-green{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-green-rgb),var(--tblr-bg-opacity))!important}.bg-teal{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-teal-rgb),var(--tblr-bg-opacity))!important}.bg-cyan{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-cyan-rgb),var(--tblr-bg-opacity))!important}.bg-facebook{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-facebook-rgb),var(--tblr-bg-opacity))!important}.bg-twitter{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-twitter-rgb),var(--tblr-bg-opacity))!important}.bg-linkedin{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-bg-opacity))!important}.bg-google{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-google-rgb),var(--tblr-bg-opacity))!important}.bg-youtube{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-youtube-rgb),var(--tblr-bg-opacity))!important}.bg-vimeo{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-bg-opacity))!important}.bg-dribbble{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-bg-opacity))!important}.bg-github{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-github-rgb),var(--tblr-bg-opacity))!important}.bg-instagram{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-instagram-rgb),var(--tblr-bg-opacity))!important}.bg-pinterest{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-bg-opacity))!important}.bg-vk{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-vk-rgb),var(--tblr-bg-opacity))!important}.bg-rss{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-rss-rgb),var(--tblr-bg-opacity))!important}.bg-flickr{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-flickr-rgb),var(--tblr-bg-opacity))!important}.bg-bitbucket{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-bg-opacity))!important}.bg-tabler{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-tabler-rgb),var(--tblr-bg-opacity))!important}.bg-black{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-black-rgb),var(--tblr-bg-opacity))!important}.bg-white{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-white-rgb),var(--tblr-bg-opacity))!important}.bg-body{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-body-bg-rgb),var(--tblr-bg-opacity))!important}.bg-transparent{--tblr-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--tblr-bg-opacity:0.1}.bg-opacity-25{--tblr-bg-opacity:0.25}.bg-opacity-50{--tblr-bg-opacity:0.5}.bg-opacity-75{--tblr-bg-opacity:0.75}.bg-opacity-100{--tblr-bg-opacity:1}.bg-gradient{background-image:var(--tblr-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--tblr-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--tblr-border-radius-sm)!important}.rounded-2{border-radius:var(--tblr-border-radius)!important}.rounded-3{border-radius:var(--tblr-border-radius-lg)!important}.rounded-4{border-radius:var(--tblr-border-radius-xl)!important}.rounded-5{border-radius:var(--tblr-border-radius-2xl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--tblr-border-radius-pill)!important}.rounded-top{border-top-right-radius:var(--tblr-border-radius)!important;border-top-left-radius:var(--tblr-border-radius)!important}.rounded-end{border-top-left-radius:var(--tblr-border-radius)!important;border-bottom-left-radius:var(--tblr-border-radius)!important}.rounded-bottom{border-bottom-left-radius:var(--tblr-border-radius)!important;border-bottom-right-radius:var(--tblr-border-radius)!important}.rounded-start{border-bottom-right-radius:var(--tblr-border-radius)!important;border-top-right-radius:var(--tblr-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.object-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-scale-down{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-none{-o-object-fit:none!important;object-fit:none!important}.tracking-tight{letter-spacing:-.05em!important}.tracking-normal{letter-spacing:0!important}.tracking-wide{letter-spacing:.05em!important}.cursor-auto{cursor:auto!important}.cursor-pointer{cursor:pointer!important}.cursor-move{cursor:move!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-zoom-in{cursor:zoom-in!important}.cursor-zoom-out{cursor:zoom-out!important}.cursor-default{cursor:default!important}.cursor-none{cursor:none!important}.cursor-help{cursor:help!important}.cursor-progress{cursor:progress!important}.cursor-wait{cursor:wait!important}.cursor-text{cursor:text!important}.cursor-v-text{cursor:vertical-text!important}.cursor-grab{cursor:-webkit-grab!important;cursor:grab!important}.cursor-grabbing{cursor:-webkit-grabbing!important;cursor:grabbing!important}.border-x{border-right:1px solid rgba(98,105,118,.16)!important;border-left:1px solid rgba(98,105,118,.16)!important}.border-x-wide{border-right:2px solid rgba(98,105,118,.16)!important;border-left:2px solid rgba(98,105,118,.16)!important}.border-x-0{border-right:0!important;border-left:0!important}.border-y{border-top:1px solid rgba(98,105,118,.16)!important;border-bottom:1px solid rgba(98,105,118,.16)!important}.border-y-wide{border-top:2px solid rgba(98,105,118,.16)!important;border-bottom:2px solid rgba(98,105,118,.16)!important}.border-y-0{border-top:0!important;border-bottom:0!important}.columns-2{-moz-columns:2!important;columns:2!important}.columns-3{-moz-columns:3!important;columns:3!important}.columns-4{-moz-columns:4!important;columns:4!important}@media (min-width:576px){.float-sm-start{float:right!important}.float-sm-end{float:left!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:2rem!important}.m-sm-5{margin:4rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:2rem!important;margin-right:2rem!important}.mx-sm-5{margin-left:4rem!important;margin-right:4rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-sm-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:2rem!important}.mt-sm-5{margin-top:4rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-left:0!important}.me-sm-1{margin-left:.25rem!important}.me-sm-2{margin-left:.5rem!important}.me-sm-3{margin-left:1rem!important}.me-sm-4{margin-left:2rem!important}.me-sm-5{margin-left:4rem!important}.me-sm-auto{margin-left:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:2rem!important}.mb-sm-5{margin-bottom:4rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-right:0!important}.ms-sm-1{margin-right:.25rem!important}.ms-sm-2{margin-right:.5rem!important}.ms-sm-3{margin-right:1rem!important}.ms-sm-4{margin-right:2rem!important}.ms-sm-5{margin-right:4rem!important}.ms-sm-auto{margin-right:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:2rem!important}.p-sm-5{padding:4rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:2rem!important;padding-right:2rem!important}.px-sm-5{padding-left:4rem!important;padding-right:4rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-sm-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:2rem!important}.pt-sm-5{padding-top:4rem!important}.pe-sm-0{padding-left:0!important}.pe-sm-1{padding-left:.25rem!important}.pe-sm-2{padding-left:.5rem!important}.pe-sm-3{padding-left:1rem!important}.pe-sm-4{padding-left:2rem!important}.pe-sm-5{padding-left:4rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:2rem!important}.pb-sm-5{padding-bottom:4rem!important}.ps-sm-0{padding-right:0!important}.ps-sm-1{padding-right:.25rem!important}.ps-sm-2{padding-right:.5rem!important}.ps-sm-3{padding-right:1rem!important}.ps-sm-4{padding-right:2rem!important}.ps-sm-5{padding-right:4rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:2rem!important}.gap-sm-5{gap:4rem!important}.text-sm-start{text-align:right!important}.text-sm-end{text-align:left!important}.text-sm-center{text-align:center!important}.columns-sm-2{-moz-columns:2!important;columns:2!important}.columns-sm-3{-moz-columns:3!important;columns:3!important}.columns-sm-4{-moz-columns:4!important;columns:4!important}}@media (min-width:768px){.float-md-start{float:right!important}.float-md-end{float:left!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:2rem!important}.m-md-5{margin:4rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:2rem!important;margin-right:2rem!important}.mx-md-5{margin-left:4rem!important;margin-right:4rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-md-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:2rem!important}.mt-md-5{margin-top:4rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-left:0!important}.me-md-1{margin-left:.25rem!important}.me-md-2{margin-left:.5rem!important}.me-md-3{margin-left:1rem!important}.me-md-4{margin-left:2rem!important}.me-md-5{margin-left:4rem!important}.me-md-auto{margin-left:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:2rem!important}.mb-md-5{margin-bottom:4rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-right:0!important}.ms-md-1{margin-right:.25rem!important}.ms-md-2{margin-right:.5rem!important}.ms-md-3{margin-right:1rem!important}.ms-md-4{margin-right:2rem!important}.ms-md-5{margin-right:4rem!important}.ms-md-auto{margin-right:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:2rem!important}.p-md-5{padding:4rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:2rem!important;padding-right:2rem!important}.px-md-5{padding-left:4rem!important;padding-right:4rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-md-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:2rem!important}.pt-md-5{padding-top:4rem!important}.pe-md-0{padding-left:0!important}.pe-md-1{padding-left:.25rem!important}.pe-md-2{padding-left:.5rem!important}.pe-md-3{padding-left:1rem!important}.pe-md-4{padding-left:2rem!important}.pe-md-5{padding-left:4rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:2rem!important}.pb-md-5{padding-bottom:4rem!important}.ps-md-0{padding-right:0!important}.ps-md-1{padding-right:.25rem!important}.ps-md-2{padding-right:.5rem!important}.ps-md-3{padding-right:1rem!important}.ps-md-4{padding-right:2rem!important}.ps-md-5{padding-right:4rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:2rem!important}.gap-md-5{gap:4rem!important}.text-md-start{text-align:right!important}.text-md-end{text-align:left!important}.text-md-center{text-align:center!important}.columns-md-2{-moz-columns:2!important;columns:2!important}.columns-md-3{-moz-columns:3!important;columns:3!important}.columns-md-4{-moz-columns:4!important;columns:4!important}}@media (min-width:992px){.float-lg-start{float:right!important}.float-lg-end{float:left!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:2rem!important}.m-lg-5{margin:4rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:2rem!important;margin-right:2rem!important}.mx-lg-5{margin-left:4rem!important;margin-right:4rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-lg-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:2rem!important}.mt-lg-5{margin-top:4rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-left:0!important}.me-lg-1{margin-left:.25rem!important}.me-lg-2{margin-left:.5rem!important}.me-lg-3{margin-left:1rem!important}.me-lg-4{margin-left:2rem!important}.me-lg-5{margin-left:4rem!important}.me-lg-auto{margin-left:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:2rem!important}.mb-lg-5{margin-bottom:4rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-right:0!important}.ms-lg-1{margin-right:.25rem!important}.ms-lg-2{margin-right:.5rem!important}.ms-lg-3{margin-right:1rem!important}.ms-lg-4{margin-right:2rem!important}.ms-lg-5{margin-right:4rem!important}.ms-lg-auto{margin-right:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:2rem!important}.p-lg-5{padding:4rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:2rem!important;padding-right:2rem!important}.px-lg-5{padding-left:4rem!important;padding-right:4rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-lg-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:2rem!important}.pt-lg-5{padding-top:4rem!important}.pe-lg-0{padding-left:0!important}.pe-lg-1{padding-left:.25rem!important}.pe-lg-2{padding-left:.5rem!important}.pe-lg-3{padding-left:1rem!important}.pe-lg-4{padding-left:2rem!important}.pe-lg-5{padding-left:4rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:2rem!important}.pb-lg-5{padding-bottom:4rem!important}.ps-lg-0{padding-right:0!important}.ps-lg-1{padding-right:.25rem!important}.ps-lg-2{padding-right:.5rem!important}.ps-lg-3{padding-right:1rem!important}.ps-lg-4{padding-right:2rem!important}.ps-lg-5{padding-right:4rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:2rem!important}.gap-lg-5{gap:4rem!important}.text-lg-start{text-align:right!important}.text-lg-end{text-align:left!important}.text-lg-center{text-align:center!important}.columns-lg-2{-moz-columns:2!important;columns:2!important}.columns-lg-3{-moz-columns:3!important;columns:3!important}.columns-lg-4{-moz-columns:4!important;columns:4!important}}@media (min-width:1200px){.float-xl-start{float:right!important}.float-xl-end{float:left!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:2rem!important}.m-xl-5{margin:4rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:2rem!important;margin-right:2rem!important}.mx-xl-5{margin-left:4rem!important;margin-right:4rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-xl-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:2rem!important}.mt-xl-5{margin-top:4rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-left:0!important}.me-xl-1{margin-left:.25rem!important}.me-xl-2{margin-left:.5rem!important}.me-xl-3{margin-left:1rem!important}.me-xl-4{margin-left:2rem!important}.me-xl-5{margin-left:4rem!important}.me-xl-auto{margin-left:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:2rem!important}.mb-xl-5{margin-bottom:4rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-right:0!important}.ms-xl-1{margin-right:.25rem!important}.ms-xl-2{margin-right:.5rem!important}.ms-xl-3{margin-right:1rem!important}.ms-xl-4{margin-right:2rem!important}.ms-xl-5{margin-right:4rem!important}.ms-xl-auto{margin-right:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:2rem!important}.p-xl-5{padding:4rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:2rem!important;padding-right:2rem!important}.px-xl-5{padding-left:4rem!important;padding-right:4rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-xl-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:2rem!important}.pt-xl-5{padding-top:4rem!important}.pe-xl-0{padding-left:0!important}.pe-xl-1{padding-left:.25rem!important}.pe-xl-2{padding-left:.5rem!important}.pe-xl-3{padding-left:1rem!important}.pe-xl-4{padding-left:2rem!important}.pe-xl-5{padding-left:4rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:2rem!important}.pb-xl-5{padding-bottom:4rem!important}.ps-xl-0{padding-right:0!important}.ps-xl-1{padding-right:.25rem!important}.ps-xl-2{padding-right:.5rem!important}.ps-xl-3{padding-right:1rem!important}.ps-xl-4{padding-right:2rem!important}.ps-xl-5{padding-right:4rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:2rem!important}.gap-xl-5{gap:4rem!important}.text-xl-start{text-align:right!important}.text-xl-end{text-align:left!important}.text-xl-center{text-align:center!important}.columns-xl-2{-moz-columns:2!important;columns:2!important}.columns-xl-3{-moz-columns:3!important;columns:3!important}.columns-xl-4{-moz-columns:4!important;columns:4!important}}@media (min-width:1400px){.float-xxl-start{float:right!important}.float-xxl-end{float:left!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:2rem!important}.m-xxl-5{margin:4rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:2rem!important;margin-right:2rem!important}.mx-xxl-5{margin-left:4rem!important;margin-right:4rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:2rem!important;margin-bottom:2rem!important}.my-xxl-5{margin-top:4rem!important;margin-bottom:4rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:2rem!important}.mt-xxl-5{margin-top:4rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-left:0!important}.me-xxl-1{margin-left:.25rem!important}.me-xxl-2{margin-left:.5rem!important}.me-xxl-3{margin-left:1rem!important}.me-xxl-4{margin-left:2rem!important}.me-xxl-5{margin-left:4rem!important}.me-xxl-auto{margin-left:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:2rem!important}.mb-xxl-5{margin-bottom:4rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-right:0!important}.ms-xxl-1{margin-right:.25rem!important}.ms-xxl-2{margin-right:.5rem!important}.ms-xxl-3{margin-right:1rem!important}.ms-xxl-4{margin-right:2rem!important}.ms-xxl-5{margin-right:4rem!important}.ms-xxl-auto{margin-right:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:2rem!important}.p-xxl-5{padding:4rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:2rem!important;padding-right:2rem!important}.px-xxl-5{padding-left:4rem!important;padding-right:4rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:2rem!important;padding-bottom:2rem!important}.py-xxl-5{padding-top:4rem!important;padding-bottom:4rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:2rem!important}.pt-xxl-5{padding-top:4rem!important}.pe-xxl-0{padding-left:0!important}.pe-xxl-1{padding-left:.25rem!important}.pe-xxl-2{padding-left:.5rem!important}.pe-xxl-3{padding-left:1rem!important}.pe-xxl-4{padding-left:2rem!important}.pe-xxl-5{padding-left:4rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:2rem!important}.pb-xxl-5{padding-bottom:4rem!important}.ps-xxl-0{padding-right:0!important}.ps-xxl-1{padding-right:.25rem!important}.ps-xxl-2{padding-right:.5rem!important}.ps-xxl-3{padding-right:1rem!important}.ps-xxl-4{padding-right:2rem!important}.ps-xxl-5{padding-right:4rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:2rem!important}.gap-xxl-5{gap:4rem!important}.text-xxl-start{text-align:right!important}.text-xxl-end{text-align:left!important}.text-xxl-center{text-align:center!important}.columns-xxl-2{-moz-columns:2!important;columns:2!important}.columns-xxl-3{-moz-columns:3!important;columns:3!important}.columns-xxl-4{-moz-columns:4!important;columns:4!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root{font-size:16px;height:100%;--tblr-primary:#206bc4;--tblr-secondary:#626976;--tblr-success:#2fb344;--tblr-info:#4299e1;--tblr-warning:#f76707;--tblr-danger:#d63939;--tblr-light:#fafbfc;--tblr-dark:#1e293b;--tblr-muted:#626976;--tblr-blue:#206bc4;--tblr-azure:#4299e1;--tblr-indigo:#4263eb;--tblr-purple:#ae3ec9;--tblr-pink:#d6336c;--tblr-red:#d63939;--tblr-orange:#f76707;--tblr-yellow:#f59f00;--tblr-lime:#74b816;--tblr-green:#2fb344;--tblr-teal:#0ca678;--tblr-cyan:#17a2b8;--tblr-facebook:#3b5998;--tblr-twitter:#1da1f2;--tblr-linkedin:#0a66c2;--tblr-google:#dc4e41;--tblr-youtube:#ff0000;--tblr-vimeo:#1ab7ea;--tblr-dribbble:#ea4c89;--tblr-github:#181717;--tblr-instagram:#e4405f;--tblr-pinterest:#bd081c;--tblr-vk:#6383a8;--tblr-rss:#ffa500;--tblr-flickr:#0063dc;--tblr-bitbucket:#0052cc;--tblr-tabler:#206bc4;--tblr-primary-rgb:32,107,196;--tblr-secondary-rgb:98,105,118;--tblr-success-rgb:47,179,68;--tblr-info-rgb:66,153,225;--tblr-warning-rgb:247,103,7;--tblr-danger-rgb:214,57,57;--tblr-light-rgb:250,251,252;--tblr-dark-rgb:30,41,59;--tblr-muted-rgb:98,105,118;--tblr-blue-rgb:32,107,196;--tblr-azure-rgb:66,153,225;--tblr-indigo-rgb:66,99,235;--tblr-purple-rgb:174,62,201;--tblr-pink-rgb:214,51,108;--tblr-red-rgb:214,57,57;--tblr-orange-rgb:247,103,7;--tblr-yellow-rgb:245,159,0;--tblr-lime-rgb:116,184,22;--tblr-green-rgb:47,179,68;--tblr-teal-rgb:12,166,120;--tblr-cyan-rgb:23,162,184;--tblr-facebook-rgb:59,89,152;--tblr-twitter-rgb:29,161,242;--tblr-linkedin-rgb:10,102,194;--tblr-google-rgb:220,78,65;--tblr-youtube-rgb:255,0,0;--tblr-vimeo-rgb:26,183,234;--tblr-dribbble-rgb:234,76,137;--tblr-github-rgb:24,23,23;--tblr-instagram-rgb:228,64,95;--tblr-pinterest-rgb:189,8,28;--tblr-vk-rgb:99,131,168;--tblr-rss-rgb:255,165,0;--tblr-flickr-rgb:0,99,220;--tblr-bitbucket-rgb:0,82,204;--tblr-tabler-rgb:32,107,196;--tblr-card-bg:#ffffff;--tblr-card-bg-rgb:255,255,255;--tblr-border-color:#e6e7e9;--tblr-border-color-rgb:230,231,233;--tblr-border-color-light:#f2f3f4;--tblr-border-color-light-rgb:242,243,244}body{overflow-y:scroll;letter-spacing:0;touch-action:manipulation;text-rendering:optimizeLegibility;font-feature-settings:"liga" 0;position:relative;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media print{body{background:0 0}}::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){::-webkit-scrollbar{-webkit-transition:none;transition:none}}::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}::-webkit-scrollbar-corner{background:0 0}.layout-fluid .container,.layout-fluid [class*=" container-"],.layout-fluid [class^=container-]{max-width:100%}.layout-boxed{--tblr-theme-boxed-border-radius:0;--tblr-theme-boxed-width:1320px}@media (min-width:768px){.layout-boxed{background:#1e293b linear-gradient(to left,rgba(255,255,255,.1),transparent) fixed;padding:1rem;--tblr-theme-boxed-border-radius:4px}}.layout-boxed .page{margin:0 auto;max-width:var(--tblr-theme-boxed-width);border-radius:var(--tblr-theme-boxed-border-radius);color:#1e293b}@media (min-width:768px){.layout-boxed .page{border:1px solid var(--tblr-border-color);background:var(--tblr-body-bg)}}.layout-boxed .page>.navbar:first-child{border-top-right-radius:var(--tblr-theme-boxed-border-radius);border-top-left-radius:var(--tblr-theme-boxed-border-radius)}.navbar{align-items:stretch;min-height:3.5rem;background:0 0;color:#1e293b}.navbar-collapse .navbar{flex-grow:1}.navbar.collapsing{min-height:0}.navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar::-webkit-scrollbar-corner{background:0 0}.navbar .navbar-brand{color:#1e293b}.navbar .navbar-brand:focus,.navbar .navbar-brand:hover{color:#1e293b;opacity:.8}.navbar .navbar-nav .nav-link{color:#1e293b}.navbar .navbar-nav .nav-link:focus,.navbar .navbar-nav .nav-link:hover{color:#1e293b}.navbar .navbar-nav .nav-link.disabled{color:rgba(30,41,59,.3)}.navbar .navbar-nav .active>.nav-link,.navbar .navbar-nav .nav-link.active,.navbar .navbar-nav .nav-link.show,.navbar .navbar-nav .show>.nav-link{color:#1e293b}.navbar .navbar-toggler{color:#1e293b;border-color:transparent}.navbar .navbar-text{color:#1e293b}.navbar .navbar-text a,.navbar .navbar-text a:focus,.navbar .navbar-text a:hover{color:#1e293b}@media not print{.theme-dark .navbar{background:#1e293b;color:rgba(255,255,255,.7)}.theme-dark .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.theme-dark .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.theme-dark .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark .navbar .navbar-brand{color:#fff}.theme-dark .navbar .navbar-brand:focus,.theme-dark .navbar .navbar-brand:hover{color:#fff;opacity:.8}.theme-dark .navbar .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.theme-dark .navbar .navbar-nav .nav-link:focus,.theme-dark .navbar .navbar-nav .nav-link:hover{color:#fff}.theme-dark .navbar .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.theme-dark .navbar .navbar-nav .active>.nav-link,.theme-dark .navbar .navbar-nav .nav-link.active,.theme-dark .navbar .navbar-nav .nav-link.show,.theme-dark .navbar .navbar-nav .show>.nav-link{color:#fff}.theme-dark .navbar .navbar-toggler{color:#fff;border-color:transparent}.theme-dark .navbar .navbar-text{color:rgba(255,255,255,.7)}.theme-dark .navbar .navbar-text a,.theme-dark .navbar .navbar-text a:focus,.theme-dark .navbar .navbar-text a:hover{color:rgba(255,255,255,.7)}.theme-dark .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.theme-dark .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.theme-dark .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark .navbar .input-icon-addon{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.theme-dark .navbar .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark .navbar .form-control::placeholder{color:rgba(250,251,252,.64)}}@media not print{@media (prefers-color-scheme:dark){.theme-dark-auto .navbar{background:#1e293b;color:rgba(255,255,255,.7)}.theme-dark-auto .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}.theme-dark-auto .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark-auto .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark-auto .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark-auto .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark-auto .navbar .navbar-brand{color:#fff}.theme-dark-auto .navbar .navbar-brand:focus,.theme-dark-auto .navbar .navbar-brand:hover{color:#fff;opacity:.8}.theme-dark-auto .navbar .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar .navbar-nav .nav-link:focus,.theme-dark-auto .navbar .navbar-nav .nav-link:hover{color:#fff}.theme-dark-auto .navbar .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.theme-dark-auto .navbar .navbar-nav .active>.nav-link,.theme-dark-auto .navbar .navbar-nav .nav-link.active,.theme-dark-auto .navbar .navbar-nav .nav-link.show,.theme-dark-auto .navbar .navbar-nav .show>.nav-link{color:#fff}.theme-dark-auto .navbar .navbar-toggler{color:#fff;border-color:transparent}.theme-dark-auto .navbar .navbar-text{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar .navbar-text a,.theme-dark-auto .navbar .navbar-text a:focus,.theme-dark-auto .navbar .navbar-text a:hover{color:rgba(255,255,255,.7)}.theme-dark-auto .navbar::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}.theme-dark-auto .navbar::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.theme-dark-auto .navbar::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.theme-dark-auto .navbar:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.theme-dark-auto .navbar::-webkit-scrollbar-corner{background:0 0}.theme-dark-auto .navbar .input-icon-addon{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.theme-dark-auto .navbar .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.theme-dark-auto .navbar .form-control::placeholder{color:rgba(250,251,252,.64)}}}@media (prefers-color-scheme:dark) and (prefers-reduced-motion:reduce){.theme-dark-auto .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}@media (prefers-color-scheme:dark) and (prefers-reduced-motion:reduce){.theme-dark-auto .navbar::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar .dropdown-menu{position:absolute;z-index:1030}.navbar .navbar-nav{min-height:3rem}.navbar .navbar-nav .nav-link{position:relative;min-width:2rem;min-height:2rem;justify-content:center;border-radius:4px}.navbar .navbar-nav .nav-link .badge{position:absolute;top:.375rem;left:.375rem;transform:translate(-50%,-50%)}.navbar-nav{margin:0;padding:0}@media (max-width:575.98px){.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-sm .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:576px){.navbar-expand-sm .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-sm .navbar-dark .nav-item.active .nav-link,.navbar-expand-sm.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-sm .navbar-light .nav-item.active,.navbar-expand-sm.navbar-light .nav-item.active{position:relative}.navbar-expand-sm .navbar-light .nav-item.active:after,.navbar-expand-sm.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-sm .navbar-light.navbar-vertical,.navbar-expand-sm.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-sm .navbar-light.navbar-vertical.navbar-right,.navbar-expand-sm.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-sm.navbar-vertical~.navbar,.navbar-expand-sm.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-sm.navbar-vertical.navbar-right~.navbar,.navbar-expand-sm.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}@media (max-width:767.98px){.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-md .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:768px){.navbar-expand-md .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-md .navbar-dark .nav-item.active .nav-link,.navbar-expand-md.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-md .navbar-light .nav-item.active,.navbar-expand-md.navbar-light .nav-item.active{position:relative}.navbar-expand-md .navbar-light .nav-item.active:after,.navbar-expand-md.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-md .navbar-light.navbar-vertical,.navbar-expand-md.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-md .navbar-light.navbar-vertical.navbar-right,.navbar-expand-md.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-md.navbar-vertical~.navbar,.navbar-expand-md.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-md.navbar-vertical.navbar-right~.navbar,.navbar-expand-md.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}@media (max-width:991.98px){.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-lg .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:992px){.navbar-expand-lg .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-lg .navbar-dark .nav-item.active .nav-link,.navbar-expand-lg.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-lg .navbar-light .nav-item.active,.navbar-expand-lg.navbar-light .nav-item.active{position:relative}.navbar-expand-lg .navbar-light .nav-item.active:after,.navbar-expand-lg.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-lg .navbar-light.navbar-vertical,.navbar-expand-lg.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-lg .navbar-light.navbar-vertical.navbar-right,.navbar-expand-lg.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-lg.navbar-vertical~.navbar,.navbar-expand-lg.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-lg.navbar-vertical.navbar-right~.navbar,.navbar-expand-lg.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}@media (max-width:1199.98px){.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-xl .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:1200px){.navbar-expand-xl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xl .navbar-dark .nav-item.active .nav-link,.navbar-expand-xl.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-xl .navbar-light .nav-item.active,.navbar-expand-xl.navbar-light .nav-item.active{position:relative}.navbar-expand-xl .navbar-light .nav-item.active:after,.navbar-expand-xl.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-xl .navbar-light.navbar-vertical,.navbar-expand-xl.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xl .navbar-light.navbar-vertical.navbar-right,.navbar-expand-xl.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xl.navbar-vertical~.navbar,.navbar-expand-xl.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-xl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xl.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}@media (max-width:1399.98px){.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:1400px){.navbar-expand-xxl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xxl .navbar-dark .nav-item.active .nav-link,.navbar-expand-xxl.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand-xxl .navbar-light .nav-item.active,.navbar-expand-xxl.navbar-light .nav-item.active{position:relative}.navbar-expand-xxl .navbar-light .nav-item.active:after,.navbar-expand-xxl.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand-xxl .navbar-light.navbar-vertical,.navbar-expand-xxl.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xxl .navbar-light.navbar-vertical.navbar-right,.navbar-expand-xxl.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand-xxl.navbar-vertical~.navbar,.navbar-expand-xxl.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand-xxl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xxl.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}}.navbar-expand .navbar-collapse{flex-direction:column}.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}.navbar-expand .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand .navbar-dark .nav-item.active .nav-link,.navbar-expand.navbar-dark .nav-item.active .nav-link{background-color:rgba(0,0,0,.1)}.navbar-expand .navbar-light .nav-item.active,.navbar-expand.navbar-light .nav-item.active{position:relative}.navbar-expand .navbar-light .nav-item.active:after,.navbar-expand.navbar-light .nav-item.active:after{content:"";position:absolute;right:0;left:0;bottom:-.25rem;border:0 solid #206bc4;border-bottom-width:2px}.navbar-expand .navbar-light.navbar-vertical,.navbar-expand.navbar-light.navbar-vertical{box-shadow:inset 1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand .navbar-light.navbar-vertical.navbar-right,.navbar-expand.navbar-light.navbar-vertical.navbar-right{box-shadow:inset -1px 0 0 0 rgba(98,105,118,.16)}.navbar-expand.navbar-vertical~.navbar,.navbar-expand.navbar-vertical~.page-wrapper{margin-right:15rem}.navbar-expand.navbar-vertical.navbar-right~.navbar,.navbar-expand.navbar-vertical.navbar-right~.page-wrapper{margin-right:0;margin-left:15rem}.navbar-brand{display:inline-flex;align-items:center;font-weight:600;margin:0}.navbar-brand-image{height:2rem;width:auto}.navbar-toggler{border:0;width:2rem;height:2rem;position:relative;display:flex;align-items:center;justify-content:center}.navbar-toggler-icon{height:2px;width:1.25em;background:currentColor;border-radius:10px;transition:top .2s .2s,bottom .2s .2s,transform .2s,opacity 0s .2s;position:relative}@media (prefers-reduced-motion:reduce){.navbar-toggler-icon{transition:none}}.navbar-toggler-icon:after,.navbar-toggler-icon:before{content:"";display:block;height:inherit;width:inherit;border-radius:inherit;background:inherit;position:absolute;right:0;transition:inherit}@media (prefers-reduced-motion:reduce){.navbar-toggler-icon:after,.navbar-toggler-icon:before{transition:none}}.navbar-toggler-icon:before{top:-.45em}.navbar-toggler-icon:after{bottom:-.45em}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transform:rotate(-45deg);transition:top .3s,bottom .3s,transform .3s .3s,opacity 0s .3s}@media (prefers-reduced-motion:reduce){.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transition:none}}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:before{top:0;transform:rotate(90deg)}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:after{bottom:0;opacity:0}.navbar-light{box-shadow:inset 0 -1px 0 0 rgba(98,105,118,.16);background-color:#fff}.navbar-dark{background:#1e293b;color:rgba(255,255,255,.7)}.navbar-dark::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar-dark::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar-dark::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar-dark::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar-dark:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar-dark::-webkit-scrollbar-corner{background:0 0}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff;opacity:.8}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.7)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#fff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.3)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:#fff;border-color:transparent}.navbar-dark .navbar-text{color:rgba(255,255,255,.7)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:rgba(255,255,255,.7)}.navbar-dark::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.navbar-dark::-webkit-scrollbar{-webkit-transition:none;transition:none}}.navbar-dark::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.navbar-dark::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.navbar-dark:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.navbar-dark::-webkit-scrollbar-corner{background:0 0}.navbar-dark .input-icon-addon{color:rgba(250,251,252,.64)}.navbar-dark .form-control{border-color:transparent;background-color:rgba(0,0,0,.1)}.navbar-dark .form-control::-webkit-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::-moz-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control:-ms-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::-ms-input-placeholder{color:rgba(250,251,252,.64)}.navbar-dark .form-control::placeholder{color:rgba(250,251,252,.64)}.navbar-nav{align-items:stretch}.navbar-nav .nav-item{display:flex;flex-direction:column;justify-content:center}.navbar-side{margin:0;display:flex;flex-direction:row;align-items:center;justify-content:space-around}@media (min-width:576px){.navbar-vertical.navbar-expand-sm{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:576px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-sm{transition:none}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.navbar-right{right:auto;left:0}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-collapse{align-items:stretch}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-sm .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm~.page{padding-right:15rem}.navbar-vertical.navbar-expand-sm~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:768px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-md{transition:none}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.navbar-right{right:auto;left:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-collapse{align-items:stretch}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-md .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:768px){.navbar-vertical.navbar-expand-md~.page{padding-right:15rem}.navbar-vertical.navbar-expand-md~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:992px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-lg{transition:none}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.navbar-right{right:auto;left:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-collapse{align-items:stretch}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-lg .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg~.page{padding-right:15rem}.navbar-vertical.navbar-expand-lg~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:1200px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-xl{transition:none}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.navbar-right{right:auto;left:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-collapse{align-items:stretch}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl~.page{padding-right:15rem}.navbar-vertical.navbar-expand-xl~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}}@media (min-width:1400px) and (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand-xxl{transition:none}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl.navbar-right{right:auto;left:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-brand{padding:.75rem 0;justify-content:center}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-collapse{align-items:stretch}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xxl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl~.page{padding-right:15rem}.navbar-vertical.navbar-expand-xxl~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl.navbar-right~.page{padding-right:0;padding-left:15rem}}@media (min-width:1400px){.navbar-vertical.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}}.navbar-vertical.navbar-expand{width:15rem;position:fixed;top:0;right:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-x:auto;padding:0}@media (prefers-reduced-motion:reduce){.navbar-vertical.navbar-expand{transition:none}}.navbar-vertical.navbar-expand.navbar-right{right:auto;left:0}.navbar-vertical.navbar-expand .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand~.page{padding-right:15rem}.navbar-vertical.navbar-expand~.page [class^=container]{padding-right:1.5rem;padding-left:1.5rem}.navbar-vertical.navbar-expand.navbar-right~.page{padding-right:0;padding-left:15rem}.navbar-vertical.navbar-expand .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav{margin-right:0;margin-left:0}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem .75rem;justify-content:flex-start}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:0 0;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-right:2.5rem;color:inherit}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-right:4rem}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-right:5.5rem}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-right:auto}.navbar-vertical.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-right-width:3px;left:auto;top:0;bottom:0}.navbar-overlap:after{content:"";height:9rem;position:absolute;top:100%;right:0;left:0;background:inherit;z-index:-1;box-shadow:inherit}.page{display:flex;flex-direction:column;position:relative;min-height:100vh}.page-center{justify-content:center}.page-wrapper{flex:1;display:flex;flex-direction:column}@media print{.page-wrapper{margin:0!important}}.page-wrapper-full .page-body:first-child{margin:0;border-top:0}.page-body{margin-top:1.25rem;margin-bottom:1.25rem}.page-body-card{background:#fff;border-top:1px solid rgba(98,105,118,.16);padding:1.25rem 0;margin-bottom:0;flex:1}.page-body~.page-body-card{margin-top:0}.page-cover{background:no-repeat center/cover;min-height:9rem}@media (min-width:768px){.page-cover{min-height:12rem}}@media (min-width:992px){.page-cover{min-height:15rem}}.page-cover-overlay{position:relative}.page-cover-overlay:after{content:"";position:absolute;top:0;right:0;left:0;bottom:0;background-image:linear-gradient(-180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%)}.page-header{display:flex;flex-wrap:wrap;min-height:2.25rem;flex-direction:column;justify-content:center}.page-wrapper .page-header{margin:1.25rem 0 0}.page-header-border{border-bottom:1px solid rgba(98,105,118,.16);padding-bottom:1.25rem}.page-pretitle{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976}.page-title{margin:0;font-size:1.25rem;line-height:1.4;font-weight:600;color:inherit;display:flex;align-items:center}.page-title svg{width:1.5rem;height:1.5rem;margin-left:.25rem}.page-title-lg{font-size:1.5rem;line-height:1.3333333333}.page-subtitle{margin-top:.25rem;color:#626976}.page-tabs{margin-top:.5rem;position:relative}.page-header-tabs .nav-bordered{border:0}.page-header-tabs+.page-body-card{margin-top:0}.footer{border-top:1px solid #e6e7e9;background-color:#fff;padding:2rem 0;color:#626976;margin-top:auto}.footer-transparent{background-color:transparent;border-top:0}/*! * Tabler (v0.9.0): _dark.scss * Copyright 2018-2021 The Tabler Authors * Copyright 2018-2021 codecalm * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) - */body:not(.theme-dark) .hide-theme-light{display:none!important}@media not print{.theme-dark{--tblr-body-color:#fafbfc;--tblr-body-color-rgb:250,251,252;--tblr-body-bg:#1b2434;--tblr-body-bg-rgb:27,36,52;--tblr-card-bg:#1e293b;--tblr-card-bg-rgb:30,41,59;--tblr-border-color:#2c3c56;--tblr-border-color-light:#253249;--tblr-btn-color:#1e293b;color:#fafbfc;background-color:#1b2434}.theme-dark .page{color:#fafbfc}.theme-dark .hide-theme-dark{display:none!important}.theme-dark .text-body{color:#fafbfc!important}.theme-dark .alert:not(.alert-important),.theme-dark .card,.theme-dark .card-footer,.theme-dark .card-stacked::after,.theme-dark .dropdown-menu,.theme-dark .footer:not(.footer-transparent),.theme-dark .modal-content,.theme-dark .modal-header,.theme-dark .toast,.theme-dark .toast-header{background-color:#1e293b;color:inherit}.theme-dark .card{border-color:transparent}.theme-dark .card-tabs .nav-tabs .nav-link{background-color:#1b2434;color:inherit}.theme-dark pre{background-color:#1b2434;border-color:#2c3c56}.theme-dark .card-tabs .nav-tabs .nav-link.active{background-color:#1e293b;color:inherit}.theme-dark .btn-white,.theme-dark .form-file-button{background-image:none}.theme-dark .form-check-input:not(:checked),.theme-dark .form-control,.theme-dark .form-file-text,.theme-dark .form-imagecheck-figure:before,.theme-dark .form-select,.theme-dark .form-selectgroup-check,.theme-dark .form-selectgroup-label{background-color:#1b2434;color:#fafbfc;border-color:#2c3c56}.theme-dark .form-control-plaintext{color:#fafbfc}.theme-dark .input-group-flat .input-group-text{background-color:#1b2434}.theme-dark .input-group-text{border-color:#2c3c56}.theme-dark .highlight{background-color:#1b2434}.theme-dark .avatar{--tblr-avatar-bg:#212e42}.theme-dark .avatar-list-stacked .avatar{box-shadow:0 0 0 2px #1e293b}.theme-dark .accordion-button,.theme-dark .markdown,.theme-dark .markdown>*{color:inherit}.theme-dark .accordion-button:after,.theme-dark .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}.theme-dark .apexcharts-text{fill:#fafbfc}.theme-dark .apexcharts-gridline{stroke:var(--tblr-border-color)}.theme-dark .apexcharts-legend-text{color:inherit!important}.theme-dark .apexcharts-tooltip{background:#1e293b!important;border:1px solid #2c3c56!important;box-shadow:-2px 2px 6px -4px #1b2434!important}.theme-dark .apexcharts-tooltip .apexcharts-tooltip-title{background:#1e293b!important;border-bottom:1px solid #2c3c56!important}.theme-dark .navbar-brand-autodark{filter:brightness(0) invert(1)}.theme-dark .input-group-text,.theme-dark .markdown>table thead th,.theme-dark .table thead th{background:0 0}.theme-dark .list-group-header{background:#1b2434}.theme-dark .list-group-item{border-color:rgba(98,105,118,.16)}.theme-dark .list-group-item:not(.disabled):not(:disabled){color:#fafbfc}.theme-dark .list-group-item.disabled,.theme-dark .list-group-item:disabled{color:#475569}.theme-dark .apexcharts-radialbar-area{stroke:#2c3c56}.theme-dark .form-control.is-invalid,.theme-dark .was-validated .form-control:invalid{border-color:var(--tblr-danger)}.theme-dark .form-control.is-valid,.theme-dark .was-validated .form-control:valid{border-color:var(--tblr-success)}}@media not print{@media (prefers-color-scheme:dark){.theme-dark-auto{--tblr-body-color:#fafbfc;--tblr-body-color-rgb:250,251,252;--tblr-body-bg:#1b2434;--tblr-body-bg-rgb:27,36,52;--tblr-card-bg:#1e293b;--tblr-card-bg-rgb:30,41,59;--tblr-border-color:#2c3c56;--tblr-border-color-light:#253249;--tblr-btn-color:#1e293b;color:#fafbfc;background-color:#1b2434}.theme-dark-auto .page{color:#fafbfc}.theme-dark-auto .hide-theme-dark{display:none!important}.theme-dark-auto .text-body{color:#fafbfc!important}.theme-dark-auto .alert:not(.alert-important),.theme-dark-auto .card,.theme-dark-auto .card-footer,.theme-dark-auto .card-stacked::after,.theme-dark-auto .dropdown-menu,.theme-dark-auto .footer:not(.footer-transparent),.theme-dark-auto .modal-content,.theme-dark-auto .modal-header,.theme-dark-auto .toast,.theme-dark-auto .toast-header{background-color:#1e293b;color:inherit}.theme-dark-auto .card{border-color:transparent}.theme-dark-auto .card-tabs .nav-tabs .nav-link{background-color:#1b2434;color:inherit}.theme-dark-auto pre{background-color:#1b2434;border-color:#2c3c56}.theme-dark-auto .card-tabs .nav-tabs .nav-link.active{background-color:#1e293b;color:inherit}.theme-dark-auto .btn-white,.theme-dark-auto .form-file-button{background-image:none}.theme-dark-auto .form-check-input:not(:checked),.theme-dark-auto .form-control,.theme-dark-auto .form-file-text,.theme-dark-auto .form-imagecheck-figure:before,.theme-dark-auto .form-select,.theme-dark-auto .form-selectgroup-check,.theme-dark-auto .form-selectgroup-label{background-color:#1b2434;color:#fafbfc;border-color:#2c3c56}.theme-dark-auto .form-control-plaintext{color:#fafbfc}.theme-dark-auto .input-group-flat .input-group-text{background-color:#1b2434}.theme-dark-auto .input-group-text{border-color:#2c3c56}.theme-dark-auto .highlight{background-color:#1b2434}.theme-dark-auto .avatar{--tblr-avatar-bg:#212e42}.theme-dark-auto .avatar-list-stacked .avatar{box-shadow:0 0 0 2px #1e293b}.theme-dark-auto .accordion-button,.theme-dark-auto .markdown,.theme-dark-auto .markdown>*{color:inherit}.theme-dark-auto .accordion-button:after,.theme-dark-auto .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}.theme-dark-auto .apexcharts-text{fill:#fafbfc}.theme-dark-auto .apexcharts-gridline{stroke:var(--tblr-border-color)}.theme-dark-auto .apexcharts-legend-text{color:inherit!important}.theme-dark-auto .apexcharts-tooltip{background:#1e293b!important;border:1px solid #2c3c56!important;box-shadow:-2px 2px 6px -4px #1b2434!important}.theme-dark-auto .apexcharts-tooltip .apexcharts-tooltip-title{background:#1e293b!important;border-bottom:1px solid #2c3c56!important}.theme-dark-auto .navbar-brand-autodark{filter:brightness(0) invert(1)}.theme-dark-auto .input-group-text,.theme-dark-auto .markdown>table thead th,.theme-dark-auto .table thead th{background:0 0}.theme-dark-auto .list-group-header{background:#1b2434}.theme-dark-auto .list-group-item{border-color:rgba(98,105,118,.16)}.theme-dark-auto .list-group-item:not(.disabled):not(:disabled){color:#fafbfc}.theme-dark-auto .list-group-item.disabled,.theme-dark-auto .list-group-item:disabled{color:#475569}.theme-dark-auto .apexcharts-radialbar-area{stroke:#2c3c56}.theme-dark-auto .form-control.is-invalid,.theme-dark-auto .was-validated .form-control:invalid{border-color:var(--tblr-danger)}.theme-dark-auto .form-control.is-valid,.theme-dark-auto .was-validated .form-control:valid{border-color:var(--tblr-success)}}}.accordion-button:focus:not(:focus-visible){outline:0;box-shadow:none}.accordion-button:after{opacity:.7}.accordion-button:not(.collapsed){font-weight:600;border-bottom-color:transparent;box-shadow:none}.accordion-button:not(.collapsed):after{opacity:1}.alert{--tblr-alert-color:#626976;background:#fff;border:1px solid rgba(98,105,118,.16);border-right:.25rem solid var(--tblr-alert-color);box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.alert>:last-child{margin-bottom:0}.alert-important{border-color:transparent;background:var(--tblr-alert-color);color:#fff}.alert-important .alert-icon,.alert-important .alert-link{color:inherit}.alert-important .alert-link:hover{color:inherit}.alert-link,.alert-link:hover{color:var(--tblr-alert-color)}.alert-primary{--tblr-alert-color:#206bc4}.alert-secondary{--tblr-alert-color:#626976}.alert-success{--tblr-alert-color:#2fb344}.alert-info{--tblr-alert-color:#4299e1}.alert-warning{--tblr-alert-color:#f76707}.alert-danger{--tblr-alert-color:#d63939}.alert-light{--tblr-alert-color:#fafbfc}.alert-dark{--tblr-alert-color:#1e293b}.alert-muted{--tblr-alert-color:#626976}.alert-icon{color:var(--tblr-alert-color);width:1.5rem!important;height:1.5rem!important;margin:-.125rem 0 -.125rem 1rem}.alert-title{font-size:.875rem;line-height:1.4285714286;font-weight:600;margin-bottom:.25rem;color:var(--tblr-alert-color)}.avatar{--tblr-avatar-size:2.5rem;--tblr-avatar-bg:var(--tblr-border-color-light);position:relative;width:var(--tblr-avatar-size);height:var(--tblr-avatar-size);font-size:calc(var(--tblr-avatar-size)/ 2.8571428572);font-weight:500;display:inline-flex;align-items:center;justify-content:center;color:#626976;text-align:center;text-transform:uppercase;vertical-align:bottom;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--tblr-avatar-bg) no-repeat center/cover;border-radius:4px}.avatar svg{width:calc(var(--tblr-avatar-size)/ 1.6666666667);height:calc(var(--tblr-avatar-size)/ 1.6666666667)}.avatar .badge{position:absolute;left:0;bottom:0;border-radius:100rem;box-shadow:0 0 0 2px #fff}a.avatar{cursor:pointer}.avatar-rounded{border-radius:100rem}.avatar-xs{--tblr-avatar-size:1.5rem}.avatar-xs .badge:empty{width:.375rem;height:.375rem}.avatar-sm{--tblr-avatar-size:2rem}.avatar-sm .badge:empty{width:.5rem;height:.5rem}.avatar-md{--tblr-avatar-size:3.75rem}.avatar-md .badge:empty{width:.9375rem;height:.9375rem}.avatar-lg{--tblr-avatar-size:5rem}.avatar-lg .badge:empty{width:1.25rem;height:1.25rem}.avatar-xl{--tblr-avatar-size:7rem}.avatar-xl .badge:empty{width:1.75rem;height:1.75rem}.avatar-2xl{--tblr-avatar-size:11rem}.avatar-2xl .badge:empty{width:2.75rem;height:2.75rem}.avatar-list{display:inline-flex;padding:0;margin:0 0 -.5rem;flex-wrap:wrap}.avatar-list .avatar{margin-bottom:.5rem}.avatar-list .avatar:not(:last-child){margin-left:.5rem}.avatar-list a.avatar:hover{z-index:1}.avatar-list-stacked .avatar{margin-left:-.5rem!important;box-shadow:0 0 0 2px var(--tblr-card-bg)}.avatar-upload{width:4rem;height:4rem;border:1px dashed #e6e7e9;background:#fff;flex-direction:column;transition:color .3s,background-color .3s}@media (prefers-reduced-motion:reduce){.avatar-upload{transition:none}}.avatar-upload svg{width:1.5rem;height:1.5rem;stroke-width:1}.avatar-upload:hover{border-color:#206bc4;color:#206bc4;text-decoration:none}.avatar-upload-text{font-size:.625rem;line-height:1;margin-top:.25rem}.page-cover~* .page-avatar{margin-top:calc(calc(-1 * calc(var(--tblr-avatar-size) * .5)) - 1.25rem);box-shadow:0 0 0 .25rem #f5f7fb}.badge{justify-content:center;align-items:center;background:#64748b;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;min-width:1.3571428571em;font-weight:600;letter-spacing:.04em;vertical-align:bottom}a.badge{color:#fff}.badge:empty{display:inline-block;width:.5rem;height:.5rem;min-width:0;min-height:auto;padding:0;border-radius:100rem;vertical-align:baseline}.badge .avatar{box-sizing:content-box;width:1.25rem;height:1.25rem;margin:0 -.5rem 0 .5rem}.badge .icon{width:1em;height:1em;font-size:1rem;stroke-width:2}.badge-sm{font-size:.625rem;line-height:1.6;padding:0 .25rem}.badge-outline{background-color:transparent;border:1px solid currentColor}.badge-pill{border-radius:100rem}.breadcrumb{padding:0;margin:0;background:0 0}.breadcrumb a{color:#626976}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-item.active a{color:inherit;pointer-events:none}.breadcrumb-dots{--tblr-breadcrumb-divider:"·"}.breadcrumb-arrows{--tblr-breadcrumb-divider:"›"}.breadcrumb-bullets{--tblr-breadcrumb-divider:"•"}.btn{--tblr-btn-color-text-rgb:var(--tblr-body-color-rgb);display:inline-flex;align-items:center;justify-content:center;border-color:var(--tblr-border-color);white-space:nowrap;background-color:var(--tblr-btn-color,var(--tblr-card-bg));color:var(--tblr-btn-color-text)}.btn:hover{color:var(--tblr-btn-color-text);border-color:rgba(var(--tblr-btn-color-text-rgb),.48)}.btn:focus:not([disabled]):not(.disabled){border-color:var(--tblr-btn-color,#206bc4)}.btn.disabled,.btn:disabled{cursor:not-allowed}.btn .icon{width:1.25rem;height:1.25rem;min-width:1.25rem;margin:0 -.25rem 0 .5rem;vertical-align:bottom;color:inherit}.btn .avatar{width:1.25rem;height:1.25rem;vertical-align:text-top;margin:0 -.25rem 0 .5rem}.btn .icon-right{margin:0 .5rem 0 -.25rem}.btn .badge{top:auto}.btn-azure,.btn-bitbucket,.btn-blue,.btn-cyan,.btn-danger,.btn-dark,.btn-dribbble,.btn-facebook,.btn-flickr,.btn-github,.btn-google,.btn-green,.btn-indigo,.btn-info,.btn-instagram,.btn-light,.btn-lime,.btn-linkedin,.btn-muted,.btn-orange,.btn-pink,.btn-pinterest,.btn-primary,.btn-purple,.btn-red,.btn-rss,.btn-secondary,.btn-success,.btn-tabler,.btn-teal,.btn-twitter,.btn-vimeo,.btn-vk,.btn-warning,.btn-yellow,.btn-youtube{border-color:rgba(98,105,118,.24)}.btn-azure:hover,.btn-bitbucket:hover,.btn-blue:hover,.btn-cyan:hover,.btn-danger:hover,.btn-dark:hover,.btn-dribbble:hover,.btn-facebook:hover,.btn-flickr:hover,.btn-github:hover,.btn-google:hover,.btn-green:hover,.btn-indigo:hover,.btn-info:hover,.btn-instagram:hover,.btn-light:hover,.btn-lime:hover,.btn-linkedin:hover,.btn-muted:hover,.btn-orange:hover,.btn-pink:hover,.btn-pinterest:hover,.btn-primary:hover,.btn-purple:hover,.btn-red:hover,.btn-rss:hover,.btn-secondary:hover,.btn-success:hover,.btn-tabler:hover,.btn-teal:hover,.btn-twitter:hover,.btn-vimeo:hover,.btn-vk:hover,.btn-warning:hover,.btn-yellow:hover,.btn-youtube:hover{color:var(--tblr-btn-color-text);background:var(--tblr-btn-color-interactive);border-color:var(--tblr-btn-color)}.btn-outline-azure,.btn-outline-bitbucket,.btn-outline-blue,.btn-outline-cyan,.btn-outline-danger,.btn-outline-dark,.btn-outline-dribbble,.btn-outline-facebook,.btn-outline-flickr,.btn-outline-github,.btn-outline-google,.btn-outline-green,.btn-outline-indigo,.btn-outline-info,.btn-outline-instagram,.btn-outline-light,.btn-outline-lime,.btn-outline-linkedin,.btn-outline-muted,.btn-outline-orange,.btn-outline-pink,.btn-outline-pinterest,.btn-outline-primary,.btn-outline-purple,.btn-outline-red,.btn-outline-rss,.btn-outline-secondary,.btn-outline-success,.btn-outline-tabler,.btn-outline-teal,.btn-outline-twitter,.btn-outline-vimeo,.btn-outline-vk,.btn-outline-warning,.btn-outline-yellow,.btn-outline-youtube{background-color:transparent;color:var(--tblr-btn-color);border-color:var(--tblr-btn-color)}.btn-outline-azure:hover,.btn-outline-bitbucket:hover,.btn-outline-blue:hover,.btn-outline-cyan:hover,.btn-outline-danger:hover,.btn-outline-dark:hover,.btn-outline-dribbble:hover,.btn-outline-facebook:hover,.btn-outline-flickr:hover,.btn-outline-github:hover,.btn-outline-google:hover,.btn-outline-green:hover,.btn-outline-indigo:hover,.btn-outline-info:hover,.btn-outline-instagram:hover,.btn-outline-light:hover,.btn-outline-lime:hover,.btn-outline-linkedin:hover,.btn-outline-muted:hover,.btn-outline-orange:hover,.btn-outline-pink:hover,.btn-outline-pinterest:hover,.btn-outline-primary:hover,.btn-outline-purple:hover,.btn-outline-red:hover,.btn-outline-rss:hover,.btn-outline-secondary:hover,.btn-outline-success:hover,.btn-outline-tabler:hover,.btn-outline-teal:hover,.btn-outline-twitter:hover,.btn-outline-vimeo:hover,.btn-outline-vk:hover,.btn-outline-warning:hover,.btn-outline-yellow:hover,.btn-outline-youtube:hover{background-color:var(--tblr-btn-color);color:var(--tblr-btn-color-text);border-color:var(--tblr-btn-color)}.btn-ghost-azure,.btn-ghost-bitbucket,.btn-ghost-blue,.btn-ghost-cyan,.btn-ghost-danger,.btn-ghost-dark,.btn-ghost-dribbble,.btn-ghost-facebook,.btn-ghost-flickr,.btn-ghost-github,.btn-ghost-google,.btn-ghost-green,.btn-ghost-indigo,.btn-ghost-info,.btn-ghost-instagram,.btn-ghost-light,.btn-ghost-lime,.btn-ghost-linkedin,.btn-ghost-muted,.btn-ghost-orange,.btn-ghost-pink,.btn-ghost-pinterest,.btn-ghost-primary,.btn-ghost-purple,.btn-ghost-red,.btn-ghost-rss,.btn-ghost-secondary,.btn-ghost-success,.btn-ghost-tabler,.btn-ghost-teal,.btn-ghost-twitter,.btn-ghost-vimeo,.btn-ghost-vk,.btn-ghost-warning,.btn-ghost-yellow,.btn-ghost-youtube{background:0 0;color:var(--tblr-btn-color);border-color:transparent}.btn-ghost-azure:hover,.btn-ghost-bitbucket:hover,.btn-ghost-blue:hover,.btn-ghost-cyan:hover,.btn-ghost-danger:hover,.btn-ghost-dark:hover,.btn-ghost-dribbble:hover,.btn-ghost-facebook:hover,.btn-ghost-flickr:hover,.btn-ghost-github:hover,.btn-ghost-google:hover,.btn-ghost-green:hover,.btn-ghost-indigo:hover,.btn-ghost-info:hover,.btn-ghost-instagram:hover,.btn-ghost-light:hover,.btn-ghost-lime:hover,.btn-ghost-linkedin:hover,.btn-ghost-muted:hover,.btn-ghost-orange:hover,.btn-ghost-pink:hover,.btn-ghost-pinterest:hover,.btn-ghost-primary:hover,.btn-ghost-purple:hover,.btn-ghost-red:hover,.btn-ghost-rss:hover,.btn-ghost-secondary:hover,.btn-ghost-success:hover,.btn-ghost-tabler:hover,.btn-ghost-teal:hover,.btn-ghost-twitter:hover,.btn-ghost-vimeo:hover,.btn-ghost-vk:hover,.btn-ghost-warning:hover,.btn-ghost-yellow:hover,.btn-ghost-youtube:hover{background-color:var(--tblr-btn-color);color:var(--tblr-btn-color-text);border-color:var(--tblr-btn-color)}.btn-link{color:#206bc4;background-color:transparent;border-color:transparent}.btn-link .icon{color:inherit}.btn-link:hover{color:#1a569d;border-color:transparent}.btn-group-lg>.btn svg.icon,.btn-lg svg.icon{stroke-width:2}.btn-pill{padding-left:1.5em;padding-right:1.5em;border-radius:10rem}.btn-pill[class*=btn-icon]{padding:.375rem 15px}.btn-icon{min-width:calc(2.125rem + 2px)}.btn-group-sm>.btn-icon.btn,.btn-icon.btn-sm{min-width:calc(1.3214285715rem + 2px)}.btn-icon .icon{margin:0 -1em}.btn-square{border-radius:0}.btn-list{display:flex;flex-wrap:wrap;margin-bottom:-.5rem!important;margin-left:-.5rem}.btn-list>*{margin:0 0 .5rem .5rem!important}.btn-floating{position:fixed;z-index:1030;bottom:1.5rem;left:1.5rem;border-radius:100rem}.btn-loading{position:relative;color:transparent!important;text-shadow:none!important;pointer-events:none}.btn-loading:after{content:"";display:inline-block;vertical-align:text-bottom;border:1px solid currentColor;border-left-color:transparent;border-radius:100rem;color:#fff;position:absolute;width:1rem;height:1rem;right:calc(50% - .5rem);top:calc(50% - .5rem);-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.btn-ghost-primary,.btn-outline-primary,.btn-primary{--tblr-btn-color:#206bc4;--tblr-btn-color-interactive:#1d60b0;--tblr-btn-color-text:#fafbfc}.btn-ghost-secondary,.btn-outline-secondary,.btn-secondary{--tblr-btn-color:#626976;--tblr-btn-color-interactive:#585f6a;--tblr-btn-color-text:#fafbfc}.btn-ghost-success,.btn-outline-success,.btn-success{--tblr-btn-color:#2fb344;--tblr-btn-color-interactive:#2aa13d;--tblr-btn-color-text:#fafbfc}.btn-ghost-info,.btn-info,.btn-outline-info{--tblr-btn-color:#4299e1;--tblr-btn-color-interactive:#3b8acb;--tblr-btn-color-text:#fafbfc}.btn-ghost-warning,.btn-outline-warning,.btn-warning{--tblr-btn-color:#f76707;--tblr-btn-color-interactive:#de5d06;--tblr-btn-color-text:#fafbfc}.btn-danger,.btn-ghost-danger,.btn-outline-danger{--tblr-btn-color:#d63939;--tblr-btn-color-interactive:#c13333;--tblr-btn-color-text:#fafbfc}.btn-ghost-light,.btn-light,.btn-outline-light{--tblr-btn-color:#fafbfc;--tblr-btn-color-interactive:#e1e2e3;--tblr-btn-color-text:#1e293b}.btn-dark,.btn-ghost-dark,.btn-outline-dark{--tblr-btn-color:#1e293b;--tblr-btn-color-interactive:#1b2535;--tblr-btn-color-text:#fafbfc}.btn-ghost-muted,.btn-muted,.btn-outline-muted{--tblr-btn-color:#626976;--tblr-btn-color-interactive:#585f6a;--tblr-btn-color-text:#fafbfc}.btn-blue,.btn-ghost-blue,.btn-outline-blue{--tblr-btn-color:#206bc4;--tblr-btn-color-interactive:#1d60b0;--tblr-btn-color-text:#fafbfc}.btn-azure,.btn-ghost-azure,.btn-outline-azure{--tblr-btn-color:#4299e1;--tblr-btn-color-interactive:#3b8acb;--tblr-btn-color-text:#fafbfc}.btn-ghost-indigo,.btn-indigo,.btn-outline-indigo{--tblr-btn-color:#4263eb;--tblr-btn-color-interactive:#3b59d4;--tblr-btn-color-text:#fafbfc}.btn-ghost-purple,.btn-outline-purple,.btn-purple{--tblr-btn-color:#ae3ec9;--tblr-btn-color-interactive:#9d38b5;--tblr-btn-color-text:#fafbfc}.btn-ghost-pink,.btn-outline-pink,.btn-pink{--tblr-btn-color:#d6336c;--tblr-btn-color-interactive:#c12e61;--tblr-btn-color-text:#fafbfc}.btn-ghost-red,.btn-outline-red,.btn-red{--tblr-btn-color:#d63939;--tblr-btn-color-interactive:#c13333;--tblr-btn-color-text:#fafbfc}.btn-ghost-orange,.btn-orange,.btn-outline-orange{--tblr-btn-color:#f76707;--tblr-btn-color-interactive:#de5d06;--tblr-btn-color-text:#fafbfc}.btn-ghost-yellow,.btn-outline-yellow,.btn-yellow{--tblr-btn-color:#f59f00;--tblr-btn-color-interactive:#dd8f00;--tblr-btn-color-text:#fafbfc}.btn-ghost-lime,.btn-lime,.btn-outline-lime{--tblr-btn-color:#74b816;--tblr-btn-color-interactive:#68a614;--tblr-btn-color-text:#fafbfc}.btn-ghost-green,.btn-green,.btn-outline-green{--tblr-btn-color:#2fb344;--tblr-btn-color-interactive:#2aa13d;--tblr-btn-color-text:#fafbfc}.btn-ghost-teal,.btn-outline-teal,.btn-teal{--tblr-btn-color:#0ca678;--tblr-btn-color-interactive:#0b956c;--tblr-btn-color-text:#fafbfc}.btn-cyan,.btn-ghost-cyan,.btn-outline-cyan{--tblr-btn-color:#17a2b8;--tblr-btn-color-interactive:#1592a6;--tblr-btn-color-text:#fafbfc}.btn-facebook,.btn-ghost-facebook,.btn-outline-facebook{--tblr-btn-color:#3b5998;--tblr-btn-color-interactive:#355089;--tblr-btn-color-text:#fafbfc}.btn-ghost-twitter,.btn-outline-twitter,.btn-twitter{--tblr-btn-color:#1da1f2;--tblr-btn-color-interactive:#1a91da;--tblr-btn-color-text:#fafbfc}.btn-ghost-linkedin,.btn-linkedin,.btn-outline-linkedin{--tblr-btn-color:#0a66c2;--tblr-btn-color-interactive:#095caf;--tblr-btn-color-text:#fafbfc}.btn-ghost-google,.btn-google,.btn-outline-google{--tblr-btn-color:#dc4e41;--tblr-btn-color-interactive:#c6463b;--tblr-btn-color-text:#fafbfc}.btn-ghost-youtube,.btn-outline-youtube,.btn-youtube{--tblr-btn-color:#ff0000;--tblr-btn-color-interactive:#e60000;--tblr-btn-color-text:#fafbfc}.btn-ghost-vimeo,.btn-outline-vimeo,.btn-vimeo{--tblr-btn-color:#1ab7ea;--tblr-btn-color-interactive:#17a5d3;--tblr-btn-color-text:#fafbfc}.btn-dribbble,.btn-ghost-dribbble,.btn-outline-dribbble{--tblr-btn-color:#ea4c89;--tblr-btn-color-interactive:#d3447b;--tblr-btn-color-text:#fafbfc}.btn-ghost-github,.btn-github,.btn-outline-github{--tblr-btn-color:#181717;--tblr-btn-color-interactive:#161515;--tblr-btn-color-text:#fafbfc}.btn-ghost-instagram,.btn-instagram,.btn-outline-instagram{--tblr-btn-color:#e4405f;--tblr-btn-color-interactive:#cd3a56;--tblr-btn-color-text:#fafbfc}.btn-ghost-pinterest,.btn-outline-pinterest,.btn-pinterest{--tblr-btn-color:#bd081c;--tblr-btn-color-interactive:#aa0719;--tblr-btn-color-text:#fafbfc}.btn-ghost-vk,.btn-outline-vk,.btn-vk{--tblr-btn-color:#6383a8;--tblr-btn-color-interactive:#597697;--tblr-btn-color-text:#fafbfc}.btn-ghost-rss,.btn-outline-rss,.btn-rss{--tblr-btn-color:#ffa500;--tblr-btn-color-interactive:#e69500;--tblr-btn-color-text:#fafbfc}.btn-flickr,.btn-ghost-flickr,.btn-outline-flickr{--tblr-btn-color:#0063dc;--tblr-btn-color-interactive:#0059c6;--tblr-btn-color-text:#fafbfc}.btn-bitbucket,.btn-ghost-bitbucket,.btn-outline-bitbucket{--tblr-btn-color:#0052cc;--tblr-btn-color-interactive:#004ab8;--tblr-btn-color-text:#fafbfc}.btn-ghost-tabler,.btn-outline-tabler,.btn-tabler{--tblr-btn-color:#206bc4;--tblr-btn-color-interactive:#1d60b0;--tblr-btn-color-text:#fafbfc}.btn-action{padding:0;border:0;color:#626976;display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:4px}.btn-action:after{content:none}.btn-action:focus{outline:0;box-shadow:none}.btn-action.show,.btn-action:hover{color:#1e293b;background:#f5f7fb}.btn-action.show{color:#206bc4}.btn-action .icon{margin:0;width:1.25rem;height:1.25rem;font-size:1.25rem;stroke-width:1}.btn-actions{display:flex}.calendar{display:block;font-size:.765625rem;border:1px solid #e6e7e9;border-radius:4px}.calendar-nav{display:flex;align-items:center}.calendar-title{flex:1;text-align:center}.calendar-body,.calendar-header{display:flex;flex-wrap:wrap;justify-content:flex-start;padding:.5rem 0}.calendar-header{color:#626976}.calendar-date{flex:0 0 14.2857142857%;max-width:14.2857142857%;padding:.2rem;text-align:center;border:0}.calendar-date.next-month,.calendar-date.prev-month{opacity:.25}.calendar-date .date-item{position:relative;display:inline-block;width:1.4rem;height:1.4rem;line-height:1.4rem;color:#66758c;text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;background:100% 0;border:1px solid transparent;border-radius:100rem;outline:0;transition:background .3s,border .3s,box-shadow .32s,color .3s}@media (prefers-reduced-motion:reduce){.calendar-date .date-item{transition:none}}.calendar-date .date-item:hover{color:#206bc4;text-decoration:none;background:#fefeff;border-color:#e6e7e9}.calendar-date .date-today{color:#206bc4;border-color:#e6e7e9}.calendar-range{position:relative}.calendar-range:before{position:absolute;top:50%;left:0;right:0;height:1.4rem;content:"";background:rgba(32,107,196,.1);transform:translateY(-50%)}.calendar-range.range-end .date-item,.calendar-range.range-start .date-item{color:#fff;background:#206bc4;border-color:#206bc4}.calendar-range.range-start:before{right:50%}.calendar-range.range-end:before{left:50%}.carousel-indicators-vertical{right:auto;top:0;margin:0 0 0 1rem;flex-direction:column}.carousel-indicators-vertical [data-bs-target]{margin:3px 0 3px;width:3px;height:30px;border:0;border-right:10px solid transparent;border-left:10px solid transparent}.carousel-indicators-dot [data-bs-target]{width:.5rem;height:.5rem;border-radius:100rem;border:10px solid transparent;margin:0}.carousel-indicators-thumb [data-bs-target]{width:2rem;height:auto;background:no-repeat center/cover;border:0;border-radius:4px;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0;margin:0 3px;opacity:.75}@media (min-width:992px){.carousel-indicators-thumb [data-bs-target]{width:4rem}}.carousel-indicators-thumb [data-bs-target]:before{content:"";padding-top:var(--tblr-aspect-ratio,100%);display:block}.carousel-indicators-thumb.carousel-indicators-vertical [data-bs-target]{margin:3px 0}.carousel-caption-background{background:red;position:absolute;right:0;left:0;bottom:0;height:90%;background:linear-gradient(0deg,rgba(30,41,59,.9),rgba(30,41,59,0))}.card{--tblr-card-border-radius:4px;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0;border:1px solid rgba(98,105,118,.16);background:var(--tblr-card-bg,#fff);border-radius:var(--tblr-card-border-radius);transition:transform .3s ease-out,opacity .3s ease-out,box-shadow .3s ease-out}@media (prefers-reduced-motion:reduce){.card{transition:none}}@media print{.card{border:none;box-shadow:none}}a.card{color:inherit}a.card:hover{text-decoration:none;box-shadow:rgba(30,41,59,.16) 0 2px 16px 0}.card .card{box-shadow:none}.card-borderless,.card-borderless .card-footer,.card-borderless .card-header{border-color:transparent}.card-stamp{--stamp-size:7rem;position:absolute;top:0;left:0;width:calc(var(--stamp-size) * 1);height:calc(var(--stamp-size) * 1);max-height:100%;border-top-left-radius:4px;opacity:.2;overflow:hidden;pointer-events:none}.card-stamp-lg{--stamp-size:13rem}.card-stamp-icon{background:#626976;color:#fff;display:flex;align-items:center;justify-content:center;border-radius:100rem;width:calc(var(--stamp-size) * 1);height:calc(var(--stamp-size) * 1);position:relative;top:calc(var(--stamp-size) * -.25);left:calc(var(--stamp-size) * -.25);font-size:calc(var(--stamp-size) * .75);transform:rotate(-10deg)}.card-stamp-icon .icon{stroke-width:2;width:calc(var(--stamp-size) * .75);height:calc(var(--stamp-size) * .75)}.card-img,.card-img-start{border-top-right-radius:3px;border-bottom-right-radius:3px}.card-img,.card-img-end{border-top-left-radius:3px;border-bottom-left-radius:3px}.card-img-overlay{display:flex;flex-direction:column;justify-content:flex-end}.card-img-overlay-dark{background-image:linear-gradient(-180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%)}.card-inactive{pointer-events:none;box-shadow:none}.card-inactive .card-body{opacity:.64}.card-active{position:relative;background-color:rgba(32,107,196,.03);z-index:1}.card-active:before{position:absolute;top:-1px;left:-1px;bottom:-1px;right:-1px;content:"";border:1px solid #206bc4;border-radius:inherit}.card-btn{display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem;text-align:center;transition:background .3s;border-top:1px solid var(--tblr-border-color);flex:1;color:inherit;font-weight:500}@media (prefers-reduced-motion:reduce){.card-btn{transition:none}}.card-btn:hover{text-decoration:none;background:rgba(32,107,196,.04)}.card-btn+.card-btn{border-right:1px solid var(--tblr-border-color)}.card-stacked{position:relative}.card-stacked:after{position:absolute;top:-5px;left:5px;right:5px;height:5px;content:"";background:#fff;border:1px solid rgba(98,105,118,.16);border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-cover{position:relative;padding:1rem 1.25rem;background:#666 no-repeat center/cover}.card-cover:before{position:absolute;top:0;left:0;bottom:0;right:0;content:"";background:rgba(30,41,59,.48)}.card-cover:first-child,.card-cover:first-child:before{border-radius:4px 4px 0 0}.card-cover-blurred:before{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.card-actions{margin:-.5rem auto -.5rem -.5rem;padding-right:.5rem}.card-actions a{text-decoration:none}.card-header{color:inherit;display:flex;align-items:center;background:0 0}.card-header:first-child{border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-header-light{border-bottom-color:transparent;background:var(--tblr-light)}.card-header-tabs{flex:1;margin:-.5rem -.625rem -1rem}.card-header-pills{flex:1;margin-top:-.5rem;margin-bottom:-.5rem}.card-rotate-left{transform:rotate(1.5deg)}.card-rotate-right{transform:rotate(-1.5deg)}.card-link{color:inherit}.card-link:hover{color:inherit;text-decoration:none;box-shadow:0 1px 6px 0 rgba(0,0,0,.08)}.card-link-rotate:hover{transform:rotate(-1.5deg);opacity:1}.card-link-pop:hover{transform:translateY(-2px);opacity:1}.card-footer{margin-top:auto}.card-footer:last-child{border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-footer-transparent{background:0 0;border-color:transparent;padding-top:0}.card-progress{height:.25rem}.card-progress:last-child{border-radius:0 0 2px 2px}.card-progress:first-child{border-radius:2px 2px 0 0}.card-meta{color:#626976}.card-title{display:block;margin:0 0 1rem;font-size:1rem;font-weight:500;line-height:1.5rem}a.card-title:hover{color:inherit}.card-header .card-title{margin:0}.card-subtitle{margin-top:-.5rem;margin-bottom:1.25rem;color:#626976;font-weight:400}.card-header .card-subtitle{margin:0}.card-title .card-subtitle{margin:0 .25rem 0 0;font-size:.875rem}.card-body>:last-child{margin-bottom:0}.card-sm>.card-body{padding:1rem}@media (min-width:768px){.card-md>.card-body{padding:2.5rem}}@media (min-width:768px){.card-lg>.card-body{padding:2rem}}@media (min-width:992px){.card-lg>.card-body{padding:4rem}}@media print{.card-body{padding:0}}.card-body+.card-body{border-top:1px solid #e6e7e9}.card-body-scrollable{overflow:auto}.card-options{top:1.5rem;left:.75rem;display:flex;margin-right:auto}.card-options-link{display:inline-block;min-width:1rem;margin-right:.25rem;color:#626976}.card-status-top{position:absolute;top:0;left:0;right:0;height:2px;border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-status-start{position:absolute;left:auto;bottom:0;width:2px;height:100%;border-radius:0 var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0}.card-status-bottom{position:absolute;top:initial;bottom:0;width:100%;height:2px;border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-table{margin-bottom:0!important}.card-table tr td:first-child,.card-table tr th:first-child{padding-right:1.25rem}.card-table tr td:last-child,.card-table tr th:last-child{padding-left:1.25rem}.card-table thead tr:first-child td,.card-table thead tr:first-child th{border-top:0}.card-table tbody tr:last-child td,.card-table tbody tr:last-child th{border-bottom:0}.card-body+.card-table{border-top:1px solid #e6e7e9}.card-code{padding:0}.card-code .highlight{margin:0;border:0}.card-code pre{margin:0!important;border:0!important}.card-chart{position:relative;z-index:1;height:3.5rem}.card-avatar{margin-right:auto;margin-left:auto;box-shadow:0 0 0 .25rem #fff;margin-top:calc(-1 * var(--tblr-avatar-size) * .5)}.card-body+.card-list-group{border-top:1px solid #e6e7e9}.card-list-group .list-group-item{padding-left:1.25rem;padding-right:1.25rem;border-left:0;border-right:0;border-radius:0}.card-list-group .list-group-item:last-child{border-bottom:0}.card-list-group .list-group-item:first-child{border-top:0}.card-tabs .nav-tabs{position:relative;z-index:1000;border-bottom:0}.card-tabs .nav-tabs .nav-link{color:#626976;background:#fafbfc;border:1px solid rgba(98,105,118,.16)}.card-tabs .nav-tabs .nav-link.active,.card-tabs .nav-tabs .nav-link:active,.card-tabs .nav-tabs .nav-link:hover{border-color:rgba(98,105,118,.16);color:#1e293b}.card-tabs .nav-tabs .nav-link.active{background:#fff;border-bottom-color:transparent}.card-tabs .nav-tabs .nav-item:not(:first-child) .nav-link{border-top-right-radius:0}.card-tabs .nav-tabs .nav-item:not(:last-child) .nav-link{border-top-left-radius:0}.card-tabs .nav-tabs .nav-item+.nav-item{margin-right:-1px}.card-tabs .nav-tabs-bottom{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link.active{border-top-color:transparent}.card-tabs .nav-tabs-bottom .nav-item{margin-top:-1px;margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-item .nav-link{border-bottom:1px solid rgba(98,105,118,.16);border-radius:0 0 4px 4px}.card-tabs .nav-tabs-bottom .nav-item:not(:first-child) .nav-link{border-bottom-right-radius:0}.card-tabs .nav-tabs-bottom .nav-item:not(:last-child) .nav-link{border-bottom-left-radius:0}.card-tabs .card{border-bottom-right-radius:0}.card-tabs .nav-tabs+.tab-content .card{border-bottom-right-radius:var(--tblr-card-border-radius);border-top-right-radius:0}.btn-close{cursor:pointer}.btn-close:focus{outline:0}.dropdown-menu{box-shadow:0 .5rem 1rem rgba(0,0,0,.15);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:0!important}.dropdown-menu.card{padding:0;min-width:25rem;display:none}.dropdown-menu.card.show{display:flex}.dropdown-item{min-width:11rem;display:flex;align-items:center;margin:0;line-height:1.4285714286}.dropdown-item-icon{width:1.25rem!important;height:1.25rem!important;margin-left:.5rem;color:#626976;opacity:.7;text-align:center}.dropdown-item-indicator{margin-left:.5rem;margin-right:-.25rem;height:1.25rem;display:inline-flex;line-height:1;vertical-align:bottom;align-items:center}.dropdown-header{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;padding-bottom:.25rem;pointer-events:none}.dropdown-menu-scrollable{height:auto;max-height:13rem;overflow-x:hidden}.dropdown-menu-column{min-width:11rem}.dropdown-menu-column .dropdown-item{min-width:0}.dropdown-menu-columns{display:flex;flex:0 .25rem}.dropdown-menu-arrow:before{content:"";position:absolute;top:-.25rem;right:.75rem;display:block;background:inherit;width:14px;height:14px;transform:rotate(-45deg);transform-origin:center;border:1px solid;border-color:inherit;z-index:-1;clip:rect(0,9px,9px,0)}.dropdown-menu-arrow.dropdown-menu-end:before{left:.75rem;right:auto}.dropend>.dropdown-menu{margin-top:calc(-.25rem - 1px);margin-right:-.25rem}.dropend .dropdown-toggle:after{margin-right:auto}.dropdown-menu-card{padding:0}.dropdown-menu-card>.card{margin:0;border:0;box-shadow:none}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center}@media (min-width:768px){.empty{padding:3rem}}.empty-icon{margin:0 0 1rem;width:3rem;height:3rem;line-height:1;color:#626976}.empty-icon svg{width:100%;height:100%}.empty-img{margin:0 0 2rem;line-height:1}.empty-img img{height:8rem;width:auto}.empty-header{margin:0 0 1rem;font-size:4rem;font-weight:300;line-height:1;color:#626976}.empty-title{font-size:1.25rem;line-height:1.4;font-weight:600}.empty-subtitle,.empty-title{margin:0 0 .5rem}.empty-action{margin-top:1.5rem}.empty-bordered{border:1px solid #e6e7e9;border-radius:4px}.row>*{min-width:0}.col-separator{border-right:1px solid #e6e7e9}@media (max-width:991.98px){.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--tblr-gutter-x:1rem}}.container-tight{width:100%;padding-left:var(--tblr-gutter-x,1.5rem);padding-right:var(--tblr-gutter-x,1.5rem);margin-left:auto;margin-right:auto;max-width:30rem}.container-narrow{width:100%;padding-left:var(--tblr-gutter-x,1.5rem);padding-right:var(--tblr-gutter-x,1.5rem);margin-left:auto;margin-right:auto;max-width:45rem}.row-0{margin-left:0;margin-right:0}.row-0>.col,.row-0>[class*=col-]{padding-left:0;padding-right:0}.row-0 .card{margin-bottom:0}.row-sm{margin-left:-.375rem;margin-right:-.375rem}.row-sm>.col,.row-sm>[class*=col-]{padding-left:.375rem;padding-right:.375rem}.row-sm .card{margin-bottom:.75rem}.row-md{margin-left:-1.5rem;margin-right:-1.5rem}.row-md>.col,.row-md>[class*=col-]{padding-left:1.5rem;padding-right:1.5rem}.row-md .card{margin-bottom:3rem}.row-lg{margin-left:-3rem;margin-right:-3rem}.row-lg>.col,.row-lg>[class*=col-]{padding-left:3rem;padding-right:3rem}.row-lg .card{margin-bottom:6rem}.row-deck>.col,.row-deck>[class*=col-]{display:flex;align-items:stretch}.row-deck>.col .card,.row-deck>[class*=col-] .card{flex:1 1 auto}.row-cards{--tblr-gutter-x:1rem;--tblr-gutter-y:1rem;min-width:0}.row-cards .row-cards{flex:1}@media (max-width:991.98px){.row-cards{--tblr-gutter-x:0.5rem;--tblr-gutter-y:0.5rem}}.space-y>:not(template)~:not(template){margin-top:1rem!important}.space-x>:not(template)~:not(template){margin-right:1rem!important}.space-y-0>:not(template)~:not(template){margin-top:0!important}.space-x-0>:not(template)~:not(template){margin-right:0!important}.space-y-1>:not(template)~:not(template){margin-top:.25rem!important}.space-x-1>:not(template)~:not(template){margin-right:.25rem!important}.space-y-2>:not(template)~:not(template){margin-top:.5rem!important}.space-x-2>:not(template)~:not(template){margin-right:.5rem!important}.space-y-3>:not(template)~:not(template){margin-top:1rem!important}.space-x-3>:not(template)~:not(template){margin-right:1rem!important}.space-y-4>:not(template)~:not(template){margin-top:2rem!important}.space-x-4>:not(template)~:not(template){margin-right:2rem!important}.space-y-5>:not(template)~:not(template){margin-top:4rem!important}.space-x-5>:not(template)~:not(template){margin-right:4rem!important}.divide-y>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y>:not(template):not(:first-child){padding-top:1rem!important}.divide-y>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x>:not(template):not(:first-child){padding-right:1rem!important}.divide-x>:not(template):not(:last-child){padding-left:1rem!important}.divide-y-0>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-0>:not(template):not(:first-child){padding-top:0!important}.divide-y-0>:not(template):not(:last-child){padding-bottom:0!important}.divide-x-0>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-0>:not(template):not(:first-child){padding-right:0!important}.divide-x-0>:not(template):not(:last-child){padding-left:0!important}.divide-y-1>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-1>:not(template):not(:first-child){padding-top:.25rem!important}.divide-y-1>:not(template):not(:last-child){padding-bottom:.25rem!important}.divide-x-1>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-1>:not(template):not(:first-child){padding-right:.25rem!important}.divide-x-1>:not(template):not(:last-child){padding-left:.25rem!important}.divide-y-2>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-2>:not(template):not(:first-child){padding-top:.5rem!important}.divide-y-2>:not(template):not(:last-child){padding-bottom:.5rem!important}.divide-x-2>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-2>:not(template):not(:first-child){padding-right:.5rem!important}.divide-x-2>:not(template):not(:last-child){padding-left:.5rem!important}.divide-y-3>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-3>:not(template):not(:first-child){padding-top:1rem!important}.divide-y-3>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x-3>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-3>:not(template):not(:first-child){padding-right:1rem!important}.divide-x-3>:not(template):not(:last-child){padding-left:1rem!important}.divide-y-4>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-4>:not(template):not(:first-child){padding-top:2rem!important}.divide-y-4>:not(template):not(:last-child){padding-bottom:2rem!important}.divide-x-4>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-4>:not(template):not(:first-child){padding-right:2rem!important}.divide-x-4>:not(template):not(:last-child){padding-left:2rem!important}.divide-y-5>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-5>:not(template):not(:first-child){padding-top:4rem!important}.divide-y-5>:not(template):not(:last-child){padding-bottom:4rem!important}.divide-x-5>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-5>:not(template):not(:first-child){padding-right:4rem!important}.divide-x-5>:not(template):not(:last-child){padding-left:4rem!important}.divide-y-fill{display:flex;flex-direction:column;height:100%}.divide-y-fill>:not(template){flex:1;display:flex;justify-content:center;flex-direction:column}.icon{width:1.25rem;height:1.25rem;font-size:1.25rem;vertical-align:bottom;stroke-width:1.5}.icon:hover{text-decoration:none}.icon-inline{width:1em;height:1em;font-size:1.1428571429em;vertical-align:-.2em}.icon-filled{fill:currentColor}.icon-sm{width:1rem;height:1rem;stroke-width:1}.icon-md{width:2.5rem;height:2.5rem;stroke-width:1}.icon-lg{width:3.5rem;height:3.5rem;stroke-width:1}.img-responsive{background:no-repeat center/cover;padding-top:75%}.img-responsive-1x1{padding-top:100%}.img-responsive-4x3{padding-top:75%}.img-responsive-3x4{padding-top:133.3333333333%}.img-responsive-16x9{padding-top:56.25%}.img-responsive-9x16{padding-top:177.7777777778%}.img-responsive-21x9{padding-top:42.8571428571%}.img-responsive-9x21{padding-top:233.3333333333%}textarea[cols]{height:auto}.form-label{display:block;font-weight:500}.form-label.required:after{content:"*";margin-right:.25rem;color:#d63939}.form-label-description{float:left;font-weight:400;color:#626976}.form-hint{display:block;color:#626976}.form-hint:last-child{margin-bottom:0}.form-hint+.form-control{margin-top:.25rem}.form-label+.form-hint{margin-top:-.25rem}.form-control+.form-hint,.form-select+.form-hint,.input-group+.form-hint{margin-top:.5rem}.form-select:-moz-focusring{color:var(--tblr-body-color)}.form-control:-webkit-autofill{box-shadow:0 0 0 1000px var(--tblr-body-bg) inset;color:var(--tblr-body-color)}.form-control.disabled,.form-control:disabled{color:#626976;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-control[size]{width:auto}.form-control[type=number]::-webkit-inner-spin-button{opacity:1;cursor:pointer;height:calc(calc(1.4285714286em + .875rem + 2px) - 1px);margin:0 0 0 -.75rem}.form-control[type=number]::-moz-inner-spin-button{opacity:1;cursor:pointer;height:calc(calc(1.4285714286em + .875rem + 2px) - 1px);margin:0 0 0 -.75rem}.form-control-light{background-color:#f1f5f9;border-color:transparent}.form-control-dark{background-color:rgba(0,0,0,.1);color:#fff;border-color:transparent}.form-control-dark:focus{background-color:rgba(0,0,0,.1);box-shadow:none;border-color:rgba(255,255,255,.24)}.form-control-dark::-webkit-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::-moz-placeholder{color:rgba(255,255,255,.6)}.form-control-dark:-ms-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::-ms-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::placeholder{color:rgba(255,255,255,.6)}.form-control-rounded{border-radius:10rem}.form-control-flush{padding:0;background:0 0!important;border-color:transparent!important;resize:none;box-shadow:none!important;line-height:inherit}.form-footer{margin-top:2rem}.form-fieldset{padding:1rem;margin-bottom:1rem;background:var(--tblr-body-bg);border:1px solid var(--tblr-border-color);border-radius:4px}.form-help{display:inline-flex;font-weight:600;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;font-size:.75rem;color:#626976;text-align:center;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--tblr-border-color-light);border-radius:100rem;transition:background-color .3s,color .3s}@media (prefers-reduced-motion:reduce){.form-help{transition:none}}.form-help:hover,.form-help[aria-describedby]{color:#fff;background:#206bc4}.input-group-link{font-size:.75rem}.input-group-flat:focus-within{box-shadow:0 0 0 .25rem rgba(32,107,196,.25);border-radius:4px}.input-group-flat:focus-within .form-control,.input-group-flat:focus-within .input-group-text{border-color:#90b5e2!important}.input-group-flat .form-control:focus{border-color:#d9dbde;box-shadow:none}.input-group-flat .form-control:not(:last-child){border-left:0}.input-group-flat .form-control:not(:first-child){border-right:0}.input-group-flat .input-group-text{background:0 0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.input-group-flat .input-group-text{transition:none}}.input-group-flat .input-group-text:first-child{padding-left:0}.input-group-flat .input-group-text:last-child{padding-right:0}.form-file-button{margin-right:0;border-right:0}.input-icon{position:relative}.input-icon .form-control:not(:last-child),.input-icon .form-select:not(:last-child){padding-left:2.5rem}.input-icon .form-control:not(:first-child),.input-icon .form-select:not(:last-child){padding-right:2.5rem}.input-icon-addon{position:absolute;top:0;bottom:0;right:0;display:flex;align-items:center;justify-content:center;min-width:2.5rem;color:#626976;pointer-events:none;font-size:1.2em}.input-icon-addon:last-child{left:0;right:auto}.form-colorinput{position:relative;display:inline-block;margin:0;line-height:1;cursor:pointer}.form-colorinput-input{position:absolute;z-index:-1;opacity:0}.form-colorinput-color{display:block;width:1.5rem;height:1.5rem;color:#fff;border:1px solid rgba(98,105,118,.16);border-radius:3px;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.form-colorinput-color:before{position:absolute;top:0;right:0;width:100%;height:100%;content:"";background:no-repeat center center/1rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-colorinput-color:before{transition:none}}.form-colorinput-input:checked~.form-colorinput-color:before{opacity:1}.form-colorinput-input:focus~.form-colorinput-color{border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-colorinput-light .form-colorinput-color:before{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%231e293b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-imagecheck{position:relative;margin:0;cursor:pointer}.form-imagecheck-input{position:absolute;z-index:-1;opacity:0}.form-imagecheck-figure{position:relative;display:block;margin:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid var(--tblr-border-color);border-radius:3px}.form-imagecheck-input:focus~.form-imagecheck-figure{border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-imagecheck-input:checked~.form-imagecheck-figure{border-color:#206bc4}.form-imagecheck-figure:before{position:absolute;top:.25rem;right:.25rem;z-index:1;display:block;width:1rem;height:1rem;color:#fff;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;border:1px solid #e6e7e9;border-radius:3px;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-figure:before{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure:before{background-color:#206bc4;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");background-repeat:repeat;background-position:center;background-size:1rem;border-color:rgba(98,105,118,.24)}.form-imagecheck-image{max-width:100%;display:block;opacity:.64;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-image{transition:none}}.form-imagecheck-image:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.form-imagecheck-image:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck:hover .form-imagecheck-image{opacity:1}.form-imagecheck-caption{padding:.25rem;font-size:.765625rem;color:#626976;text-align:center;transition:color .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-caption{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck:hover .form-imagecheck-caption{color:#1e293b}.form-selectgroup{display:inline-flex;margin:0 0 -.5rem -.5rem;flex-wrap:wrap}.form-selectgroup .form-selectgroup-item{margin:0 0 .5rem .5rem}.form-selectgroup-vertical{flex-direction:column}.form-selectgroup-item{display:block;position:relative}.form-selectgroup-input{position:absolute;top:0;right:0;z-index:-1;opacity:0}.form-selectgroup-label{position:relative;display:block;min-width:calc(1.4285714286em + .875rem + 2px);margin:0;padding:.4375rem .75rem;font-size:.875rem;line-height:1.4285714286;color:#626976;background:#fff;text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid #d9dbde;border-radius:3px;transition:border-color .3s,background .3s,color .3s}@media (prefers-reduced-motion:reduce){.form-selectgroup-label{transition:none}}.form-selectgroup-label .icon:only-child{margin:0 -.25rem}.form-selectgroup-label:hover{color:#1e293b}.form-selectgroup-check{display:inline-block;width:1rem;height:1rem;border:1px solid rgba(98,105,118,.24);vertical-align:middle}.form-selectgroup-input[type=checkbox]+.form-selectgroup-label .form-selectgroup-check{border-radius:4px}.form-selectgroup-input[type=radio]+.form-selectgroup-label .form-selectgroup-check{border-radius:50%}.form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-check{background-color:#206bc4;background-repeat:repeat;background-position:center;background-size:1rem;border-color:rgba(98,105,118,.24)}.form-selectgroup-input[type=checkbox]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-selectgroup-input[type=radio]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-selectgroup-check-floated{position:absolute;top:.4375rem;left:.4375rem}.form-selectgroup-input:checked+.form-selectgroup-label{z-index:1;color:#206bc4;background:rgba(32,107,196,.04);border-color:#206bc4}.form-selectgroup-input:focus+.form-selectgroup-label{z-index:2;color:#206bc4;border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-selectgroup-boxes .form-selectgroup-label{text-align:right;padding:1.25rem 1rem;color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label{color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-title{color:#206bc4}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-label-content{opacity:1}.form-selectgroup-pills{flex-wrap:wrap;align-items:flex-start}.form-selectgroup-pills .form-selectgroup-item{flex-grow:0}.form-selectgroup-pills .form-selectgroup-label{border-radius:50px}.form-control-color::-webkit-color-swatch{border:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.form-control::-webkit-file-upload-button{background-color:var(--tblr-btn-color,#fafbfc)}.form-control::file-selector-button{background-color:var(--tblr-btn-color,#fafbfc)}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--tblr-btn-color,#eeeeef)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--tblr-btn-color,#eeeeef)}.form-check{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-check.form-check-highlight .form-check-input:not(:checked)~.form-check-label{opacity:.7}.form-check-input{background-size:1rem;margin-top:.125rem}.form-switch .form-check-input{transition:background-color .3s,background-position .3s}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-check-label{display:block}.form-check-label.required:after{content:"*";margin-right:.25rem;color:#d63939}.form-check-description{display:block;color:#626976;font-size:.75rem;margin-top:.25rem}.form-check-single{margin:0}.form-check-single .form-check-input{margin:0}.form-switch .form-check-input{height:1.125rem;margin-top:.0625rem}.form-switch-lg .form-check-input{height:1.5rem;width:2.75rem;background-size:1.5rem}.form-control.is-invalid-lite,.form-control.is-valid-lite,.form-select.is-invalid-lite,.form-select.is-valid-lite{border-color:var(--tblr-border-color)!important}.legend{display:inline-block;background:var(--tblr-border-color-light);width:.75em;height:.75em;border-radius:4px}.list-group{margin-right:0;margin-left:0}.list-group-header{background:#fafbfc;padding:.5rem 1.25rem;font-size:.75rem;font-weight:500;line-height:1;text-transform:uppercase;color:#626976;border-bottom:1px solid var(--tblr-border-color)}.list-group-flush>.list-group-header:last-child{border-bottom-width:0}.list-group-item{background-color:rgba(27,125,241,.02)}.list-group-item.active{background-color:inherit;border-right-color:#f59f00;border-right-width:2px}.list-group-item:active,.list-group-item:focus,.list-group-item:hover{background-color:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#64748b;background-color:rgba(27,125,241,.02)}.list-bordered .list-item{border-top:1px solid #e6e7e9;margin-top:-1px}.list-bordered .list-item:first-child{border-top:none}.list-group-hoverable .list-group-item-actions{opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.list-group-hoverable .list-group-item-actions{transition:none}}.list-group-hoverable .list-group-item-actions.show,.list-group-hoverable .list-group-item:hover .list-group-item-actions{opacity:1}.list-timeline{position:relative;padding:0;margin:0;list-style:none}.list-timeline>li{position:relative;margin-bottom:1.5rem}.list-timeline>li:last-child{margin-bottom:0}.list-timeline-time{float:left;margin-right:1rem;color:#626976}.list-timeline-icon{position:absolute;top:0;right:0;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:#fff;text-align:center;background:#626976;border-radius:100rem}.list-timeline-icon .icon{width:1rem;height:1rem;font-size:1rem}.list-timeline-title{margin:0;font-weight:600}.list-timeline-content{margin-right:3.5rem}@media screen and (min-width:768px){.list-timeline:not(.list-timeline-simple):before{position:absolute;top:0;bottom:0;right:calc(7.5rem + 2px);z-index:1;display:block;width:4px;content:"";background-color:#f5f7fb}.list-timeline:not(.list-timeline-simple)>li{z-index:2;min-height:40px}.list-timeline:not(.list-timeline-simple) .list-timeline-time{position:absolute;top:.5rem;right:0;width:5.5rem;margin:0;text-align:left}.list-timeline:not(.list-timeline-simple) .list-timeline-icon{top:0;right:6.5rem}.list-timeline:not(.list-timeline-simple) .list-timeline-content{padding:.625rem 10rem 0 0;margin:0}}.list-group-transparent{margin:0 -1.25rem}.list-group-transparent .list-group-item{background:0 0;border:0;border-radius:3px}.list-group-transparent .list-group-item .icon{color:#626976}.list-group-transparent .list-group-item.active{font-weight:600;color:inherit;background:rgba(32,107,196,.04)}.list-group-transparent .list-group-item.active .icon{color:inherit}.list-separated-item{padding:1rem 0}.list-separated-item:first-child{padding-top:0}.list-separated-item:last-child{padding-bottom:0}.list-separated-item+.list-separated-item{border-top:1px solid #e6e7e9}.list-inline-item:not(:last-child){margin-left:auto;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.list-inline-dots .list-inline-item+.list-inline-item:before{content:" · ";-webkit-margin-end:.5rem;margin-inline-end:.5rem}@-webkit-keyframes loader{from{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes loader{from{transform:rotate(0)}to{transform:rotate(-360deg)}}.loader{position:relative;display:block;width:2.5rem;height:2.5rem;color:#206bc4;vertical-align:middle}.loader:after{position:absolute;top:0;right:0;width:100%;height:100%;content:"";border:1px solid;border-color:transparent;border-top-color:currentColor;border-right-color:currentColor;border-radius:100rem;-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.dimmer{position:relative}.dimmer .loader{position:absolute;top:50%;left:0;right:0;display:none;margin:0 auto;transform:translateY(-50%)}.dimmer.active .loader{display:block}.dimmer.active .dimmer-content{pointer-events:none;opacity:.1}@-webkit-keyframes animated-dots{0%{transform:translateX(100%)}}@keyframes animated-dots{0%{transform:translateX(100%)}}.animated-dots{display:inline-block;overflow:hidden;vertical-align:bottom}.animated-dots:after{display:inline-block;content:"...";-webkit-animation:animated-dots 1.2s steps(4,jump-none) infinite;animation:animated-dots 1.2s steps(4,jump-none) infinite}.modal-content .btn-close{position:absolute;top:0;left:0;width:3.5rem;height:3.5rem;margin:0;padding:0;z-index:10}.modal-body::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.modal-body::-webkit-scrollbar{-webkit-transition:none;transition:none}}.modal-body::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.modal-body::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.modal-body:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.modal-body::-webkit-scrollbar-corner{background:0 0}.modal-body .modal-title{margin-bottom:1rem}.modal-body+.modal-body{border-top:1px solid var(--tblr-border-color)}.modal-status{position:absolute;top:0;right:0;left:0;height:2px;background:#626976;border-radius:4px 4px 0 0}.modal-header{align-items:center;min-height:3.5rem;background:#fff;padding:0 1.5rem 0 3.5rem}.modal-title{font-size:1rem;font-weight:600;line-height:1.4285714286}.modal-footer{padding-top:0;padding-bottom:.75rem}.modal-blur{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-full-width{max-width:none;margin:0 .5rem}.nav-vertical,.nav-vertical .nav{flex-direction:column;flex-wrap:nowrap}.nav-vertical .nav{margin-right:1.25rem;border-right:1px solid var(--tblr-border-color);padding-right:.5rem}.nav-vertical .nav-item.show .nav-link,.nav-vertical .nav-link.active{font-weight:600}.nav-vertical.nav-pills{margin:0 -.75rem}.nav-bordered{border-bottom:1px solid #e6e7e9}.nav-bordered .nav-item+.nav-item{margin-right:1.25rem}.nav-bordered .nav-link{padding-right:0;padding-left:0;margin:0 0 -1px;border:0;border-bottom:2px solid transparent;color:#626976}.nav-bordered .nav-item.show .nav-link,.nav-bordered .nav-link.active{color:#206bc4;border-color:#206bc4}.nav-tabs-alt .nav-link{font-size:13px;font-weight:600;text-transform:uppercase}.nav-link{display:flex;transition:color .3s;align-items:center}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link-toggle{margin-right:auto;padding:0 .25rem;transition:transform .3s}@media (prefers-reduced-motion:reduce){.nav-link-toggle{transition:none}}.nav-link-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(45deg)}.nav-link-toggle:after{margin:0}.nav-link[aria-expanded=true] .nav-link-toggle{transform:rotate(-180deg)}.nav-link-icon{width:1.5rem;height:1.25rem;margin-left:.25rem;opacity:.7}.nav-link-icon svg{display:block;height:100%}.stars{display:inline-flex;color:#94a3b8;font-size:.75rem}.stars .star:not(:first-child){margin-right:.25rem}.pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.page-link{min-width:1.75rem;border-radius:4px}.page-link:hover{background:0 0}.page-item{text-align:center}.page-item.page-next,.page-item.page-prev{flex:0 0 50%;text-align:right}.page-item.page-next{margin-right:auto;text-align:left}.page-item-subtitle{margin-bottom:2px;font-size:12px;color:#626976;text-transform:uppercase}.page-item.disabled .page-item-subtitle{color:rgba(98,105,118,.5)}.page-item-title{font-size:1rem;font-weight:400;color:#1e293b}.page-link:hover .page-item-title{color:#206bc4}.page-item.disabled .page-item-title{color:rgba(98,105,118,.5)}@-webkit-keyframes progress-indeterminate{0%{left:100%;right:-35%}100%,60%{left:-90%;right:100%}}@keyframes progress-indeterminate{0%{left:100%;right:-35%}100%,60%{left:-90%;right:100%}}.progress{position:relative;width:100%;line-height:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--tblr-border-color-light)}.progress::-webkit-progress-bar{background:#f1f5f9}.progress::-webkit-progress-value{background-color:#206bc4}.progress::-moz-progress-bar{background-color:#206bc4}.progress::-ms-fill{background-color:#206bc4;border:none}.progress-sm{height:.25rem}.progress-bar{height:100%}.progress-bar-indeterminate:after,.progress-bar-indeterminate:before{position:absolute;top:0;bottom:0;right:0;content:"";background-color:inherit;will-change:left,right}.progress-bar-indeterminate:before{-webkit-animation:progress-indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:progress-indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.progress-separated .progress-bar{border-left:2px solid var(--tblr-card-bg,#fff)}.ribbon{position:absolute;top:.75rem;left:-.25rem;z-index:1;padding:.25rem .75rem;font-size:.625rem;font-weight:600;line-height:1.5rem;color:#fff;text-align:center;text-transform:uppercase;background:#206bc4;border-color:#206bc4;display:inline-flex;align-items:center;justify-content:center;min-height:2rem;min-width:2rem}.ribbon:before{position:absolute;left:0;bottom:100%;width:0;height:0;content:"";filter:brightness(70%);border:.125rem solid;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon.bg-blue{border-color:#206bc4}.ribbon.bg-blue-lt{border-color:#2b72c7!important}.ribbon.bg-azure{border-color:#4299e1}.ribbon.bg-azure-lt{border-color:#4b9ee3!important}.ribbon.bg-indigo{border-color:#4263eb}.ribbon.bg-indigo-lt{border-color:#4b6bec!important}.ribbon.bg-purple{border-color:#ae3ec9}.ribbon.bg-purple-lt{border-color:#b248cc!important}.ribbon.bg-pink{border-color:#d6336c}.ribbon.bg-pink-lt{border-color:#d83d73!important}.ribbon.bg-red{border-color:#d63939}.ribbon.bg-red-lt{border-color:#d84343!important}.ribbon.bg-orange{border-color:#f76707}.ribbon.bg-orange-lt{border-color:#f76f13!important}.ribbon.bg-yellow{border-color:#f59f00}.ribbon.bg-yellow-lt{border-color:#f6a40d!important}.ribbon.bg-lime{border-color:#74b816}.ribbon.bg-lime-lt{border-color:#7bbc22!important}.ribbon.bg-green{border-color:#2fb344}.ribbon.bg-green-lt{border-color:#39b74d!important}.ribbon.bg-teal{border-color:#0ca678}.ribbon.bg-teal-lt{border-color:#18aa7f!important}.ribbon.bg-cyan{border-color:#17a2b8}.ribbon.bg-cyan-lt{border-color:#23a7bc!important}.ribbon .icon{width:1.25rem;height:1.25rem;font-size:1.25rem}.ribbon-top{top:-.25rem;left:.75rem;width:2rem;padding:.5rem 0}.ribbon-top:before{top:0;left:100%;bottom:auto;border-color:inherit;border-top-color:transparent;border-right-color:transparent}.ribbon-top.ribbon-start{left:auto;right:.75rem}.ribbon-top.ribbon-start:before{top:0;left:100%;right:auto}.ribbon-start{left:auto;right:-.25rem}.ribbon-start:before{top:auto;bottom:100%;right:0;border-color:inherit;border-top-color:transparent;border-right-color:transparent}.ribbon-bottom{top:auto;bottom:.75rem}.ribbon-bookmark{padding-right:.25rem}.ribbon-bookmark:after{position:absolute;top:0;left:100%;display:block;width:0;height:0;content:"";border:1rem solid;border-color:inherit;border-left-width:0;border-right-color:transparent;border-right-width:.5rem}.ribbon-bookmark.ribbon-left{padding-left:.5rem;padding-right:.5rem}.ribbon-bookmark.ribbon-left:after{left:auto;right:100%;border-left-color:transparent;border-left-width:.5rem;border-right-width:0}.ribbon-bookmark.ribbon-top{padding-left:0;padding-bottom:.25rem;padding-right:0}.ribbon-bookmark.ribbon-top:after{top:100%;left:0;right:0;border-color:inherit;border-width:1rem;border-top-width:0;border-bottom-color:transparent;border-bottom-width:.5rem}.markdown{font-size:1rem;line-height:1.7142857143}.markdown>:first-child{margin-top:0}.markdown>:last-child,.markdown>:last-child .highlight{margin-bottom:0}@media (min-width:768px){.markdown>.hr,.markdown>hr{margin-top:3em;margin-bottom:3em}}.markdown>.h1,.markdown>.h2,.markdown>.h3,.markdown>.h4,.markdown>.h5,.markdown>.h6,.markdown>h1,.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{font-weight:600}.markdown>blockquote{font-size:1rem;margin:1.5rem 0;padding:.5rem 1.5rem}.markdown>img{border-radius:4px}.placeholder:not(.btn):not([class*=bg-]){background-color:currentColor!important}.placeholder:not(.avatar):not([class*=card-img-]){border-radius:4px}.steps{display:flex;flex-wrap:nowrap;width:100%;padding:0;margin:2rem 0;list-style:none}.steps .step-item{padding-top:calc(.5rem + 4px)}.steps .step-item:after{top:calc(.25rem + 2px);height:2px}.steps .step-item:before{width:.5rem;height:.5rem}.steps .step-item:after,.steps .step-item:before{color:#fff;background:#206bc4}.steps .step-item.active:before{color:inherit;border-color:#206bc4}.steps-blue .step-item:after,.steps-blue .step-item:before{color:#fff;background:#206bc4}.steps-blue .step-item.active:before{color:inherit;border-color:#206bc4}.steps-azure .step-item:after,.steps-azure .step-item:before{color:#fff;background:#4299e1}.steps-azure .step-item.active:before{color:inherit;border-color:#4299e1}.steps-indigo .step-item:after,.steps-indigo .step-item:before{color:#fff;background:#4263eb}.steps-indigo .step-item.active:before{color:inherit;border-color:#4263eb}.steps-purple .step-item:after,.steps-purple .step-item:before{color:#fff;background:#ae3ec9}.steps-purple .step-item.active:before{color:inherit;border-color:#ae3ec9}.steps-pink .step-item:after,.steps-pink .step-item:before{color:#fff;background:#d6336c}.steps-pink .step-item.active:before{color:inherit;border-color:#d6336c}.steps-red .step-item:after,.steps-red .step-item:before{color:#fff;background:#d63939}.steps-red .step-item.active:before{color:inherit;border-color:#d63939}.steps-orange .step-item:after,.steps-orange .step-item:before{color:#fff;background:#f76707}.steps-orange .step-item.active:before{color:inherit;border-color:#f76707}.steps-yellow .step-item:after,.steps-yellow .step-item:before{color:#fff;background:#f59f00}.steps-yellow .step-item.active:before{color:inherit;border-color:#f59f00}.steps-lime .step-item:after,.steps-lime .step-item:before{color:#fff;background:#74b816}.steps-lime .step-item.active:before{color:inherit;border-color:#74b816}.steps-green .step-item:after,.steps-green .step-item:before{color:#fff;background:#2fb344}.steps-green .step-item.active:before{color:inherit;border-color:#2fb344}.steps-teal .step-item:after,.steps-teal .step-item:before{color:#fff;background:#0ca678}.steps-teal .step-item.active:before{color:inherit;border-color:#0ca678}.steps-cyan .step-item:after,.steps-cyan .step-item:before{color:#fff;background:#17a2b8}.steps-cyan .step-item.active:before{color:inherit;border-color:#17a2b8}.step-item{position:relative;flex:1 1 0;min-height:1rem;margin-top:0;color:inherit;text-align:center;cursor:default}a.step-item{cursor:pointer}a.step-item:hover{color:inherit}.step-item:not(:first-child):after{position:absolute;right:-50%;width:100%;content:"";transform:translateY(-50%)}.step-item:before{position:absolute;top:0;right:50%;z-index:1;box-sizing:content-box;display:block;content:"";border:2px solid #fff;border-radius:100rem;transform:translateX(50%)}.step-item.active{font-weight:600}.step-item.active:before{background:#fff}.step-item.active~.step-item{color:#626976}.step-item.active~.step-item:after,.step-item.active~.step-item:before{background:#f3f5f5}.step-item.active~.step-item:before{color:#626976!important}.steps-counter{counter-reset:steps}.steps-counter .step-item{padding-top:calc(1.5rem + 4px)}.steps-counter .step-item:after{top:calc(.75rem + 2px);height:2px}.steps-counter .step-item:before{width:1.5rem;height:1.5rem}.steps-counter .step-item{counter-increment:steps}.steps-counter .step-item:before{font-size:.75rem;line-height:1.5rem;content:counter(steps)}.steps-counter .step-item.active~.step-item:before{background:#fff}@-webkit-keyframes status-pulsate-main{40%{transform:scale(1.25,1.25)}60%{transform:scale(1.25,1.25)}}@keyframes status-pulsate-main{40%{transform:scale(1.25,1.25)}60%{transform:scale(1.25,1.25)}}@-webkit-keyframes status-pulsate-secondary{10%{transform:scale(1,1)}30%{transform:scale(3,3)}80%{transform:scale(3,3)}100%{transform:scale(1,1)}}@keyframes status-pulsate-secondary{10%{transform:scale(1,1)}30%{transform:scale(3,3)}80%{transform:scale(3,3)}100%{transform:scale(1,1)}}@-webkit-keyframes status-pulsate-tertiary{25%{transform:scale(1,1)}80%{transform:scale(3,3);opacity:0}100%{transform:scale(3,3);opacity:0}}@keyframes status-pulsate-tertiary{25%{transform:scale(1,1)}80%{transform:scale(3,3);opacity:0}100%{transform:scale(3,3);opacity:0}}.status{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118;display:inline-flex;align-items:center;height:2rem;padding:.5rem .75rem;gap:.5rem;color:var(--tblr-status-color);background:rgba(var(--tblr-status-color-rgb),.1);font-size:.875rem;text-transform:none;letter-spacing:normal;border-radius:100rem;font-weight:500;line-height:1;margin:0}.status .status-dot{background:var(--tblr-status-color)}.status .icon{font-size:1.25rem}.status-lite{border:1px solid var(--tblr-border-color)!important;background:0 0!important;color:var(--tblr-body-text)!important}.status-primary{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-secondary{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118}.status-success{--tblr-status-color:#2fb344;--tblr-status-color-rgb:47,179,68}.status-info{--tblr-status-color:#4299e1;--tblr-status-color-rgb:66,153,225}.status-warning{--tblr-status-color:#f76707;--tblr-status-color-rgb:247,103,7}.status-danger{--tblr-status-color:#d63939;--tblr-status-color-rgb:214,57,57}.status-light{--tblr-status-color:#fafbfc;--tblr-status-color-rgb:250,251,252}.status-dark{--tblr-status-color:#1e293b;--tblr-status-color-rgb:30,41,59}.status-muted{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118}.status-blue{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-azure{--tblr-status-color:#4299e1;--tblr-status-color-rgb:66,153,225}.status-indigo{--tblr-status-color:#4263eb;--tblr-status-color-rgb:66,99,235}.status-purple{--tblr-status-color:#ae3ec9;--tblr-status-color-rgb:174,62,201}.status-pink{--tblr-status-color:#d6336c;--tblr-status-color-rgb:214,51,108}.status-red{--tblr-status-color:#d63939;--tblr-status-color-rgb:214,57,57}.status-orange{--tblr-status-color:#f76707;--tblr-status-color-rgb:247,103,7}.status-yellow{--tblr-status-color:#f59f00;--tblr-status-color-rgb:245,159,0}.status-lime{--tblr-status-color:#74b816;--tblr-status-color-rgb:116,184,22}.status-green{--tblr-status-color:#2fb344;--tblr-status-color-rgb:47,179,68}.status-teal{--tblr-status-color:#0ca678;--tblr-status-color-rgb:12,166,120}.status-cyan{--tblr-status-color:#17a2b8;--tblr-status-color-rgb:23,162,184}.status-facebook{--tblr-status-color:#3b5998;--tblr-status-color-rgb:59,89,152}.status-twitter{--tblr-status-color:#1da1f2;--tblr-status-color-rgb:29,161,242}.status-linkedin{--tblr-status-color:#0a66c2;--tblr-status-color-rgb:10,102,194}.status-google{--tblr-status-color:#dc4e41;--tblr-status-color-rgb:220,78,65}.status-youtube{--tblr-status-color:#ff0000;--tblr-status-color-rgb:255,0,0}.status-vimeo{--tblr-status-color:#1ab7ea;--tblr-status-color-rgb:26,183,234}.status-dribbble{--tblr-status-color:#ea4c89;--tblr-status-color-rgb:234,76,137}.status-github{--tblr-status-color:#181717;--tblr-status-color-rgb:24,23,23}.status-instagram{--tblr-status-color:#e4405f;--tblr-status-color-rgb:228,64,95}.status-pinterest{--tblr-status-color:#bd081c;--tblr-status-color-rgb:189,8,28}.status-vk{--tblr-status-color:#6383a8;--tblr-status-color-rgb:99,131,168}.status-rss{--tblr-status-color:#ffa500;--tblr-status-color-rgb:255,165,0}.status-flickr{--tblr-status-color:#0063dc;--tblr-status-color-rgb:0,99,220}.status-bitbucket{--tblr-status-color:#0052cc;--tblr-status-color-rgb:0,82,204}.status-tabler{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-dot{--tblr-status-dot-color:var(--tblr-status-color, #626976);--tblr-status-size:0.5rem;position:relative;display:inline-block;width:var(--tblr-status-size);height:var(--tblr-status-size);background:var(--tblr-status-dot-color);border-radius:100rem}.status-dot-animated:before{content:"";position:absolute;inset:0;z-index:0;background:inherit;border-radius:inherit;opacity:.6;-webkit-animation:1s linear 2s backwards infinite status-pulsate-tertiary;animation:1s linear 2s backwards infinite status-pulsate-tertiary}.status-indicator{--tblr-status-indicator-size:2.5rem;--tblr-status-indicator-color:var(--tblr-status-color, #626976);display:block;position:relative;width:var(--tblr-status-indicator-size);height:var(--tblr-status-indicator-size)}.status-indicator-circle{--tblr-status-circle-size:.75rem;position:absolute;right:50%;top:50%;margin:calc(var(--tblr-status-circle-size)/ -2) calc(var(--tblr-status-circle-size)/ -2) 0 0;width:var(--tblr-status-circle-size);height:var(--tblr-status-circle-size);border-radius:100rem;background:var(--tblr-status-color)}.status-indicator-circle:nth-child(1){z-index:3}.status-indicator-circle:nth-child(2){z-index:2;opacity:.1}.status-indicator-circle:nth-child(3){z-index:1;opacity:.3}.status-indicator-animated .status-indicator-circle:nth-child(1){-webkit-animation:2s linear 1s infinite backwards status-pulsate-main;animation:2s linear 1s infinite backwards status-pulsate-main}.status-indicator-animated .status-indicator-circle:nth-child(2){-webkit-animation:2s linear 1s infinite backwards status-pulsate-secondary;animation:2s linear 1s infinite backwards status-pulsate-secondary}.status-indicator-animated .status-indicator-circle:nth-child(3){-webkit-animation:2s linear 1s infinite backwards status-pulsate-tertiary;animation:2s linear 1s infinite backwards status-pulsate-tertiary}.switch-icon{display:inline-block;line-height:1;border:0;padding:0;background:0 0;width:1.25rem;height:1.25rem;vertical-align:bottom;position:relative;cursor:pointer}.switch-icon.disabled{pointer-events:none;opacity:.65}.switch-icon:focus{outline:0}.switch-icon svg{display:block;width:100%;height:100%}.switch-icon .switch-icon-a,.switch-icon .switch-icon-b{display:block;width:100%;height:100%}.switch-icon .switch-icon-a{opacity:1}.switch-icon .switch-icon-b{position:absolute;top:0;right:0;opacity:0}.switch-icon.active .switch-icon-a{opacity:0}.switch-icon.active .switch-icon-b{opacity:1}.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:opacity .5s}@media (prefers-reduced-motion:reduce){.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:opacity .5s,transform 0s .5s}@media (prefers-reduced-motion:reduce){.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-b{transform:scale(1.5)}.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:opacity 0s,transform .5s}@media (prefers-reduced-motion:reduce){.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:none}}.switch-icon-scale.active .switch-icon-b{transform:scale(1)}.switch-icon-flip{perspective:10em}.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d;transition:opacity 0s .2s,transform .4s ease-in-out}@media (prefers-reduced-motion:reduce){.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{transition:none}}.switch-icon-flip .switch-icon-a{opacity:1;transform:rotateY(0)}.switch-icon-flip .switch-icon-b{opacity:1;transform:rotateY(180deg)}.switch-icon-flip.active .switch-icon-a{opacity:1;transform:rotateY(-180deg)}.switch-icon-flip.active .switch-icon-b{opacity:1;transform:rotateY(0)}.switch-icon-slide-down,.switch-icon-slide-left,.switch-icon-slide-right,.switch-icon-slide-up{overflow:hidden}.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b{transition:opacity .3s,transform .3s}@media (prefers-reduced-motion:reduce){.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b{transition:none}}.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-up .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-b{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-a,.switch-icon-slide-left.active .switch-icon-a,.switch-icon-slide-right.active .switch-icon-a,.switch-icon-slide-up.active .switch-icon-a{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-b,.switch-icon-slide-left.active .switch-icon-b,.switch-icon-slide-right.active .switch-icon-b,.switch-icon-slide-up.active .switch-icon-b{transform:translateY(0)}.switch-icon-slide-right .switch-icon-a{transform:translateX(0)}.switch-icon-slide-left .switch-icon-b{transform:translateX(-100%)}.switch-icon-slide-left.active .switch-icon-a{transform:translateX(100%)}.switch-icon-slide-right.active .switch-icon-b{transform:translateX(0)}.switch-icon-slide-left .switch-icon-a{transform:translateX(0)}.switch-icon-slide-right .switch-icon-b{transform:translateX(100%)}.switch-icon-slide-right.active .switch-icon-a{transform:translateX(-100%)}.switch-icon-slide-left.active .switch-icon-b{transform:translateX(0)}.switch-icon-slide-down .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-a{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-b{transform:translateY(0)}.markdown>table thead th,.table thead th{color:#626976;background:var(--tblr-border-color-light);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;padding-top:.5rem;padding-bottom:.5rem;white-space:nowrap}@media print{.markdown>table thead th,.table thead th{background:0 0}}.markdown>table>:not(:first-child),.table>:not(:first-child){border-top-width:1px}.table-responsive .markdown>table,.table-responsive .table{margin-bottom:0}.table-transparent thead th{background:0 0}.table-nowrap>:not(caption)>*>*{white-space:nowrap}.table-vcenter>:not(caption)>*>*{vertical-align:middle}.table-center>:not(caption)>*>*{text-align:center}.td-truncate{max-width:1px;width:100%}.table-mobile{display:block}.table-mobile thead{display:none}.table-mobile tbody,.table-mobile tr{display:flex;flex-direction:column}.table-mobile td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile .btn{display:block}@media (max-width:575.98px){.table-mobile-sm{display:block}.table-mobile-sm thead{display:none}.table-mobile-sm tbody,.table-mobile-sm tr{display:flex;flex-direction:column}.table-mobile-sm td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-sm td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-sm tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-sm .btn{display:block}}@media (max-width:767.98px){.table-mobile-md{display:block}.table-mobile-md thead{display:none}.table-mobile-md tbody,.table-mobile-md tr{display:flex;flex-direction:column}.table-mobile-md td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-md td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-md tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-md .btn{display:block}}@media (max-width:991.98px){.table-mobile-lg{display:block}.table-mobile-lg thead{display:none}.table-mobile-lg tbody,.table-mobile-lg tr{display:flex;flex-direction:column}.table-mobile-lg td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-lg td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-lg tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-lg .btn{display:block}}@media (max-width:1199.98px){.table-mobile-xl{display:block}.table-mobile-xl thead{display:none}.table-mobile-xl tbody,.table-mobile-xl tr{display:flex;flex-direction:column}.table-mobile-xl td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-xl td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-xl tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-xl .btn{display:block}}@media (max-width:1399.98px){.table-mobile-xxl{display:block}.table-mobile-xxl thead{display:none}.table-mobile-xxl tbody,.table-mobile-xxl tr{display:flex;flex-direction:column}.table-mobile-xxl td{display:block;padding:.5rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-xxl td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-xxl tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-xxl .btn{display:block}}.table-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;border:0;background:inherit;display:block;width:100%;text-align:inherit;transition:color .3s;margin:-.5rem -.5rem;padding:.5rem .5rem}@media (prefers-reduced-motion:reduce){.table-sort{transition:none}}.table-sort.asc,.table-sort.desc,.table-sort:hover{color:#1e293b}.table-sort.asc:after,.table-sort.desc:after,.table-sort:after{content:"";display:inline-flex;width:1rem;height:1rem;vertical-align:bottom;background:url("data:image/svg+xml,") no-repeat center;opacity:.2}.table-sort.asc:after{background:url("data:image/svg+xml,") no-repeat center;opacity:1}.table-sort.desc:after{background:url("data:image/svg+xml,") no-repeat center;opacity:1}.toast{background:#fff;border:1px solid rgba(98,105,118,.16);border-right:.25rem solid var(--tblr-toast-color);box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.toast .toast-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.toast button[data-bs-dismiss=toast]{outline:0}.toast-primary{--tblr-toast-color:#206bc4}.toast-secondary{--tblr-toast-color:#626976}.toast-success{--tblr-toast-color:#2fb344}.toast-info{--tblr-toast-color:#4299e1}.toast-warning{--tblr-toast-color:#f76707}.toast-danger{--tblr-toast-color:#d63939}.toast-light{--tblr-toast-color:#fafbfc}.toast-dark{--tblr-toast-color:#1e293b}.toast-muted{--tblr-toast-color:#626976}.toolbar{display:flex;flex-wrap:nowrap;flex-shrink:0;margin:0 -.5rem}.toolbar>*{margin:0 .5rem}.hr-text{display:flex;align-items:center;margin:2rem 0;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;height:1px}.hr-text:after,.hr-text:before{flex:1 1 auto;height:1px;background-color:currentColor;opacity:.16}.hr-text:before{content:"";margin-left:.5rem}.hr-text:after{content:"";margin-right:.5rem}.hr-text>:first-child{padding-left:.5rem;padding-right:0;color:#626976}.hr-text.hr-text-right:before{content:none}.hr-text.hr-text-left>:first-child{padding-left:.5rem;padding-right:.5rem}.hr-text.hr-text-left:before{content:""}.hr-text.hr-text-left:after{content:none}.hr-text.hr-text-right>:first-child{padding-left:0;padding-right:.5rem}.card>.hr-text{margin:0}.hr-text-spaceless{margin:-.5rem 0}.lead{line-height:1.4}a{-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.h1 a,.h2 a,.h3 a,.h4 a,.h5 a,.h6 a,h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit}.h1 a:hover,.h2 a:hover,.h3 a:hover,.h4 a:hover,.h5 a:hover,.h6 a:hover,h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{color:inherit}.h1,h1{line-height:1.3333333333}.h2,h2{line-height:1.4}.h3,h3{line-height:1.5}.h4,h4{line-height:1.4285714286}.h5,h5{line-height:1.3333333333}.h6,h6{line-height:1.6}.strong,b,strong{font-weight:600}blockquote{padding-right:1rem;border-right:2px solid #e6e7e9}blockquote p{margin-bottom:1rem}blockquote cite{display:block;text-align:left}blockquote cite:before{content:"— "}ol,ul{padding-right:1.5rem}.hr,hr{margin:2rem 0}dl dd:last-child{margin-bottom:0}code{padding:2px 4px;background:rgba(75,84,98,.03);border:1px solid rgba(75,84,98,.064);border-radius:4px;font-weight:400}pre{padding:1rem;overflow:auto;font-size:.75rem;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.25rem;-moz-tab-size:3;-o-tab-size:3;tab-size:3;border-radius:4px;white-space:pre-wrap;background:#fdfdfe;border:1px solid rgba(98,105,118,.16);-webkit-font-smoothing:auto}pre code{padding:0;background:0 0;border:none;border-radius:0}img{max-width:100%}.list-unstyled{margin-right:0}::-moz-selection{color:#fff;background-color:#307fdd}::selection{color:#fff;background-color:#307fdd}[class*=" link-"].disabled,[class^=link-].disabled{color:#475569;pointer-events:none}.subheader{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976}.chart{display:block;min-height:10rem}.chart text{font-family:inherit}.chart-sm{height:2.5rem}.chart-lg{height:15rem}.chart-square{height:5.75rem}.chart-sparkline{position:relative;width:4rem;height:2.5rem;line-height:1;min-height:0!important}.chart-sparkline-sm{height:1.5rem}.chart-sparkline-square{width:2.5rem}.chart-sparkline-wide{width:6rem}.chart-sparkline-label{position:absolute;top:0;left:0;bottom:0;right:0;display:flex;align-items:center;justify-content:center;font-size:.625rem}.chart-sparkline-label .icon{width:1rem;height:1rem;font-size:1rem}.offcanvas{background:var(--tblr-card-bg)}.offcanvas-header{border-bottom:1px solid rgba(98,105,118,.16)}.offcanvas-footer{padding:1.5rem 1.5rem}.offcanvas-title{font-size:1rem;font-weight:500;line-height:1.5rem}.offcanvas-narrow{width:20rem}.bg-white-overlay{color:#fff;background-color:rgba(250,251,252,.24)}.bg-dark-overlay{color:#fff;background-color:rgba(30,41,59,.24)}.bg-cover{background-repeat:no-repeat;background-size:cover;background-position:center}.bg-primary{color:#fff!important;background:#206bc4!important}.text-primary{color:#206bc4!important}.bg-primary-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.bg-secondary{color:#fff!important;background:#626976!important}.text-secondary{color:#626976!important}.bg-secondary-lt{color:#626976!important;background:rgba(98,105,118,.05)!important}.bg-success{color:#fff!important;background:#2fb344!important}.text-success{color:#2fb344!important}.bg-success-lt{color:#2fb344!important;background:rgba(47,179,68,.05)!important}.bg-info{color:#fff!important;background:#4299e1!important}.text-info{color:#4299e1!important}.bg-info-lt{color:#4299e1!important;background:rgba(66,153,225,.05)!important}.bg-warning{color:#fff!important;background:#f76707!important}.text-warning{color:#f76707!important}.bg-warning-lt{color:#f76707!important;background:rgba(247,103,7,.05)!important}.bg-danger{color:#fff!important;background:#d63939!important}.text-danger{color:#d63939!important}.bg-danger-lt{color:#d63939!important;background:rgba(214,57,57,.05)!important}.bg-light{color:#fff!important;background:#fafbfc!important}.text-light{color:#fafbfc!important}.bg-light-lt{color:#fafbfc!important;background:rgba(250,251,252,.05)!important}.bg-dark{color:#fff!important;background:#1e293b!important}.text-dark{color:#1e293b!important}.bg-dark-lt{color:#1e293b!important;background:rgba(30,41,59,.05)!important}.bg-muted{color:#fff!important;background:#626976!important}.text-muted{color:#626976!important}.bg-muted-lt{color:#626976!important;background:rgba(98,105,118,.05)!important}.bg-blue{color:#fff!important;background:#206bc4!important}.text-blue{color:#206bc4!important}.bg-blue-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.bg-azure{color:#fff!important;background:#4299e1!important}.text-azure{color:#4299e1!important}.bg-azure-lt{color:#4299e1!important;background:rgba(66,153,225,.05)!important}.bg-indigo{color:#fff!important;background:#4263eb!important}.text-indigo{color:#4263eb!important}.bg-indigo-lt{color:#4263eb!important;background:rgba(66,99,235,.05)!important}.bg-purple{color:#fff!important;background:#ae3ec9!important}.text-purple{color:#ae3ec9!important}.bg-purple-lt{color:#ae3ec9!important;background:rgba(174,62,201,.05)!important}.bg-pink{color:#fff!important;background:#d6336c!important}.text-pink{color:#d6336c!important}.bg-pink-lt{color:#d6336c!important;background:rgba(214,51,108,.05)!important}.bg-red{color:#fff!important;background:#d63939!important}.text-red{color:#d63939!important}.bg-red-lt{color:#d63939!important;background:rgba(214,57,57,.05)!important}.bg-orange{color:#fff!important;background:#f76707!important}.text-orange{color:#f76707!important}.bg-orange-lt{color:#f76707!important;background:rgba(247,103,7,.05)!important}.bg-yellow{color:#fff!important;background:#f59f00!important}.text-yellow{color:#f59f00!important}.bg-yellow-lt{color:#f59f00!important;background:rgba(245,159,0,.05)!important}.bg-lime{color:#fff!important;background:#74b816!important}.text-lime{color:#74b816!important}.bg-lime-lt{color:#74b816!important;background:rgba(116,184,22,.05)!important}.bg-green{color:#fff!important;background:#2fb344!important}.text-green{color:#2fb344!important}.bg-green-lt{color:#2fb344!important;background:rgba(47,179,68,.05)!important}.bg-teal{color:#fff!important;background:#0ca678!important}.text-teal{color:#0ca678!important}.bg-teal-lt{color:#0ca678!important;background:rgba(12,166,120,.05)!important}.bg-cyan{color:#fff!important;background:#17a2b8!important}.text-cyan{color:#17a2b8!important}.bg-cyan-lt{color:#17a2b8!important;background:rgba(23,162,184,.05)!important}.bg-facebook{color:#fff!important;background:#3b5998!important}.text-facebook{color:#3b5998!important}.bg-facebook-lt{color:#3b5998!important;background:rgba(59,89,152,.05)!important}.bg-twitter{color:#fff!important;background:#1da1f2!important}.text-twitter{color:#1da1f2!important}.bg-twitter-lt{color:#1da1f2!important;background:rgba(29,161,242,.05)!important}.bg-linkedin{color:#fff!important;background:#0a66c2!important}.text-linkedin{color:#0a66c2!important}.bg-linkedin-lt{color:#0a66c2!important;background:rgba(10,102,194,.05)!important}.bg-google{color:#fff!important;background:#dc4e41!important}.text-google{color:#dc4e41!important}.bg-google-lt{color:#dc4e41!important;background:rgba(220,78,65,.05)!important}.bg-youtube{color:#fff!important;background:red!important}.text-youtube{color:red!important}.bg-youtube-lt{color:red!important;background:rgba(255,0,0,.05)!important}.bg-vimeo{color:#fff!important;background:#1ab7ea!important}.text-vimeo{color:#1ab7ea!important}.bg-vimeo-lt{color:#1ab7ea!important;background:rgba(26,183,234,.05)!important}.bg-dribbble{color:#fff!important;background:#ea4c89!important}.text-dribbble{color:#ea4c89!important}.bg-dribbble-lt{color:#ea4c89!important;background:rgba(234,76,137,.05)!important}.bg-github{color:#fff!important;background:#181717!important}.text-github{color:#181717!important}.bg-github-lt{color:#181717!important;background:rgba(24,23,23,.05)!important}.bg-instagram{color:#fff!important;background:#e4405f!important}.text-instagram{color:#e4405f!important}.bg-instagram-lt{color:#e4405f!important;background:rgba(228,64,95,.05)!important}.bg-pinterest{color:#fff!important;background:#bd081c!important}.text-pinterest{color:#bd081c!important}.bg-pinterest-lt{color:#bd081c!important;background:rgba(189,8,28,.05)!important}.bg-vk{color:#fff!important;background:#6383a8!important}.text-vk{color:#6383a8!important}.bg-vk-lt{color:#6383a8!important;background:rgba(99,131,168,.05)!important}.bg-rss{color:#fff!important;background:orange!important}.text-rss{color:orange!important}.bg-rss-lt{color:orange!important;background:rgba(255,165,0,.05)!important}.bg-flickr{color:#fff!important;background:#0063dc!important}.text-flickr{color:#0063dc!important}.bg-flickr-lt{color:#0063dc!important;background:rgba(0,99,220,.05)!important}.bg-bitbucket{color:#fff!important;background:#0052cc!important}.text-bitbucket{color:#0052cc!important}.bg-bitbucket-lt{color:#0052cc!important;background:rgba(0,82,204,.05)!important}.bg-tabler{color:#fff!important;background:#206bc4!important}.text-tabler{color:#206bc4!important}.bg-tabler-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.scrollable{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.hover{overflow-y:hidden}.scrollable.hover>*{margin-top:-1px}.scrollable.hover:active,.scrollable.hover:focus,.scrollable.hover:hover{overflow:visible;overflow-y:auto}.touch .scrollable{overflow-y:auto!important}.scroll-x,.scroll-y{overflow:hidden;-webkit-overflow-scrolling:touch}.scroll-y{overflow-y:auto}.scroll-x{overflow-x:auto}.no-scroll{overflow:hidden}.w-0{width:0!important}.h-0{height:0!important}.w-1{width:.25rem!important}.h-1{height:.25rem!important}.w-2{width:.5rem!important}.h-2{height:.5rem!important}.w-3{width:1rem!important}.h-3{height:1rem!important}.w-4{width:2rem!important}.h-4{height:2rem!important}.w-5{width:4rem!important}.h-5{height:4rem!important}.w-auto{width:auto!important}.h-auto{height:auto!important}.w-px{width:1px!important}.h-px{height:1px!important}.w-full{width:100%!important}.h-full{height:100%!important}.opacity-0{opacity:0!important}.opacity-5{opacity:.05!important}.opacity-10{opacity:.1!important}.opacity-15{opacity:.15!important}.opacity-20{opacity:.2!important}.opacity-25{opacity:.25!important}.opacity-30{opacity:.3!important}.opacity-35{opacity:.35!important}.opacity-40{opacity:.4!important}.opacity-45{opacity:.45!important}.opacity-50{opacity:.5!important}.opacity-55{opacity:.55!important}.opacity-60{opacity:.6!important}.opacity-65{opacity:.65!important}.opacity-70{opacity:.7!important}.opacity-75{opacity:.75!important}.opacity-80{opacity:.8!important}.opacity-85{opacity:.85!important}.opacity-90{opacity:.9!important}.opacity-95{opacity:.95!important}.opacity-100{opacity:1!important}.hover-shadow-sm:hover{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.hover-shadow:hover{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.hover-shadow-lg:hover{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.hover-shadow-none:hover{box-shadow:none!important}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto} \ No newline at end of file + */body:not(.theme-dark) .hide-theme-light{display:none!important}@media not print{.theme-dark{--tblr-body-color:#fafbfc;--tblr-body-color-rgb:250,251,252;--tblr-body-bg:#1b2434;--tblr-body-bg-rgb:27,36,52;--tblr-card-bg:#1e293b;--tblr-card-bg-rgb:30,41,59;--tblr-border-color:#2c3c56;--tblr-border-color-light:#253249;--tblr-btn-color:#1e293b;color:#fafbfc;background-color:#1b2434}.theme-dark .page{color:#fafbfc}.theme-dark .hide-theme-dark{display:none!important}.theme-dark .text-body{color:#fafbfc!important}.theme-dark .alert:not(.alert-important),.theme-dark .card,.theme-dark .card-footer,.theme-dark .card-stacked::after,.theme-dark .dropdown-menu,.theme-dark .footer:not(.footer-transparent),.theme-dark .modal-content,.theme-dark .modal-header,.theme-dark .toast,.theme-dark .toast-header{background-color:#1e293b;color:inherit}.theme-dark .bg-light{background-color:#1b2434!important}.theme-dark .card{border-color:transparent}.theme-dark .card-tabs .nav-tabs .nav-link{background-color:#1b2434;color:inherit}.theme-dark pre{background-color:#1b2434;border-color:#2c3c56}.theme-dark .card-tabs .nav-tabs .nav-link.active{background-color:#1e293b;color:inherit}.theme-dark .btn-white,.theme-dark .form-file-button{background-image:none}.theme-dark .form-check-input:not(:checked),.theme-dark .form-control,.theme-dark .form-file-text,.theme-dark .form-imagecheck-figure:before,.theme-dark .form-select,.theme-dark .form-selectgroup-check,.theme-dark .form-selectgroup-label{background-color:#1b2434;color:#fafbfc;border-color:#2c3c56}.theme-dark .form-control-plaintext{color:#fafbfc}.theme-dark .input-group-flat .input-group-text{background-color:#1b2434}.theme-dark .input-group-text{border-color:#2c3c56}.theme-dark .highlight{background-color:#1b2434}.theme-dark .avatar{--tblr-avatar-bg:#212e42}.theme-dark .avatar-list-stacked .avatar{box-shadow:0 0 0 2px #1e293b}.theme-dark .accordion-button,.theme-dark .markdown,.theme-dark .markdown>*{color:inherit}.theme-dark .accordion-button:after,.theme-dark .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}.theme-dark .apexcharts-text{fill:#fafbfc}.theme-dark .apexcharts-gridline{stroke:var(--tblr-border-color)}.theme-dark .apexcharts-legend-text{color:inherit!important}.theme-dark .apexcharts-tooltip{background:#1e293b!important;border:1px solid #2c3c56!important;box-shadow:-2px 2px 6px -4px #1b2434!important}.theme-dark .apexcharts-tooltip .apexcharts-tooltip-title{background:#1e293b!important;border-bottom:1px solid #2c3c56!important}.theme-dark .navbar-brand-autodark{filter:brightness(0) invert(1)}.theme-dark .input-group-text,.theme-dark .markdown>table thead th,.theme-dark .table thead th{background:0 0}.theme-dark .list-group-header{background:#1b2434}.theme-dark .list-group-item{border-color:rgba(98,105,118,.16)}.theme-dark .list-group-item:not(.disabled):not(:disabled){color:#fafbfc}.theme-dark .list-group-item.disabled,.theme-dark .list-group-item:disabled{color:#475569}.theme-dark .apexcharts-radialbar-area{stroke:#2c3c56}.theme-dark .form-control.is-invalid,.theme-dark .was-validated .form-control:invalid{border-color:var(--tblr-danger)}.theme-dark .form-control.is-valid,.theme-dark .was-validated .form-control:valid{border-color:var(--tblr-success)}}@media not print{@media (prefers-color-scheme:dark){.theme-dark-auto{--tblr-body-color:#fafbfc;--tblr-body-color-rgb:250,251,252;--tblr-body-bg:#1b2434;--tblr-body-bg-rgb:27,36,52;--tblr-card-bg:#1e293b;--tblr-card-bg-rgb:30,41,59;--tblr-border-color:#2c3c56;--tblr-border-color-light:#253249;--tblr-btn-color:#1e293b;color:#fafbfc;background-color:#1b2434}.theme-dark-auto .page{color:#fafbfc}.theme-dark-auto .hide-theme-dark{display:none!important}.theme-dark-auto .text-body{color:#fafbfc!important}.theme-dark-auto .alert:not(.alert-important),.theme-dark-auto .card,.theme-dark-auto .card-footer,.theme-dark-auto .card-stacked::after,.theme-dark-auto .dropdown-menu,.theme-dark-auto .footer:not(.footer-transparent),.theme-dark-auto .modal-content,.theme-dark-auto .modal-header,.theme-dark-auto .toast,.theme-dark-auto .toast-header{background-color:#1e293b;color:inherit}.theme-dark-auto .bg-light{background-color:#1b2434!important}.theme-dark-auto .card{border-color:transparent}.theme-dark-auto .card-tabs .nav-tabs .nav-link{background-color:#1b2434;color:inherit}.theme-dark-auto pre{background-color:#1b2434;border-color:#2c3c56}.theme-dark-auto .card-tabs .nav-tabs .nav-link.active{background-color:#1e293b;color:inherit}.theme-dark-auto .btn-white,.theme-dark-auto .form-file-button{background-image:none}.theme-dark-auto .form-check-input:not(:checked),.theme-dark-auto .form-control,.theme-dark-auto .form-file-text,.theme-dark-auto .form-imagecheck-figure:before,.theme-dark-auto .form-select,.theme-dark-auto .form-selectgroup-check,.theme-dark-auto .form-selectgroup-label{background-color:#1b2434;color:#fafbfc;border-color:#2c3c56}.theme-dark-auto .form-control-plaintext{color:#fafbfc}.theme-dark-auto .input-group-flat .input-group-text{background-color:#1b2434}.theme-dark-auto .input-group-text{border-color:#2c3c56}.theme-dark-auto .highlight{background-color:#1b2434}.theme-dark-auto .avatar{--tblr-avatar-bg:#212e42}.theme-dark-auto .avatar-list-stacked .avatar{box-shadow:0 0 0 2px #1e293b}.theme-dark-auto .accordion-button,.theme-dark-auto .markdown,.theme-dark-auto .markdown>*{color:inherit}.theme-dark-auto .accordion-button:after,.theme-dark-auto .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}.theme-dark-auto .apexcharts-text{fill:#fafbfc}.theme-dark-auto .apexcharts-gridline{stroke:var(--tblr-border-color)}.theme-dark-auto .apexcharts-legend-text{color:inherit!important}.theme-dark-auto .apexcharts-tooltip{background:#1e293b!important;border:1px solid #2c3c56!important;box-shadow:-2px 2px 6px -4px #1b2434!important}.theme-dark-auto .apexcharts-tooltip .apexcharts-tooltip-title{background:#1e293b!important;border-bottom:1px solid #2c3c56!important}.theme-dark-auto .navbar-brand-autodark{filter:brightness(0) invert(1)}.theme-dark-auto .input-group-text,.theme-dark-auto .markdown>table thead th,.theme-dark-auto .table thead th{background:0 0}.theme-dark-auto .list-group-header{background:#1b2434}.theme-dark-auto .list-group-item{border-color:rgba(98,105,118,.16)}.theme-dark-auto .list-group-item:not(.disabled):not(:disabled){color:#fafbfc}.theme-dark-auto .list-group-item.disabled,.theme-dark-auto .list-group-item:disabled{color:#475569}.theme-dark-auto .apexcharts-radialbar-area{stroke:#2c3c56}.theme-dark-auto .form-control.is-invalid,.theme-dark-auto .was-validated .form-control:invalid{border-color:var(--tblr-danger)}.theme-dark-auto .form-control.is-valid,.theme-dark-auto .was-validated .form-control:valid{border-color:var(--tblr-success)}}}.accordion{--tblr-accordion-color:var(--tblr-body-color)}.accordion-button:focus:not(:focus-visible){outline:0;box-shadow:none}.accordion-button:after{opacity:.7}.accordion-button:not(.collapsed){font-weight:600;border-bottom-color:transparent;box-shadow:none}.accordion-button:not(.collapsed):after{opacity:1}.alert{--tblr-alert-color:#626976;background:#fff;border:1px solid rgba(98,105,118,.16);border-right:.25rem solid var(--tblr-alert-color);box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.alert>:last-child{margin-bottom:0}.alert-important{border-color:transparent;background:var(--tblr-alert-color);color:#fff}.alert-important .alert-icon,.alert-important .alert-link{color:inherit}.alert-important .alert-link:hover{color:inherit}.alert-link,.alert-link:hover{color:var(--tblr-alert-color)}.alert-primary{--tblr-alert-color:#206bc4}.alert-secondary{--tblr-alert-color:#626976}.alert-success{--tblr-alert-color:#2fb344}.alert-info{--tblr-alert-color:#4299e1}.alert-warning{--tblr-alert-color:#f76707}.alert-danger{--tblr-alert-color:#d63939}.alert-light{--tblr-alert-color:#fafbfc}.alert-dark{--tblr-alert-color:#1e293b}.alert-muted{--tblr-alert-color:#626976}.alert-blue{--tblr-alert-color:#206bc4}.alert-azure{--tblr-alert-color:#4299e1}.alert-indigo{--tblr-alert-color:#4263eb}.alert-purple{--tblr-alert-color:#ae3ec9}.alert-pink{--tblr-alert-color:#d6336c}.alert-red{--tblr-alert-color:#d63939}.alert-orange{--tblr-alert-color:#f76707}.alert-yellow{--tblr-alert-color:#f59f00}.alert-lime{--tblr-alert-color:#74b816}.alert-green{--tblr-alert-color:#2fb344}.alert-teal{--tblr-alert-color:#0ca678}.alert-cyan{--tblr-alert-color:#17a2b8}.alert-facebook{--tblr-alert-color:#3b5998}.alert-twitter{--tblr-alert-color:#1da1f2}.alert-linkedin{--tblr-alert-color:#0a66c2}.alert-google{--tblr-alert-color:#dc4e41}.alert-youtube{--tblr-alert-color:#ff0000}.alert-vimeo{--tblr-alert-color:#1ab7ea}.alert-dribbble{--tblr-alert-color:#ea4c89}.alert-github{--tblr-alert-color:#181717}.alert-instagram{--tblr-alert-color:#e4405f}.alert-pinterest{--tblr-alert-color:#bd081c}.alert-vk{--tblr-alert-color:#6383a8}.alert-rss{--tblr-alert-color:#ffa500}.alert-flickr{--tblr-alert-color:#0063dc}.alert-bitbucket{--tblr-alert-color:#0052cc}.alert-tabler{--tblr-alert-color:#206bc4}.alert-icon{color:var(--tblr-alert-color);width:1.5rem!important;height:1.5rem!important;margin:-.125rem 0 -.125rem 1rem}.alert-title{font-size:.875rem;line-height:1.4285714286;font-weight:600;margin-bottom:.25rem;color:var(--tblr-alert-color)}.avatar{--tblr-avatar-size:2.5rem;--tblr-avatar-bg:var(--tblr-border-color-light);position:relative;width:var(--tblr-avatar-size);height:var(--tblr-avatar-size);font-size:calc(var(--tblr-avatar-size)/ 2.8571428572);font-weight:500;display:inline-flex;align-items:center;justify-content:center;color:#626976;text-align:center;text-transform:uppercase;vertical-align:bottom;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--tblr-avatar-bg) no-repeat center/cover;border-radius:4px}.avatar svg{width:calc(var(--tblr-avatar-size)/ 1.6666666667);height:calc(var(--tblr-avatar-size)/ 1.6666666667)}.avatar .badge{position:absolute;left:0;bottom:0;border-radius:100rem;box-shadow:0 0 0 2px #fff}a.avatar{cursor:pointer}.avatar-rounded{border-radius:100rem}.avatar-xs{--tblr-avatar-size:1.5rem}.avatar-xs .badge:empty{width:.375rem;height:.375rem}.avatar-sm{--tblr-avatar-size:2rem}.avatar-sm .badge:empty{width:.5rem;height:.5rem}.avatar-md{--tblr-avatar-size:3.75rem}.avatar-md .badge:empty{width:.9375rem;height:.9375rem}.avatar-lg{--tblr-avatar-size:5rem}.avatar-lg .badge:empty{width:1.25rem;height:1.25rem}.avatar-xl{--tblr-avatar-size:7rem}.avatar-xl .badge:empty{width:1.75rem;height:1.75rem}.avatar-2xl{--tblr-avatar-size:11rem}.avatar-2xl .badge:empty{width:2.75rem;height:2.75rem}.avatar-list{display:inline-flex;padding:0;margin:0 0 -.5rem;flex-wrap:wrap}.avatar-list .avatar{margin-bottom:.5rem}.avatar-list .avatar:not(:last-child){margin-left:.5rem}.avatar-list a.avatar:hover{z-index:1}.avatar-list-stacked .avatar{margin-left:-.5rem!important;box-shadow:0 0 0 2px var(--tblr-card-bg)}.avatar-upload{width:4rem;height:4rem;border:1px dashed #e6e7e9;background:#fff;flex-direction:column;transition:color .3s,background-color .3s}@media (prefers-reduced-motion:reduce){.avatar-upload{transition:none}}.avatar-upload svg{width:1.5rem;height:1.5rem;stroke-width:1}.avatar-upload:hover{border-color:#206bc4;color:#206bc4;text-decoration:none}.avatar-upload-text{font-size:.625rem;line-height:1;margin-top:.25rem}.page-cover~* .page-avatar{margin-top:calc(calc(-1 * calc(var(--tblr-avatar-size) * .5)) - 1.25rem);box-shadow:0 0 0 .25rem #f5f7fb}.badge{justify-content:center;align-items:center;background:#64748b;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;min-width:1.3571428571em;font-weight:600;letter-spacing:.04em;vertical-align:bottom}a.badge{color:#fff}.badge:empty{display:inline-block;width:.5rem;height:.5rem;min-width:0;min-height:auto;padding:0;border-radius:100rem;vertical-align:baseline}.badge .avatar{box-sizing:content-box;width:1.25rem;height:1.25rem;margin:0 -.5rem 0 .5rem}.badge .icon{width:1em;height:1em;font-size:1rem;stroke-width:2}.badge-sm{font-size:.625rem;line-height:1.6;padding:0 .25rem}.badge-outline{background-color:transparent;border:1px solid currentColor}.badge-pill{border-radius:100rem}.breadcrumb{padding:0;margin:0;background:0 0}.breadcrumb a{color:#626976}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-item.active a{color:inherit;pointer-events:none}.breadcrumb-dots{--tblr-breadcrumb-divider:"·"}.breadcrumb-arrows{--tblr-breadcrumb-divider:"›"}.breadcrumb-bullets{--tblr-breadcrumb-divider:"•"}.btn{--tblr-btn-icon-size:1.25rem;--tblr-btn-color:var(--tblr-color-text);--tblr-btn-border-color:var(--tblr-border-color);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.btn .icon{width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);min-width:var(--tblr-btn-icon-size);margin:0 calc(var(--tblr-btn-padding-x)/ -4) 0 calc(var(--tblr-btn-padding-x)/ 2);vertical-align:bottom;color:inherit}.btn .avatar{width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);margin:0 calc(var(--tblr-btn-padding-x)/ -4) 0 calc(var(--tblr-btn-padding-x)/ 2)}.btn .icon-right{margin:0 calc(var(--tblr-btn-padding-x)/ 2) 0 calc(var(--tblr-btn-padding-x)/ -4)}.btn .badge{top:auto}.btn-link{color:#206bc4;background-color:transparent;border-color:transparent}.btn-link .icon{color:inherit}.btn-link:hover{color:#1a569d;border-color:transparent}.btn-white{--tblr-btn-bg:var(--tblr-card-bg);--tblr-btn-hover-bg:var(--tblr-card-bg)}.btn-primary{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-secondary{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-success{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-info{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-warning{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-danger{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-light{--tblr-btn-border-color:transparent;--tblr-btn-color:#1e293b}.btn-dark{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-muted{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-blue{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-azure{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-indigo{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-purple{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-pink{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-red{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-orange{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-yellow{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-lime{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-green{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-teal{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-cyan{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-facebook{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-twitter{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-linkedin{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-google{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-youtube{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-vimeo{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-dribbble{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-github{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-instagram{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-pinterest{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-vk{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-rss{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-flickr{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-bitbucket{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-tabler{--tblr-btn-border-color:transparent;--tblr-btn-color:#fafbfc}.btn-ghost-primary{--tblr-btn-color:#206bc4;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-secondary{--tblr-btn-color:#626976;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#626976;--tblr-btn-hover-border-color:#626976;--tblr-btn-focus-shadow-rgb:98,105,118;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#626976;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#626976;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-success{--tblr-btn-color:#2fb344;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#2fb344;--tblr-btn-hover-border-color:#2fb344;--tblr-btn-focus-shadow-rgb:47,179,68;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2fb344;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#2fb344;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-info{--tblr-btn-color:#4299e1;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4299e1;--tblr-btn-hover-border-color:#4299e1;--tblr-btn-focus-shadow-rgb:66,153,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4299e1;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4299e1;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-warning{--tblr-btn-color:#f76707;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f76707;--tblr-btn-hover-border-color:#f76707;--tblr-btn-focus-shadow-rgb:247,103,7;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f76707;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f76707;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-danger{--tblr-btn-color:#d63939;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d63939;--tblr-btn-hover-border-color:#d63939;--tblr-btn-focus-shadow-rgb:214,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d63939;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d63939;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-light{--tblr-btn-color:#fafbfc;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#1e293b;--tblr-btn-hover-bg:#fafbfc;--tblr-btn-hover-border-color:#fafbfc;--tblr-btn-focus-shadow-rgb:250,251,252;--tblr-btn-active-color:#1e293b;--tblr-btn-active-bg:#fafbfc;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#fafbfc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-dark{--tblr-btn-color:#1e293b;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1e293b;--tblr-btn-hover-border-color:#1e293b;--tblr-btn-focus-shadow-rgb:30,41,59;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1e293b;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1e293b;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-muted{--tblr-btn-color:#626976;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#626976;--tblr-btn-hover-border-color:#626976;--tblr-btn-focus-shadow-rgb:98,105,118;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#626976;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#626976;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-blue{--tblr-btn-color:#206bc4;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-azure{--tblr-btn-color:#4299e1;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4299e1;--tblr-btn-hover-border-color:#4299e1;--tblr-btn-focus-shadow-rgb:66,153,225;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4299e1;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4299e1;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-indigo{--tblr-btn-color:#4263eb;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#4263eb;--tblr-btn-hover-border-color:#4263eb;--tblr-btn-focus-shadow-rgb:66,99,235;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#4263eb;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#4263eb;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-purple{--tblr-btn-color:#ae3ec9;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ae3ec9;--tblr-btn-hover-border-color:#ae3ec9;--tblr-btn-focus-shadow-rgb:174,62,201;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ae3ec9;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ae3ec9;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-pink{--tblr-btn-color:#d6336c;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d6336c;--tblr-btn-hover-border-color:#d6336c;--tblr-btn-focus-shadow-rgb:214,51,108;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d6336c;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d6336c;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-red{--tblr-btn-color:#d63939;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#d63939;--tblr-btn-hover-border-color:#d63939;--tblr-btn-focus-shadow-rgb:214,57,57;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#d63939;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#d63939;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-orange{--tblr-btn-color:#f76707;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f76707;--tblr-btn-hover-border-color:#f76707;--tblr-btn-focus-shadow-rgb:247,103,7;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f76707;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f76707;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-yellow{--tblr-btn-color:#f59f00;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#f59f00;--tblr-btn-hover-border-color:#f59f00;--tblr-btn-focus-shadow-rgb:245,159,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#f59f00;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#f59f00;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-lime{--tblr-btn-color:#74b816;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#74b816;--tblr-btn-hover-border-color:#74b816;--tblr-btn-focus-shadow-rgb:116,184,22;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#74b816;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#74b816;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-green{--tblr-btn-color:#2fb344;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#2fb344;--tblr-btn-hover-border-color:#2fb344;--tblr-btn-focus-shadow-rgb:47,179,68;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#2fb344;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#2fb344;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-teal{--tblr-btn-color:#0ca678;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0ca678;--tblr-btn-hover-border-color:#0ca678;--tblr-btn-focus-shadow-rgb:12,166,120;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0ca678;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0ca678;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-cyan{--tblr-btn-color:#17a2b8;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#17a2b8;--tblr-btn-hover-border-color:#17a2b8;--tblr-btn-focus-shadow-rgb:23,162,184;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#17a2b8;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#17a2b8;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-facebook{--tblr-btn-color:#3b5998;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#3b5998;--tblr-btn-hover-border-color:#3b5998;--tblr-btn-focus-shadow-rgb:59,89,152;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#3b5998;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#3b5998;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-twitter{--tblr-btn-color:#1da1f2;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1da1f2;--tblr-btn-hover-border-color:#1da1f2;--tblr-btn-focus-shadow-rgb:29,161,242;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1da1f2;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1da1f2;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-linkedin{--tblr-btn-color:#0a66c2;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0a66c2;--tblr-btn-hover-border-color:#0a66c2;--tblr-btn-focus-shadow-rgb:10,102,194;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0a66c2;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0a66c2;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-google{--tblr-btn-color:#dc4e41;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#dc4e41;--tblr-btn-hover-border-color:#dc4e41;--tblr-btn-focus-shadow-rgb:220,78,65;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#dc4e41;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#dc4e41;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-youtube{--tblr-btn-color:#ff0000;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ff0000;--tblr-btn-hover-border-color:#ff0000;--tblr-btn-focus-shadow-rgb:255,0,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ff0000;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ff0000;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-vimeo{--tblr-btn-color:#1ab7ea;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#1ab7ea;--tblr-btn-hover-border-color:#1ab7ea;--tblr-btn-focus-shadow-rgb:26,183,234;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#1ab7ea;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#1ab7ea;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-dribbble{--tblr-btn-color:#ea4c89;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ea4c89;--tblr-btn-hover-border-color:#ea4c89;--tblr-btn-focus-shadow-rgb:234,76,137;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ea4c89;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ea4c89;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-github{--tblr-btn-color:#181717;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#181717;--tblr-btn-hover-border-color:#181717;--tblr-btn-focus-shadow-rgb:24,23,23;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#181717;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#181717;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-instagram{--tblr-btn-color:#e4405f;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#e4405f;--tblr-btn-hover-border-color:#e4405f;--tblr-btn-focus-shadow-rgb:228,64,95;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#e4405f;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#e4405f;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-pinterest{--tblr-btn-color:#bd081c;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#bd081c;--tblr-btn-hover-border-color:#bd081c;--tblr-btn-focus-shadow-rgb:189,8,28;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#bd081c;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#bd081c;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-vk{--tblr-btn-color:#6383a8;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#6383a8;--tblr-btn-hover-border-color:#6383a8;--tblr-btn-focus-shadow-rgb:99,131,168;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#6383a8;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#6383a8;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-rss{--tblr-btn-color:#ffa500;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#ffa500;--tblr-btn-hover-border-color:#ffa500;--tblr-btn-focus-shadow-rgb:255,165,0;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#ffa500;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#ffa500;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-flickr{--tblr-btn-color:#0063dc;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0063dc;--tblr-btn-hover-border-color:#0063dc;--tblr-btn-focus-shadow-rgb:0,99,220;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0063dc;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0063dc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-bitbucket{--tblr-btn-color:#0052cc;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#0052cc;--tblr-btn-hover-border-color:#0052cc;--tblr-btn-focus-shadow-rgb:0,82,204;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#0052cc;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#0052cc;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-ghost-tabler{--tblr-btn-color:#206bc4;--tblr-btn-border-color:transparent;--tblr-btn-hover-color:#fafbfc;--tblr-btn-hover-bg:#206bc4;--tblr-btn-hover-border-color:#206bc4;--tblr-btn-focus-shadow-rgb:32,107,196;--tblr-btn-active-color:#fafbfc;--tblr-btn-active-bg:#206bc4;--tblr-btn-active-border-color:transparent;--tblr-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--tblr-btn-disabled-color:#206bc4;--tblr-btn-disabled-bg:transparent;--tblr-btn-disabled-border-color:transparent;--tblr-gradient:none}.btn-group-sm>.btn,.btn-sm{--tblr-btn-line-height:1.5;--tblr-btn-icon-size:.75rem}.btn-group-lg>.btn,.btn-lg{--tblr-btn-line-height:1.5;--tblr-btn-icon-size:2rem}.btn-pill{padding-left:1.5em;padding-right:1.5em;border-radius:10rem}.btn-pill[class*=btn-icon]{padding:.375rem 15px}.btn-square{border-radius:0}.btn-icon{min-width:calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2);min-height:calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2);padding-right:0;padding-left:0}.btn-icon .icon{margin:calc(-1 * var(--tblr-btn-padding-x))}.btn-list{display:flex;flex-wrap:wrap;margin-bottom:-.5rem!important;margin-left:-.5rem}.btn-list>*{margin:0 0 .5rem .5rem!important}.btn-floating{position:fixed;z-index:1030;bottom:1.5rem;left:1.5rem;border-radius:100rem}.btn-loading{position:relative;color:transparent!important;text-shadow:none!important;pointer-events:none}.btn-loading>*{opacity:0}.btn-loading:after{content:"";display:inline-block;vertical-align:text-bottom;border:2px solid currentColor;border-left-color:transparent;border-radius:100rem;color:var(--tblr-btn-color);position:absolute;width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);right:calc(50% - var(--tblr-btn-icon-size)/ 2);top:calc(50% - var(--tblr-btn-icon-size)/ 2);-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.btn-action{padding:0;border:0;color:#626976;display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:4px}.btn-action:after{content:none}.btn-action:focus{outline:0;box-shadow:none}.btn-action.show,.btn-action:hover{color:#1e293b;background:#f5f7fb}.btn-action.show{color:#206bc4}.btn-action .icon{margin:0;width:1.25rem;height:1.25rem;font-size:1.25rem;stroke-width:1}.btn-actions{display:flex}.calendar{display:block;font-size:.765625rem;border:1px solid #e6e7e9;border-radius:4px}.calendar-nav{display:flex;align-items:center}.calendar-title{flex:1;text-align:center}.calendar-body,.calendar-header{display:flex;flex-wrap:wrap;justify-content:flex-start;padding:.5rem 0}.calendar-header{color:#626976}.calendar-date{flex:0 0 14.2857142857%;max-width:14.2857142857%;padding:.2rem;text-align:center;border:0}.calendar-date.next-month,.calendar-date.prev-month{opacity:.25}.calendar-date .date-item{position:relative;display:inline-block;width:1.4rem;height:1.4rem;line-height:1.4rem;color:#66758c;text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;background:100% 0;border:1px solid transparent;border-radius:100rem;outline:0;transition:background .3s,border .3s,box-shadow .32s,color .3s}@media (prefers-reduced-motion:reduce){.calendar-date .date-item{transition:none}}.calendar-date .date-item:hover{color:#206bc4;text-decoration:none;background:#fefeff;border-color:#e6e7e9}.calendar-date .date-today{color:#206bc4;border-color:#e6e7e9}.calendar-range{position:relative}.calendar-range:before{position:absolute;top:50%;left:0;right:0;height:1.4rem;content:"";background:rgba(32,107,196,.1);transform:translateY(-50%)}.calendar-range.range-end .date-item,.calendar-range.range-start .date-item{color:#fff;background:#206bc4;border-color:#206bc4}.calendar-range.range-start:before{right:50%}.calendar-range.range-end:before{left:50%}.carousel-indicators-vertical{right:auto;top:0;margin:0 0 0 1rem;flex-direction:column}.carousel-indicators-vertical [data-bs-target]{margin:3px 0 3px;width:3px;height:30px;border:0;border-right:10px solid transparent;border-left:10px solid transparent}.carousel-indicators-dot [data-bs-target]{width:.5rem;height:.5rem;border-radius:100rem;border:10px solid transparent;margin:0}.carousel-indicators-thumb [data-bs-target]{width:2rem;height:auto;background:no-repeat center/cover;border:0;border-radius:4px;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0;margin:0 3px;opacity:.75}@media (min-width:992px){.carousel-indicators-thumb [data-bs-target]{width:4rem}}.carousel-indicators-thumb [data-bs-target]:before{content:"";padding-top:var(--tblr-aspect-ratio,100%);display:block}.carousel-indicators-thumb.carousel-indicators-vertical [data-bs-target]{margin:3px 0}.carousel-caption-background{background:red;position:absolute;right:0;left:0;bottom:0;height:90%;background:linear-gradient(0deg,rgba(30,41,59,.9),rgba(30,41,59,0))}.card{--tblr-card-border-radius:4px;box-shadow:rgba(30,41,59,.04) 0 2px 4px 0;border:1px solid rgba(98,105,118,.16);background:var(--tblr-card-bg,#fff);border-radius:var(--tblr-card-border-radius);transition:transform .3s ease-out,opacity .3s ease-out,box-shadow .3s ease-out}@media (prefers-reduced-motion:reduce){.card{transition:none}}@media print{.card{border:none;box-shadow:none}}a.card{color:inherit}a.card:hover{text-decoration:none;box-shadow:rgba(30,41,59,.16) 0 2px 16px 0}.card .card{box-shadow:none}.card-borderless,.card-borderless .card-footer,.card-borderless .card-header{border-color:transparent}.card-stamp{--stamp-size:7rem;position:absolute;top:0;left:0;width:calc(var(--stamp-size) * 1);height:calc(var(--stamp-size) * 1);max-height:100%;border-top-left-radius:4px;opacity:.2;overflow:hidden;pointer-events:none}.card-stamp-lg{--stamp-size:13rem}.card-stamp-icon{background:var(--tblr-muted);color:var(--tblr-card-bg);display:flex;align-items:center;justify-content:center;border-radius:100rem;width:calc(var(--stamp-size) * 1);height:calc(var(--stamp-size) * 1);position:relative;top:calc(var(--stamp-size) * -.25);left:calc(var(--stamp-size) * -.25);font-size:calc(var(--stamp-size) * .75);transform:rotate(-10deg)}.card-stamp-icon .icon{stroke-width:2;width:calc(var(--stamp-size) * .75);height:calc(var(--stamp-size) * .75)}.card-img,.card-img-start{border-top-right-radius:3px;border-bottom-right-radius:3px}.card-img,.card-img-end{border-top-left-radius:3px;border-bottom-left-radius:3px}.card-img-overlay{display:flex;flex-direction:column;justify-content:flex-end}.card-img-overlay-dark{background-image:linear-gradient(-180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%)}.card-inactive{pointer-events:none;box-shadow:none}.card-inactive .card-body{opacity:.64}.card-active{position:relative;background-color:rgba(32,107,196,.03);z-index:1}.card-active:before{position:absolute;top:-1px;left:-1px;bottom:-1px;right:-1px;content:"";border:1px solid #206bc4;border-radius:inherit}.card-btn{display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem;text-align:center;transition:background .3s;border-top:1px solid var(--tblr-border-color);flex:1;color:inherit;font-weight:500}@media (prefers-reduced-motion:reduce){.card-btn{transition:none}}.card-btn:hover{text-decoration:none;background:rgba(32,107,196,.04)}.card-btn+.card-btn{border-right:1px solid var(--tblr-border-color)}.card-stacked{position:relative}.card-stacked:after{position:absolute;top:-5px;left:5px;right:5px;height:5px;content:"";background:#fff;border:1px solid rgba(98,105,118,.16);border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-cover{position:relative;padding:1rem 1.25rem;background:#666 no-repeat center/cover}.card-cover:before{position:absolute;top:0;left:0;bottom:0;right:0;content:"";background:rgba(30,41,59,.48)}.card-cover:first-child,.card-cover:first-child:before{border-radius:4px 4px 0 0}.card-cover-blurred:before{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.card-actions{margin:-.5rem auto -.5rem -.5rem;padding-right:.5rem}.card-actions a{text-decoration:none}.card-header{color:inherit;display:flex;align-items:center;background:0 0}.card-header:first-child{border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-header-light{border-bottom-color:transparent;background:var(--tblr-light)}.card-header-tabs{flex:1;margin:-.5rem -.625rem -1rem}.card-header-pills{flex:1;margin-top:-.5rem;margin-bottom:-.5rem}.card-rotate-left{transform:rotate(1.5deg)}.card-rotate-right{transform:rotate(-1.5deg)}.card-link{color:inherit}.card-link:hover{color:inherit;text-decoration:none;box-shadow:0 1px 6px 0 rgba(0,0,0,.08)}.card-link-rotate:hover{transform:rotate(-1.5deg);opacity:1}.card-link-pop:hover{transform:translateY(-2px);opacity:1}.card-footer{margin-top:auto}.card-footer:last-child{border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-footer-transparent{background:0 0;border-color:transparent;padding-top:0}.card-progress{height:.25rem}.card-progress:last-child{border-radius:0 0 2px 2px}.card-progress:first-child{border-radius:2px 2px 0 0}.card-meta{color:#626976}.card-title{display:block;margin:0 0 1rem;font-size:1rem;font-weight:500;line-height:1.5rem}a.card-title:hover{color:inherit}.card-header .card-title{margin:0}.card-subtitle{margin-top:-.5rem;margin-bottom:1.25rem;color:#626976;font-weight:400}.card-header .card-subtitle{margin:0}.card-title .card-subtitle{margin:0 .25rem 0 0;font-size:.875rem}.card-body>:last-child{margin-bottom:0}.card-sm>.card-body{padding:1rem}@media (min-width:768px){.card-md>.card-body{padding:2.5rem}}@media (min-width:768px){.card-lg>.card-body{padding:2rem}}@media (min-width:992px){.card-lg>.card-body{padding:4rem}}@media print{.card-body{padding:0}}.card-body+.card-body{border-top:1px solid #e6e7e9}.card-body-scrollable{overflow:auto}.card-options{top:1.5rem;left:.75rem;display:flex;margin-right:auto}.card-options-link{display:inline-block;min-width:1rem;margin-right:.25rem;color:#626976}.card-status-top{position:absolute;top:0;left:0;right:0;height:2px;border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-status-start{position:absolute;left:auto;bottom:0;width:2px;height:100%;border-radius:0 var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0}.card-status-bottom{position:absolute;top:initial;bottom:0;width:100%;height:2px;border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-table{margin-bottom:0!important}.card-table tr td:first-child,.card-table tr th:first-child{padding-right:1.25rem;border-right:0}.card-table tr td:last-child,.card-table tr th:last-child{padding-left:1.25rem;border-left:0}.card-table tbody tr:first-child,.card-table tfoot tr:first-child,.card-table thead tr:first-child{border-top:0}.card-table tbody tr:first-child td,.card-table tbody tr:first-child th,.card-table tfoot tr:first-child td,.card-table tfoot tr:first-child th,.card-table thead tr:first-child td,.card-table thead tr:first-child th{border-top:0}.card-table tbody tr:last-child,.card-table tfoot tr:last-child,.card-table thead tr:last-child{border-bottom:0}.card-table tbody tr:last-child td,.card-table tbody tr:last-child th,.card-table tfoot tr:last-child td,.card-table tfoot tr:last-child th,.card-table thead tr:last-child td,.card-table thead tr:last-child th{border-bottom:0}.card-body+.card-table{border-top:1px solid #e6e7e9}.card-code{padding:0}.card-code .highlight{margin:0;border:0}.card-code pre{margin:0!important;border:0!important}.card-chart{position:relative;z-index:1;height:3.5rem}.card-avatar{margin-right:auto;margin-left:auto;box-shadow:0 0 0 .25rem #fff;margin-top:calc(-1 * var(--tblr-avatar-size) * .5)}.card-body+.card-list-group{border-top:1px solid #e6e7e9}.card-list-group .list-group-item{padding-left:1.25rem;padding-right:1.25rem;border-left:0;border-right:0;border-radius:0}.card-list-group .list-group-item:last-child{border-bottom:0}.card-list-group .list-group-item:first-child{border-top:0}.card-tabs .nav-tabs{position:relative;z-index:1000;border-bottom:0}.card-tabs .nav-tabs .nav-link{color:#626976;background:#fafbfc;border:1px solid rgba(98,105,118,.16)}.card-tabs .nav-tabs .nav-link.active,.card-tabs .nav-tabs .nav-link:active,.card-tabs .nav-tabs .nav-link:hover{border-color:rgba(98,105,118,.16);color:#1e293b}.card-tabs .nav-tabs .nav-link.active{background:#fff;border-bottom-color:transparent}.card-tabs .nav-tabs .nav-item:not(:first-child) .nav-link{border-top-right-radius:0}.card-tabs .nav-tabs .nav-item:not(:last-child) .nav-link{border-top-left-radius:0}.card-tabs .nav-tabs .nav-item+.nav-item{margin-right:-1px}.card-tabs .nav-tabs-bottom{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link.active{border-top-color:transparent}.card-tabs .nav-tabs-bottom .nav-item{margin-top:-1px;margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-item .nav-link{border-bottom:1px solid rgba(98,105,118,.16);border-radius:0 0 4px 4px}.card-tabs .nav-tabs-bottom .nav-item:not(:first-child) .nav-link{border-bottom-right-radius:0}.card-tabs .nav-tabs-bottom .nav-item:not(:last-child) .nav-link{border-bottom-left-radius:0}.card-tabs .card{border-bottom-right-radius:0}.card-tabs .nav-tabs+.tab-content .card{border-bottom-right-radius:var(--tblr-card-border-radius);border-top-right-radius:0}.btn-close{cursor:pointer}.btn-close:focus{outline:0}.dropdown-menu{box-shadow:0 .5rem 1rem rgba(0,0,0,.15);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:0!important}.dropdown-menu.card{padding:0;min-width:25rem;display:none}.dropdown-menu.card.show{display:flex}.dropdown-item{min-width:11rem;display:flex;align-items:center;margin:0;line-height:1.4285714286}.dropdown-item-icon{width:1.25rem!important;height:1.25rem!important;margin-left:.5rem;color:#626976;opacity:.7;text-align:center}.dropdown-item-indicator{margin-left:.5rem;margin-right:-.25rem;height:1.25rem;display:inline-flex;line-height:1;vertical-align:bottom;align-items:center}.dropdown-header{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;padding-bottom:.25rem;pointer-events:none}.dropdown-menu-scrollable{height:auto;max-height:13rem;overflow-x:hidden}.dropdown-menu-column{min-width:11rem}.dropdown-menu-column .dropdown-item{min-width:0}.dropdown-menu-columns{display:flex;flex:0 .25rem}.dropdown-menu-arrow:before{content:"";position:absolute;top:-.25rem;right:.75rem;display:block;background:inherit;width:14px;height:14px;transform:rotate(-45deg);transform-origin:center;border:1px solid;border-color:inherit;z-index:-1;clip:rect(0,9px,9px,0)}.dropdown-menu-arrow.dropdown-menu-end:before{left:.75rem;right:auto}.dropend>.dropdown-menu{margin-top:calc(-.25rem - 1px);margin-right:-.25rem}.dropend .dropdown-toggle:after{margin-right:auto}.dropdown-menu-card{padding:0}.dropdown-menu-card>.card{margin:0;border:0;box-shadow:none}.datagrid{--tblr-datagrid-padding:1.5rem;--tblr-datagrid-item-width:15rem;display:grid;grid-gap:var(--tblr-datagrid-padding);grid-template-columns:repeat(auto-fit,minmax(var(--tblr-datagrid-item-width),1fr))}.datagrid-title{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;margin-bottom:.25rem}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center}@media (min-width:768px){.empty{padding:3rem}}.empty-icon{margin:0 0 1rem;width:3rem;height:3rem;line-height:1;color:#626976}.empty-icon svg{width:100%;height:100%}.empty-img{margin:0 0 2rem;line-height:1}.empty-img img{height:8rem;width:auto}.empty-header{margin:0 0 1rem;font-size:4rem;font-weight:300;line-height:1;color:#626976}.empty-title{font-size:1.25rem;line-height:1.4;font-weight:600}.empty-subtitle,.empty-title{margin:0 0 .5rem}.empty-action{margin-top:1.5rem}.empty-bordered{border:1px solid #e6e7e9;border-radius:4px}.row>*{min-width:0}.col-separator{border-right:1px solid #e6e7e9}@media (max-width:991.98px){.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--tblr-gutter-x:1rem}}.container-tight{--tblr-gutter-x:1.5rem;--tblr-gutter-y:0;width:100%;padding-left:calc(var(--tblr-gutter-x) * .5);padding-right:calc(var(--tblr-gutter-x) * .5);margin-left:auto;margin-right:auto;max-width:30rem}.container-narrow{--tblr-gutter-x:1.5rem;--tblr-gutter-y:0;width:100%;padding-left:calc(var(--tblr-gutter-x) * .5);padding-right:calc(var(--tblr-gutter-x) * .5);margin-left:auto;margin-right:auto;max-width:45rem}.row-0{margin-left:0;margin-right:0}.row-0>.col,.row-0>[class*=col-]{padding-left:0;padding-right:0}.row-0 .card{margin-bottom:0}.row-sm{margin-left:-.375rem;margin-right:-.375rem}.row-sm>.col,.row-sm>[class*=col-]{padding-left:.375rem;padding-right:.375rem}.row-sm .card{margin-bottom:.75rem}.row-md{margin-left:-1.5rem;margin-right:-1.5rem}.row-md>.col,.row-md>[class*=col-]{padding-left:1.5rem;padding-right:1.5rem}.row-md .card{margin-bottom:3rem}.row-lg{margin-left:-3rem;margin-right:-3rem}.row-lg>.col,.row-lg>[class*=col-]{padding-left:3rem;padding-right:3rem}.row-lg .card{margin-bottom:6rem}.row-deck>.col,.row-deck>[class*=col-]{display:flex;align-items:stretch}.row-deck>.col .card,.row-deck>[class*=col-] .card{flex:1 1 auto}.row-cards{--tblr-gutter-x:1rem;--tblr-gutter-y:1rem;min-width:0}.row-cards .row-cards{flex:1}@media (max-width:991.98px){.row-cards{--tblr-gutter-x:0.5rem;--tblr-gutter-y:0.5rem}}.space-y>:not(template)~:not(template){margin-top:1rem!important}.space-x>:not(template)~:not(template){margin-right:1rem!important}.space-y-0>:not(template)~:not(template){margin-top:0!important}.space-x-0>:not(template)~:not(template){margin-right:0!important}.space-y-1>:not(template)~:not(template){margin-top:.25rem!important}.space-x-1>:not(template)~:not(template){margin-right:.25rem!important}.space-y-2>:not(template)~:not(template){margin-top:.5rem!important}.space-x-2>:not(template)~:not(template){margin-right:.5rem!important}.space-y-3>:not(template)~:not(template){margin-top:1rem!important}.space-x-3>:not(template)~:not(template){margin-right:1rem!important}.space-y-4>:not(template)~:not(template){margin-top:2rem!important}.space-x-4>:not(template)~:not(template){margin-right:2rem!important}.space-y-5>:not(template)~:not(template){margin-top:4rem!important}.space-x-5>:not(template)~:not(template){margin-right:4rem!important}.divide-y>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y>:not(template):not(:first-child){padding-top:1rem!important}.divide-y>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x>:not(template):not(:first-child){padding-right:1rem!important}.divide-x>:not(template):not(:last-child){padding-left:1rem!important}.divide-y-0>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-0>:not(template):not(:first-child){padding-top:0!important}.divide-y-0>:not(template):not(:last-child){padding-bottom:0!important}.divide-x-0>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-0>:not(template):not(:first-child){padding-right:0!important}.divide-x-0>:not(template):not(:last-child){padding-left:0!important}.divide-y-1>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-1>:not(template):not(:first-child){padding-top:.25rem!important}.divide-y-1>:not(template):not(:last-child){padding-bottom:.25rem!important}.divide-x-1>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-1>:not(template):not(:first-child){padding-right:.25rem!important}.divide-x-1>:not(template):not(:last-child){padding-left:.25rem!important}.divide-y-2>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-2>:not(template):not(:first-child){padding-top:.5rem!important}.divide-y-2>:not(template):not(:last-child){padding-bottom:.5rem!important}.divide-x-2>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-2>:not(template):not(:first-child){padding-right:.5rem!important}.divide-x-2>:not(template):not(:last-child){padding-left:.5rem!important}.divide-y-3>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-3>:not(template):not(:first-child){padding-top:1rem!important}.divide-y-3>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x-3>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-3>:not(template):not(:first-child){padding-right:1rem!important}.divide-x-3>:not(template):not(:last-child){padding-left:1rem!important}.divide-y-4>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-4>:not(template):not(:first-child){padding-top:2rem!important}.divide-y-4>:not(template):not(:last-child){padding-bottom:2rem!important}.divide-x-4>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-4>:not(template):not(:first-child){padding-right:2rem!important}.divide-x-4>:not(template):not(:last-child){padding-left:2rem!important}.divide-y-5>:not(template)~:not(template){border-top:1px solid rgba(98,105,118,.16)!important}.divide-y-5>:not(template):not(:first-child){padding-top:4rem!important}.divide-y-5>:not(template):not(:last-child){padding-bottom:4rem!important}.divide-x-5>:not(template)~:not(template){border-right:1px solid rgba(98,105,118,.16)!important}.divide-x-5>:not(template):not(:first-child){padding-right:4rem!important}.divide-x-5>:not(template):not(:last-child){padding-left:4rem!important}.divide-y-fill{display:flex;flex-direction:column;height:100%}.divide-y-fill>:not(template){flex:1;display:flex;justify-content:center;flex-direction:column}.icon{width:1.25rem;height:1.25rem;font-size:1.25rem;vertical-align:bottom;stroke-width:1.5}.icon:hover{text-decoration:none}.icon-inline{width:1em;height:1em;font-size:1.1428571429em;vertical-align:-.2em}.icon-filled{fill:currentColor}.icon-sm{width:1rem;height:1rem;stroke-width:1}.icon-md{width:2.5rem;height:2.5rem;stroke-width:1}.icon-lg{width:3.5rem;height:3.5rem;stroke-width:1}.img-responsive{background:no-repeat center/cover;padding-top:75%}.img-responsive-1x1{padding-top:100%}.img-responsive-4x3{padding-top:75%}.img-responsive-3x4{padding-top:133.3333333333%}.img-responsive-16x9{padding-top:56.25%}.img-responsive-9x16{padding-top:177.7777777778%}.img-responsive-21x9{padding-top:42.8571428571%}.img-responsive-9x21{padding-top:233.3333333333%}textarea[cols]{height:auto}.col-form-label,.form-label{display:block;font-weight:500}.col-form-label.required:after,.form-label.required:after{content:"*";margin-right:.25rem;color:#d63939}.form-label-description{float:left;font-weight:400;color:#626976}.form-hint{display:block;color:#626976}.form-hint:last-child{margin-bottom:0}.form-hint+.form-control{margin-top:.25rem}.form-label+.form-hint{margin-top:-.25rem}.form-control+.form-hint,.form-select+.form-hint,.input-group+.form-hint{margin-top:.5rem}.form-select:-moz-focusring{color:var(--tblr-body-color)}.form-control:-webkit-autofill{box-shadow:0 0 0 1000px var(--tblr-body-bg) inset;color:var(--tblr-body-color)}.form-control.disabled,.form-control:disabled{color:#626976;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-control[size]{width:auto}.form-control[type=number]::-webkit-inner-spin-button{opacity:1;cursor:pointer;height:calc(calc(1.4285714286em + .875rem + 2px) - 1px);margin:0 0 0 -.75rem}.form-control[type=number]::-moz-inner-spin-button{opacity:1;cursor:pointer;height:calc(calc(1.4285714286em + .875rem + 2px) - 1px);margin:0 0 0 -.75rem}.form-control-light{background-color:#f1f5f9;border-color:transparent}.form-control-dark{background-color:rgba(0,0,0,.1);color:#fff;border-color:transparent}.form-control-dark:focus{background-color:rgba(0,0,0,.1);box-shadow:none;border-color:rgba(255,255,255,.24)}.form-control-dark::-webkit-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::-moz-placeholder{color:rgba(255,255,255,.6)}.form-control-dark:-ms-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::-ms-input-placeholder{color:rgba(255,255,255,.6)}.form-control-dark::placeholder{color:rgba(255,255,255,.6)}.form-control-rounded{border-radius:10rem}.form-control-flush{padding:0;background:0 0!important;border-color:transparent!important;resize:none;box-shadow:none!important;line-height:inherit}.form-footer{margin-top:2rem}.form-fieldset{padding:1rem;margin-bottom:1rem;background:var(--tblr-body-bg);border:1px solid var(--tblr-border-color);border-radius:4px}.form-help{display:inline-flex;font-weight:600;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;font-size:.75rem;color:#626976;text-align:center;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--tblr-border-color-light);border-radius:100rem;transition:background-color .3s,color .3s}@media (prefers-reduced-motion:reduce){.form-help{transition:none}}.form-help:hover,.form-help[aria-describedby]{color:#fff;background:#206bc4}.input-group-link{font-size:.75rem}.input-group-flat:focus-within{box-shadow:0 0 0 .25rem rgba(32,107,196,.25);border-radius:4px}.input-group-flat:focus-within .form-control,.input-group-flat:focus-within .input-group-text{border-color:#90b5e2!important}.input-group-flat .form-control:focus{border-color:#d9dbde;box-shadow:none}.input-group-flat .form-control:not(:last-child){border-left:0}.input-group-flat .form-control:not(:first-child){border-right:0}.input-group-flat .input-group-text{background:0 0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.input-group-flat .input-group-text{transition:none}}.input-group-flat .input-group-text:first-child{padding-left:0}.input-group-flat .input-group-text:last-child{padding-right:0}.form-file-button{margin-right:0;border-right:0}.input-icon{position:relative}.input-icon .form-control:not(:last-child),.input-icon .form-select:not(:last-child){padding-left:2.5rem}.input-icon .form-control:not(:first-child),.input-icon .form-select:not(:last-child){padding-right:2.5rem}.input-icon-addon{position:absolute;top:0;bottom:0;right:0;display:flex;align-items:center;justify-content:center;min-width:2.5rem;color:#626976;pointer-events:none;font-size:1.2em}.input-icon-addon:last-child{left:0;right:auto}.form-colorinput{position:relative;display:inline-block;margin:0;line-height:1;cursor:pointer}.form-colorinput-input{position:absolute;z-index:-1;opacity:0}.form-colorinput-color{display:block;width:1.5rem;height:1.5rem;color:#fff;border:1px solid rgba(98,105,118,.16);border-radius:3px;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.form-colorinput-color:before{position:absolute;top:0;right:0;width:100%;height:100%;content:"";background:no-repeat center center/1rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-colorinput-color:before{transition:none}}.form-colorinput-input:checked~.form-colorinput-color:before{opacity:1}.form-colorinput-input:focus~.form-colorinput-color{border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-colorinput-light .form-colorinput-color:before{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%231e293b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-imagecheck{position:relative;margin:0;cursor:pointer}.form-imagecheck-input{position:absolute;z-index:-1;opacity:0}.form-imagecheck-figure{position:relative;display:block;margin:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid var(--tblr-border-color);border-radius:3px}.form-imagecheck-input:focus~.form-imagecheck-figure{border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-imagecheck-input:checked~.form-imagecheck-figure{border-color:#206bc4}.form-imagecheck-figure:before{position:absolute;top:.25rem;right:.25rem;z-index:1;display:block;width:1rem;height:1rem;color:#fff;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;border:1px solid #e6e7e9;border-radius:3px;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-figure:before{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure:before{background-color:#206bc4;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");background-repeat:repeat;background-position:center;background-size:1rem;border-color:rgba(98,105,118,.24)}.form-imagecheck-image{max-width:100%;display:block;opacity:.64;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-image{transition:none}}.form-imagecheck-image:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.form-imagecheck-image:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck:hover .form-imagecheck-image{opacity:1}.form-imagecheck-caption{padding:.25rem;font-size:.765625rem;color:#626976;text-align:center;transition:color .3s}@media (prefers-reduced-motion:reduce){.form-imagecheck-caption{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck:hover .form-imagecheck-caption{color:#1e293b}.form-selectgroup{display:inline-flex;margin:0 0 -.5rem -.5rem;flex-wrap:wrap}.form-selectgroup .form-selectgroup-item{margin:0 0 .5rem .5rem}.form-selectgroup-vertical{flex-direction:column}.form-selectgroup-item{display:block;position:relative}.form-selectgroup-input{position:absolute;top:0;right:0;z-index:-1;opacity:0}.form-selectgroup-label{position:relative;display:block;min-width:calc(1.4285714286em + .875rem + 2px);margin:0;padding:.4375rem .75rem;font-size:.875rem;line-height:1.4285714286;color:#626976;background:#fff;text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid #d9dbde;border-radius:3px;transition:border-color .3s,background .3s,color .3s}@media (prefers-reduced-motion:reduce){.form-selectgroup-label{transition:none}}.form-selectgroup-label .icon:only-child{margin:0 -.25rem}.form-selectgroup-label:hover{color:#1e293b}.form-selectgroup-check{display:inline-block;width:1rem;height:1rem;border:1px solid rgba(98,105,118,.24);vertical-align:middle}.form-selectgroup-input[type=checkbox]+.form-selectgroup-label .form-selectgroup-check{border-radius:4px}.form-selectgroup-input[type=radio]+.form-selectgroup-label .form-selectgroup-check{border-radius:50%}.form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-check{background-color:#206bc4;background-repeat:repeat;background-position:center;background-size:1rem;border-color:rgba(98,105,118,.24)}.form-selectgroup-input[type=checkbox]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-selectgroup-input[type=radio]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-selectgroup-check-floated{position:absolute;top:.4375rem;left:.4375rem}.form-selectgroup-input:checked+.form-selectgroup-label{z-index:1;color:#206bc4;background:rgba(32,107,196,.04);border-color:#206bc4}.form-selectgroup-input:focus+.form-selectgroup-label{z-index:2;color:#206bc4;border-color:#206bc4;box-shadow:0 0 0 .25rem rgba(32,107,196,.25)}.form-selectgroup-boxes .form-selectgroup-label{text-align:right;padding:1.25rem 1rem;color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label{color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-title{color:#206bc4}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-label-content{opacity:1}.form-selectgroup-pills{flex-wrap:wrap;align-items:flex-start}.form-selectgroup-pills .form-selectgroup-item{flex-grow:0}.form-selectgroup-pills .form-selectgroup-label{border-radius:50px}.form-control-color::-webkit-color-swatch{border:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.form-control::-webkit-file-upload-button{background-color:var(--tblr-btn-color,#fafbfc)}.form-control::file-selector-button{background-color:var(--tblr-btn-color,#fafbfc)}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--tblr-btn-color,#eeeeef)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--tblr-btn-color,#eeeeef)}.form-check{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-check.form-check-highlight .form-check-input:not(:checked)~.form-check-label{opacity:.7}.form-check-input{background-size:1rem;margin-top:.125rem}.form-switch .form-check-input{transition:background-color .3s,background-position .3s}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-check-label{display:block}.form-check-label.required:after{content:"*";margin-right:.25rem;color:#d63939}.form-check-description{display:block;color:#626976;font-size:.75rem;margin-top:.25rem}.form-check-single{margin:0}.form-check-single .form-check-input{margin:0}.form-switch .form-check-input{height:1.125rem;margin-top:.0625rem}.form-switch-lg .form-check-input{height:1.5rem;width:2.75rem;background-size:1.5rem}.form-control.is-invalid-lite,.form-control.is-valid-lite,.form-select.is-invalid-lite,.form-select.is-valid-lite{border-color:var(--tblr-border-color)!important}.legend{display:inline-block;background:var(--tblr-border-color-light);width:.75em;height:.75em;border-radius:4px}.list-group{margin-right:0;margin-left:0}.list-group-header{background:#fafbfc;padding:.5rem 1.25rem;font-size:.75rem;font-weight:500;line-height:1;text-transform:uppercase;color:#626976;border-bottom:1px solid var(--tblr-border-color)}.list-group-flush>.list-group-header:last-child{border-bottom-width:0}.list-group-item{background-color:inherit}.list-group-item.active{background-color:rgba(27,125,241,.02);border-right-color:#f59f00;border-right-width:2px}.list-group-item:active,.list-group-item:focus,.list-group-item:hover{background-color:rgba(27,125,241,.02)}.list-group-item.disabled,.list-group-item:disabled{color:#64748b;background-color:rgba(27,125,241,.02)}.list-bordered .list-item{border-top:1px solid #e6e7e9;margin-top:-1px}.list-bordered .list-item:first-child{border-top:none}.list-group-hoverable .list-group-item-actions{opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.list-group-hoverable .list-group-item-actions{transition:none}}.list-group-hoverable .list-group-item-actions.show,.list-group-hoverable .list-group-item:hover .list-group-item-actions{opacity:1}.list-timeline{position:relative;padding:0;margin:0;list-style:none}.list-timeline>li{position:relative;margin-bottom:1.5rem}.list-timeline>li:last-child{margin-bottom:0}.list-timeline-time{float:left;margin-right:1rem;color:#626976}.list-timeline-icon{position:absolute;top:0;right:0;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:#fff;text-align:center;background:#626976;border-radius:100rem}.list-timeline-icon .icon{width:1rem;height:1rem;font-size:1rem}.list-timeline-title{margin:0;font-weight:600}.list-timeline-content{margin-right:3.5rem}@media screen and (min-width:768px){.list-timeline:not(.list-timeline-simple):before{position:absolute;top:0;bottom:0;right:calc(7.5rem + 2px);z-index:1;display:block;width:4px;content:"";background-color:#f5f7fb}.list-timeline:not(.list-timeline-simple)>li{z-index:2;min-height:40px}.list-timeline:not(.list-timeline-simple) .list-timeline-time{position:absolute;top:.5rem;right:0;width:5.5rem;margin:0;text-align:left}.list-timeline:not(.list-timeline-simple) .list-timeline-icon{top:0;right:6.5rem}.list-timeline:not(.list-timeline-simple) .list-timeline-content{padding:.625rem 10rem 0 0;margin:0}}.list-group-transparent{margin:0 -1.25rem}.list-group-transparent .list-group-item{background:0 0;border:0;border-radius:3px}.list-group-transparent .list-group-item .icon{color:#626976}.list-group-transparent .list-group-item.active{font-weight:600;color:inherit;background:rgba(32,107,196,.04)}.list-group-transparent .list-group-item.active .icon{color:inherit}.list-separated-item{padding:1rem 0}.list-separated-item:first-child{padding-top:0}.list-separated-item:last-child{padding-bottom:0}.list-separated-item+.list-separated-item{border-top:1px solid #e6e7e9}.list-inline-item:not(:last-child){margin-left:auto;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.list-inline-dots .list-inline-item+.list-inline-item:before{content:" · ";-webkit-margin-end:.5rem;margin-inline-end:.5rem}@-webkit-keyframes loader{from{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes loader{from{transform:rotate(0)}to{transform:rotate(-360deg)}}.loader{position:relative;display:block;width:2.5rem;height:2.5rem;color:#206bc4;vertical-align:middle}.loader:after{position:absolute;top:0;right:0;width:100%;height:100%;content:"";border:1px solid;border-color:transparent;border-top-color:currentColor;border-right-color:currentColor;border-radius:100rem;-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.dimmer{position:relative}.dimmer .loader{position:absolute;top:50%;left:0;right:0;display:none;margin:0 auto;transform:translateY(-50%)}.dimmer.active .loader{display:block}.dimmer.active .dimmer-content{pointer-events:none;opacity:.1}@-webkit-keyframes animated-dots{0%{transform:translateX(100%)}}@keyframes animated-dots{0%{transform:translateX(100%)}}.animated-dots{display:inline-block;overflow:hidden;vertical-align:bottom}.animated-dots:after{display:inline-block;content:"...";-webkit-animation:animated-dots 1.2s steps(4,jump-none) infinite;animation:animated-dots 1.2s steps(4,jump-none) infinite}.modal-content .btn-close{position:absolute;top:0;left:0;width:3.5rem;height:3.5rem;margin:0;padding:0;z-index:10}.modal-body::-webkit-scrollbar{width:6px;height:6px;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.modal-body::-webkit-scrollbar{-webkit-transition:none;transition:none}}.modal-body::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(var(--tblr-body-color-rgb),.16)}.modal-body::-webkit-scrollbar-track{background:rgba(var(--tblr-body-color-rgb),.06)}.modal-body:hover::-webkit-scrollbar-thumb{background:rgba(var(--tblr-body-color-rgb),.32)}.modal-body::-webkit-scrollbar-corner{background:0 0}.modal-body .modal-title{margin-bottom:1rem}.modal-body+.modal-body{border-top:1px solid var(--tblr-border-color)}.modal-status{position:absolute;top:0;right:0;left:0;height:2px;background:#626976;border-radius:4px 4px 0 0}.modal-header{align-items:center;min-height:3.5rem;background:#fff;padding:0 1.5rem 0 3.5rem}.modal-title{font-size:1rem;font-weight:600;line-height:1.4285714286}.modal-footer{padding-top:0;padding-bottom:.75rem}.modal-blur{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-full-width{max-width:none;margin:0 .5rem}.nav-vertical,.nav-vertical .nav{flex-direction:column;flex-wrap:nowrap}.nav-vertical .nav{margin-right:1.25rem;border-right:1px solid var(--tblr-border-color);padding-right:.5rem}.nav-vertical .nav-item.show .nav-link,.nav-vertical .nav-link.active{font-weight:600}.nav-vertical.nav-pills{margin:0 -.75rem}.nav-bordered{border-bottom:1px solid #e6e7e9}.nav-bordered .nav-item+.nav-item{margin-right:1.25rem}.nav-bordered .nav-link{padding-right:0;padding-left:0;margin:0 0 -1px;border:0;border-bottom:2px solid transparent;color:#626976}.nav-bordered .nav-item.show .nav-link,.nav-bordered .nav-link.active{color:#206bc4;border-color:#206bc4}.nav-tabs-alt .nav-link{font-size:13px;font-weight:600;text-transform:uppercase}.nav-link{display:flex;transition:color .3s;align-items:center}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link-toggle{margin-right:auto;padding:0 .25rem;transition:transform .3s}@media (prefers-reduced-motion:reduce){.nav-link-toggle{transition:none}}.nav-link-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px solid;border-right:1px solid;margin-left:.1em;margin-right:.4em;transform:rotate(45deg)}.nav-link-toggle:after{margin:0}.nav-link[aria-expanded=true] .nav-link-toggle{transform:rotate(-180deg)}.nav-link-icon{width:1.5rem;height:1.25rem;margin-left:.25rem;opacity:.7}.nav-link-icon svg{display:block;height:100%}.stars{display:inline-flex;color:#94a3b8;font-size:.75rem}.stars .star:not(:first-child){margin-right:.25rem}.pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.page-link{min-width:1.75rem;border-radius:4px}.page-link:hover{background:0 0}.page-item{text-align:center}.page-item.page-next,.page-item.page-prev{flex:0 0 50%;text-align:right}.page-item.page-next{margin-right:auto;text-align:left}.page-item-subtitle{margin-bottom:2px;font-size:12px;color:#626976;text-transform:uppercase}.page-item.disabled .page-item-subtitle{color:rgba(98,105,118,.5)}.page-item-title{font-size:1rem;font-weight:400;color:#1e293b}.page-link:hover .page-item-title{color:#206bc4}.page-item.disabled .page-item-title{color:rgba(98,105,118,.5)}@-webkit-keyframes progress-indeterminate{0%{left:100%;right:-35%}100%,60%{left:-90%;right:100%}}@keyframes progress-indeterminate{0%{left:100%;right:-35%}100%,60%{left:-90%;right:100%}}.progress{position:relative;width:100%;line-height:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--tblr-border-color-light)}.progress::-webkit-progress-bar{background:#f1f5f9}.progress::-webkit-progress-value{background-color:#206bc4}.progress::-moz-progress-bar{background-color:#206bc4}.progress::-ms-fill{background-color:#206bc4;border:none}.progress-sm{height:.25rem}.progress-bar{height:100%}.progress-bar-indeterminate:after,.progress-bar-indeterminate:before{position:absolute;top:0;bottom:0;right:0;content:"";background-color:inherit;will-change:left,right}.progress-bar-indeterminate:before{-webkit-animation:progress-indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:progress-indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.progress-separated .progress-bar{border-left:2px solid var(--tblr-card-bg,#fff)}.ribbon{position:absolute;top:.75rem;left:-.25rem;z-index:1;padding:.25rem .75rem;font-size:.625rem;font-weight:600;line-height:1.5rem;color:#fff;text-align:center;text-transform:uppercase;background:#206bc4;border-color:#206bc4;display:inline-flex;align-items:center;justify-content:center;min-height:2rem;min-width:2rem}.ribbon:before{position:absolute;left:0;bottom:100%;width:0;height:0;content:"";filter:brightness(70%);border:.125rem solid;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon.bg-blue{border-color:#206bc4}.ribbon.bg-blue-lt{border-color:#2b72c7!important}.ribbon.bg-azure{border-color:#4299e1}.ribbon.bg-azure-lt{border-color:#4b9ee3!important}.ribbon.bg-indigo{border-color:#4263eb}.ribbon.bg-indigo-lt{border-color:#4b6bec!important}.ribbon.bg-purple{border-color:#ae3ec9}.ribbon.bg-purple-lt{border-color:#b248cc!important}.ribbon.bg-pink{border-color:#d6336c}.ribbon.bg-pink-lt{border-color:#d83d73!important}.ribbon.bg-red{border-color:#d63939}.ribbon.bg-red-lt{border-color:#d84343!important}.ribbon.bg-orange{border-color:#f76707}.ribbon.bg-orange-lt{border-color:#f76f13!important}.ribbon.bg-yellow{border-color:#f59f00}.ribbon.bg-yellow-lt{border-color:#f6a40d!important}.ribbon.bg-lime{border-color:#74b816}.ribbon.bg-lime-lt{border-color:#7bbc22!important}.ribbon.bg-green{border-color:#2fb344}.ribbon.bg-green-lt{border-color:#39b74d!important}.ribbon.bg-teal{border-color:#0ca678}.ribbon.bg-teal-lt{border-color:#18aa7f!important}.ribbon.bg-cyan{border-color:#17a2b8}.ribbon.bg-cyan-lt{border-color:#23a7bc!important}.ribbon .icon{width:1.25rem;height:1.25rem;font-size:1.25rem}.ribbon-top{top:-.25rem;left:.75rem;width:2rem;padding:.5rem 0}.ribbon-top:before{top:0;left:100%;bottom:auto;border-color:inherit;border-top-color:transparent;border-right-color:transparent}.ribbon-top.ribbon-start{left:auto;right:.75rem}.ribbon-top.ribbon-start:before{top:0;left:100%;right:auto}.ribbon-start{left:auto;right:-.25rem}.ribbon-start:before{top:auto;bottom:100%;right:0;border-color:inherit;border-top-color:transparent;border-right-color:transparent}.ribbon-bottom{top:auto;bottom:.75rem}.ribbon-bookmark{padding-right:.25rem}.ribbon-bookmark:after{position:absolute;top:0;left:100%;display:block;width:0;height:0;content:"";border:1rem solid;border-color:inherit;border-left-width:0;border-right-color:transparent;border-right-width:.5rem}.ribbon-bookmark.ribbon-left{padding-left:.5rem;padding-right:.5rem}.ribbon-bookmark.ribbon-left:after{left:auto;right:100%;border-left-color:transparent;border-left-width:.5rem;border-right-width:0}.ribbon-bookmark.ribbon-top{padding-left:0;padding-bottom:.25rem;padding-right:0}.ribbon-bookmark.ribbon-top:after{top:100%;left:0;right:0;border-color:inherit;border-width:1rem;border-top-width:0;border-bottom-color:transparent;border-bottom-width:.5rem}.markdown{font-size:1rem;line-height:1.7142857143}.markdown>:first-child{margin-top:0}.markdown>:last-child,.markdown>:last-child .highlight{margin-bottom:0}@media (min-width:768px){.markdown>.hr,.markdown>hr{margin-top:3em;margin-bottom:3em}}.markdown>.h1,.markdown>.h2,.markdown>.h3,.markdown>.h4,.markdown>.h5,.markdown>.h6,.markdown>h1,.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{font-weight:600}.markdown>blockquote{font-size:1rem;margin:1.5rem 0;padding:.5rem 1.5rem}.markdown>img{border-radius:4px}.placeholder:not(.btn):not([class*=bg-]){background-color:currentColor!important}.placeholder:not(.avatar):not([class*=card-img-]){border-radius:4px}.steps{display:flex;flex-wrap:nowrap;width:100%;padding:0;margin:2rem 0;list-style:none}.steps .step-item{padding-top:calc(.5rem + 4px)}.steps .step-item:after{top:calc(.25rem + 2px);height:2px}.steps .step-item:before{width:.5rem;height:.5rem}.steps .step-item:after,.steps .step-item:before{color:#fff;background:#206bc4}.steps .step-item.active:before{color:inherit;border-color:#206bc4}.steps-blue .step-item:after,.steps-blue .step-item:before{color:#fff;background:#206bc4}.steps-blue .step-item.active:before{color:inherit;border-color:#206bc4}.steps-azure .step-item:after,.steps-azure .step-item:before{color:#fff;background:#4299e1}.steps-azure .step-item.active:before{color:inherit;border-color:#4299e1}.steps-indigo .step-item:after,.steps-indigo .step-item:before{color:#fff;background:#4263eb}.steps-indigo .step-item.active:before{color:inherit;border-color:#4263eb}.steps-purple .step-item:after,.steps-purple .step-item:before{color:#fff;background:#ae3ec9}.steps-purple .step-item.active:before{color:inherit;border-color:#ae3ec9}.steps-pink .step-item:after,.steps-pink .step-item:before{color:#fff;background:#d6336c}.steps-pink .step-item.active:before{color:inherit;border-color:#d6336c}.steps-red .step-item:after,.steps-red .step-item:before{color:#fff;background:#d63939}.steps-red .step-item.active:before{color:inherit;border-color:#d63939}.steps-orange .step-item:after,.steps-orange .step-item:before{color:#fff;background:#f76707}.steps-orange .step-item.active:before{color:inherit;border-color:#f76707}.steps-yellow .step-item:after,.steps-yellow .step-item:before{color:#fff;background:#f59f00}.steps-yellow .step-item.active:before{color:inherit;border-color:#f59f00}.steps-lime .step-item:after,.steps-lime .step-item:before{color:#fff;background:#74b816}.steps-lime .step-item.active:before{color:inherit;border-color:#74b816}.steps-green .step-item:after,.steps-green .step-item:before{color:#fff;background:#2fb344}.steps-green .step-item.active:before{color:inherit;border-color:#2fb344}.steps-teal .step-item:after,.steps-teal .step-item:before{color:#fff;background:#0ca678}.steps-teal .step-item.active:before{color:inherit;border-color:#0ca678}.steps-cyan .step-item:after,.steps-cyan .step-item:before{color:#fff;background:#17a2b8}.steps-cyan .step-item.active:before{color:inherit;border-color:#17a2b8}.step-item{position:relative;flex:1 1 0;min-height:1rem;margin-top:0;color:inherit;text-align:center;cursor:default}a.step-item{cursor:pointer}a.step-item:hover{color:inherit}.step-item:not(:first-child):after{position:absolute;right:-50%;width:100%;content:"";transform:translateY(-50%)}.step-item:before{position:absolute;top:0;right:50%;z-index:1;box-sizing:content-box;display:block;content:"";border:2px solid #fff;border-radius:100rem;transform:translateX(50%)}.step-item.active{font-weight:600}.step-item.active:before{background:#fff}.step-item.active~.step-item{color:#626976}.step-item.active~.step-item:after,.step-item.active~.step-item:before{background:#f3f5f5}.step-item.active~.step-item:before{color:#626976!important}.steps-counter{counter-reset:steps}.steps-counter .step-item{padding-top:calc(1.5rem + 4px)}.steps-counter .step-item:after{top:calc(.75rem + 2px);height:2px}.steps-counter .step-item:before{width:1.5rem;height:1.5rem}.steps-counter .step-item{counter-increment:steps}.steps-counter .step-item:before{font-size:.75rem;line-height:1.5rem;content:counter(steps)}.steps-counter .step-item.active~.step-item:before{background:#fff}@-webkit-keyframes status-pulsate-main{40%{transform:scale(1.25,1.25)}60%{transform:scale(1.25,1.25)}}@keyframes status-pulsate-main{40%{transform:scale(1.25,1.25)}60%{transform:scale(1.25,1.25)}}@-webkit-keyframes status-pulsate-secondary{10%{transform:scale(1,1)}30%{transform:scale(3,3)}80%{transform:scale(3,3)}100%{transform:scale(1,1)}}@keyframes status-pulsate-secondary{10%{transform:scale(1,1)}30%{transform:scale(3,3)}80%{transform:scale(3,3)}100%{transform:scale(1,1)}}@-webkit-keyframes status-pulsate-tertiary{25%{transform:scale(1,1)}80%{transform:scale(3,3);opacity:0}100%{transform:scale(3,3);opacity:0}}@keyframes status-pulsate-tertiary{25%{transform:scale(1,1)}80%{transform:scale(3,3);opacity:0}100%{transform:scale(3,3);opacity:0}}.status{--tblr-status-height:1.5rem;--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118;display:inline-flex;align-items:center;height:var(--tblr-status-height);padding:.25rem .75rem;gap:.5rem;color:var(--tblr-status-color);background:rgba(var(--tblr-status-color-rgb),.1);font-size:.875rem;text-transform:none;letter-spacing:normal;border-radius:100rem;font-weight:500;line-height:1;margin:0}.status .status-dot{background:var(--tblr-status-color)}.status .icon{font-size:1.25rem}.status-lite{border:1px solid var(--tblr-border-color)!important;background:0 0!important;color:var(--tblr-body-text)!important}.status-primary{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-secondary{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118}.status-success{--tblr-status-color:#2fb344;--tblr-status-color-rgb:47,179,68}.status-info{--tblr-status-color:#4299e1;--tblr-status-color-rgb:66,153,225}.status-warning{--tblr-status-color:#f76707;--tblr-status-color-rgb:247,103,7}.status-danger{--tblr-status-color:#d63939;--tblr-status-color-rgb:214,57,57}.status-light{--tblr-status-color:#fafbfc;--tblr-status-color-rgb:250,251,252}.status-dark{--tblr-status-color:#1e293b;--tblr-status-color-rgb:30,41,59}.status-muted{--tblr-status-color:#626976;--tblr-status-color-rgb:98,105,118}.status-blue{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-azure{--tblr-status-color:#4299e1;--tblr-status-color-rgb:66,153,225}.status-indigo{--tblr-status-color:#4263eb;--tblr-status-color-rgb:66,99,235}.status-purple{--tblr-status-color:#ae3ec9;--tblr-status-color-rgb:174,62,201}.status-pink{--tblr-status-color:#d6336c;--tblr-status-color-rgb:214,51,108}.status-red{--tblr-status-color:#d63939;--tblr-status-color-rgb:214,57,57}.status-orange{--tblr-status-color:#f76707;--tblr-status-color-rgb:247,103,7}.status-yellow{--tblr-status-color:#f59f00;--tblr-status-color-rgb:245,159,0}.status-lime{--tblr-status-color:#74b816;--tblr-status-color-rgb:116,184,22}.status-green{--tblr-status-color:#2fb344;--tblr-status-color-rgb:47,179,68}.status-teal{--tblr-status-color:#0ca678;--tblr-status-color-rgb:12,166,120}.status-cyan{--tblr-status-color:#17a2b8;--tblr-status-color-rgb:23,162,184}.status-facebook{--tblr-status-color:#3b5998;--tblr-status-color-rgb:59,89,152}.status-twitter{--tblr-status-color:#1da1f2;--tblr-status-color-rgb:29,161,242}.status-linkedin{--tblr-status-color:#0a66c2;--tblr-status-color-rgb:10,102,194}.status-google{--tblr-status-color:#dc4e41;--tblr-status-color-rgb:220,78,65}.status-youtube{--tblr-status-color:#ff0000;--tblr-status-color-rgb:255,0,0}.status-vimeo{--tblr-status-color:#1ab7ea;--tblr-status-color-rgb:26,183,234}.status-dribbble{--tblr-status-color:#ea4c89;--tblr-status-color-rgb:234,76,137}.status-github{--tblr-status-color:#181717;--tblr-status-color-rgb:24,23,23}.status-instagram{--tblr-status-color:#e4405f;--tblr-status-color-rgb:228,64,95}.status-pinterest{--tblr-status-color:#bd081c;--tblr-status-color-rgb:189,8,28}.status-vk{--tblr-status-color:#6383a8;--tblr-status-color-rgb:99,131,168}.status-rss{--tblr-status-color:#ffa500;--tblr-status-color-rgb:255,165,0}.status-flickr{--tblr-status-color:#0063dc;--tblr-status-color-rgb:0,99,220}.status-bitbucket{--tblr-status-color:#0052cc;--tblr-status-color-rgb:0,82,204}.status-tabler{--tblr-status-color:#206bc4;--tblr-status-color-rgb:32,107,196}.status-dot{--tblr-status-dot-color:var(--tblr-status-color, #626976);--tblr-status-size:0.5rem;position:relative;display:inline-block;width:var(--tblr-status-size);height:var(--tblr-status-size);background:var(--tblr-status-dot-color);border-radius:100rem}.status-dot-animated:before{content:"";position:absolute;inset:0;z-index:0;background:inherit;border-radius:inherit;opacity:.6;-webkit-animation:1s linear 2s backwards infinite status-pulsate-tertiary;animation:1s linear 2s backwards infinite status-pulsate-tertiary}.status-indicator{--tblr-status-indicator-size:2.5rem;--tblr-status-indicator-color:var(--tblr-status-color, #626976);display:block;position:relative;width:var(--tblr-status-indicator-size);height:var(--tblr-status-indicator-size)}.status-indicator-circle{--tblr-status-circle-size:.75rem;position:absolute;right:50%;top:50%;margin:calc(var(--tblr-status-circle-size)/ -2) calc(var(--tblr-status-circle-size)/ -2) 0 0;width:var(--tblr-status-circle-size);height:var(--tblr-status-circle-size);border-radius:100rem;background:var(--tblr-status-color)}.status-indicator-circle:nth-child(1){z-index:3}.status-indicator-circle:nth-child(2){z-index:2;opacity:.1}.status-indicator-circle:nth-child(3){z-index:1;opacity:.3}.status-indicator-animated .status-indicator-circle:nth-child(1){-webkit-animation:2s linear 1s infinite backwards status-pulsate-main;animation:2s linear 1s infinite backwards status-pulsate-main}.status-indicator-animated .status-indicator-circle:nth-child(2){-webkit-animation:2s linear 1s infinite backwards status-pulsate-secondary;animation:2s linear 1s infinite backwards status-pulsate-secondary}.status-indicator-animated .status-indicator-circle:nth-child(3){-webkit-animation:2s linear 1s infinite backwards status-pulsate-tertiary;animation:2s linear 1s infinite backwards status-pulsate-tertiary}.switch-icon{display:inline-block;line-height:1;border:0;padding:0;background:0 0;width:1.25rem;height:1.25rem;vertical-align:bottom;position:relative;cursor:pointer}.switch-icon.disabled{pointer-events:none;opacity:.65}.switch-icon:focus{outline:0}.switch-icon svg{display:block;width:100%;height:100%}.switch-icon .switch-icon-a,.switch-icon .switch-icon-b{display:block;width:100%;height:100%}.switch-icon .switch-icon-a{opacity:1}.switch-icon .switch-icon-b{position:absolute;top:0;right:0;opacity:0}.switch-icon.active .switch-icon-a{opacity:0}.switch-icon.active .switch-icon-b{opacity:1}.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:opacity .5s}@media (prefers-reduced-motion:reduce){.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:opacity .5s,transform 0s .5s}@media (prefers-reduced-motion:reduce){.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-b{transform:scale(1.5)}.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:opacity 0s,transform .5s}@media (prefers-reduced-motion:reduce){.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:none}}.switch-icon-scale.active .switch-icon-b{transform:scale(1)}.switch-icon-flip{perspective:10em}.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d;transition:opacity 0s .2s,transform .4s ease-in-out}@media (prefers-reduced-motion:reduce){.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{transition:none}}.switch-icon-flip .switch-icon-a{opacity:1;transform:rotateY(0)}.switch-icon-flip .switch-icon-b{opacity:1;transform:rotateY(180deg)}.switch-icon-flip.active .switch-icon-a{opacity:1;transform:rotateY(-180deg)}.switch-icon-flip.active .switch-icon-b{opacity:1;transform:rotateY(0)}.switch-icon-slide-down,.switch-icon-slide-left,.switch-icon-slide-right,.switch-icon-slide-up{overflow:hidden}.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b{transition:opacity .3s,transform .3s}@media (prefers-reduced-motion:reduce){.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b{transition:none}}.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-up .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-up .switch-icon-b{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-a,.switch-icon-slide-left.active .switch-icon-a,.switch-icon-slide-right.active .switch-icon-a,.switch-icon-slide-up.active .switch-icon-a{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-b,.switch-icon-slide-left.active .switch-icon-b,.switch-icon-slide-right.active .switch-icon-b,.switch-icon-slide-up.active .switch-icon-b{transform:translateY(0)}.switch-icon-slide-right .switch-icon-a{transform:translateX(0)}.switch-icon-slide-left .switch-icon-b{transform:translateX(-100%)}.switch-icon-slide-left.active .switch-icon-a{transform:translateX(100%)}.switch-icon-slide-right.active .switch-icon-b{transform:translateX(0)}.switch-icon-slide-left .switch-icon-a{transform:translateX(0)}.switch-icon-slide-right .switch-icon-b{transform:translateX(100%)}.switch-icon-slide-right.active .switch-icon-a{transform:translateX(-100%)}.switch-icon-slide-left.active .switch-icon-b{transform:translateX(0)}.switch-icon-slide-down .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-a{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-b{transform:translateY(0)}.markdown>table thead th,.table thead th{color:#626976;background:var(--tblr-border-color-light);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;padding-top:.5rem;padding-bottom:.5rem;white-space:nowrap}@media print{.markdown>table thead th,.table thead th{background:0 0}}.markdown>table>:not(:first-child),.table>:not(:first-child){border-top-width:1px}.table-responsive .markdown>table,.table-responsive .table{margin-bottom:0}.table-transparent thead th{background:0 0}.table-nowrap>:not(caption)>*>*{white-space:nowrap}.table-vcenter>:not(caption)>*>*{vertical-align:middle}.table-center>:not(caption)>*>*{text-align:center}.td-truncate{max-width:1px;width:100%}.table-mobile{display:block}.table-mobile thead{display:none}.table-mobile tbody,.table-mobile tr{display:flex;flex-direction:column}.table-mobile td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile .btn{display:block}@media (max-width:575.98px){.table-mobile-sm{display:block}.table-mobile-sm thead{display:none}.table-mobile-sm tbody,.table-mobile-sm tr{display:flex;flex-direction:column}.table-mobile-sm td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-sm td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-sm tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-sm .btn{display:block}}@media (max-width:767.98px){.table-mobile-md{display:block}.table-mobile-md thead{display:none}.table-mobile-md tbody,.table-mobile-md tr{display:flex;flex-direction:column}.table-mobile-md td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-md td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-md tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-md .btn{display:block}}@media (max-width:991.98px){.table-mobile-lg{display:block}.table-mobile-lg thead{display:none}.table-mobile-lg tbody,.table-mobile-lg tr{display:flex;flex-direction:column}.table-mobile-lg td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-lg td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-lg tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-lg .btn{display:block}}@media (max-width:1199.98px){.table-mobile-xl{display:block}.table-mobile-xl thead{display:none}.table-mobile-xl tbody,.table-mobile-xl tr{display:flex;flex-direction:column}.table-mobile-xl td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-xl td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-xl tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-xl .btn{display:block}}@media (max-width:1399.98px){.table-mobile-xxl{display:block}.table-mobile-xxl thead{display:none}.table-mobile-xxl tbody,.table-mobile-xxl tr{display:flex;flex-direction:column}.table-mobile-xxl td{display:block;padding:.75rem .75rem!important;border:none;color:#1e293b!important}.table-mobile-xxl td[data-label]:before{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;content:attr(data-label);display:block}.table-mobile-xxl tr{border-bottom:1px solid rgba(98,105,118,.16)}.table-mobile-xxl .btn{display:block}}.table-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;border:0;background:inherit;display:block;width:100%;text-align:inherit;transition:color .3s;margin:-.5rem -.75rem;padding:.5rem .75rem}@media (prefers-reduced-motion:reduce){.table-sort{transition:none}}.table-sort.asc,.table-sort.desc,.table-sort:hover{color:#1e293b}.table-sort.asc:after,.table-sort.desc:after,.table-sort:after{content:"";display:inline-flex;width:1rem;height:1rem;vertical-align:bottom;background:url("data:image/svg+xml,") no-repeat center;opacity:.2}.table-sort.asc:after{background:url("data:image/svg+xml,") no-repeat center;opacity:1}.table-sort.desc:after{background:url("data:image/svg+xml,") no-repeat center;opacity:1}.toast{background:#fff;border:1px solid rgba(98,105,118,.16);border-right:.25rem solid var(--tblr-toast-color);box-shadow:rgba(30,41,59,.04) 0 2px 4px 0}.toast .toast-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.toast button[data-bs-dismiss=toast]{outline:0}.toast-primary{--tblr-toast-color:#206bc4}.toast-secondary{--tblr-toast-color:#626976}.toast-success{--tblr-toast-color:#2fb344}.toast-info{--tblr-toast-color:#4299e1}.toast-warning{--tblr-toast-color:#f76707}.toast-danger{--tblr-toast-color:#d63939}.toast-light{--tblr-toast-color:#fafbfc}.toast-dark{--tblr-toast-color:#1e293b}.toast-muted{--tblr-toast-color:#626976}.toast-blue{--tblr-toast-color:#206bc4}.toast-azure{--tblr-toast-color:#4299e1}.toast-indigo{--tblr-toast-color:#4263eb}.toast-purple{--tblr-toast-color:#ae3ec9}.toast-pink{--tblr-toast-color:#d6336c}.toast-red{--tblr-toast-color:#d63939}.toast-orange{--tblr-toast-color:#f76707}.toast-yellow{--tblr-toast-color:#f59f00}.toast-lime{--tblr-toast-color:#74b816}.toast-green{--tblr-toast-color:#2fb344}.toast-teal{--tblr-toast-color:#0ca678}.toast-cyan{--tblr-toast-color:#17a2b8}.toast-facebook{--tblr-toast-color:#3b5998}.toast-twitter{--tblr-toast-color:#1da1f2}.toast-linkedin{--tblr-toast-color:#0a66c2}.toast-google{--tblr-toast-color:#dc4e41}.toast-youtube{--tblr-toast-color:#ff0000}.toast-vimeo{--tblr-toast-color:#1ab7ea}.toast-dribbble{--tblr-toast-color:#ea4c89}.toast-github{--tblr-toast-color:#181717}.toast-instagram{--tblr-toast-color:#e4405f}.toast-pinterest{--tblr-toast-color:#bd081c}.toast-vk{--tblr-toast-color:#6383a8}.toast-rss{--tblr-toast-color:#ffa500}.toast-flickr{--tblr-toast-color:#0063dc}.toast-bitbucket{--tblr-toast-color:#0052cc}.toast-tabler{--tblr-toast-color:#206bc4}.toolbar{display:flex;flex-wrap:nowrap;flex-shrink:0;margin:0 -.5rem}.toolbar>*{margin:0 .5rem}.hr-text{display:flex;align-items:center;margin:2rem 0;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976;height:1px}.hr-text:after,.hr-text:before{flex:1 1 auto;background-color:currentColor;opacity:.16}.hr-text:before{content:"";margin-left:.5rem}.hr-text:after{content:"";margin-right:.5rem}.hr-text>:first-child{padding-left:.5rem;padding-right:0;color:#626976}.hr-text.hr-text-right:before{content:none}.hr-text.hr-text-left>:first-child{padding-left:.5rem;padding-right:.5rem}.hr-text.hr-text-left:before{content:""}.hr-text.hr-text-left:after{content:none}.hr-text.hr-text-right>:first-child{padding-left:0;padding-right:.5rem}.card>.hr-text{margin:0}.hr-text-spaceless{margin:-.5rem 0}.lead{line-height:1.4}a{-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.h1 a,.h2 a,.h3 a,.h4 a,.h5 a,.h6 a,h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit}.h1 a:hover,.h2 a:hover,.h3 a:hover,.h4 a:hover,.h5 a:hover,.h6 a:hover,h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{color:inherit}.h1,h1{line-height:1.3333333333}.h2,h2{line-height:1.4}.h3,h3{line-height:1.5}.h4,h4{line-height:1.4285714286}.h5,h5{line-height:1.3333333333}.h6,h6{line-height:1.6}.strong,b,strong{font-weight:600}blockquote{padding-right:1rem;border-right:2px solid #e6e7e9}blockquote p{margin-bottom:1rem}blockquote cite{display:block;text-align:left}blockquote cite:before{content:"— "}ol,ul{padding-right:1.5rem}.hr,hr{margin:2rem 0}dl dd:last-child{margin-bottom:0}code{padding:2px 4px;background:rgba(75,84,98,.03);border:1px solid rgba(75,84,98,.064);border-radius:4px;font-weight:400}pre{padding:1rem;overflow:auto;font-size:.75rem;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.25rem;-moz-tab-size:3;-o-tab-size:3;tab-size:3;border-radius:4px;white-space:pre-wrap;background:#fdfdfe;border:1px solid rgba(98,105,118,.16);-webkit-font-smoothing:auto}pre code{padding:0;background:0 0;border:none;border-radius:0}img{max-width:100%}.list-unstyled{margin-right:0}::-moz-selection{color:#fff;background-color:#307fdd}::selection{color:#fff;background-color:#307fdd}[class*=" link-"].disabled,[class^=link-].disabled{color:#475569;pointer-events:none}.subheader{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;color:#626976}.chart{display:block;min-height:10rem}.chart text{font-family:inherit}.chart-sm{height:2.5rem}.chart-lg{height:15rem}.chart-square{height:5.75rem}.chart-sparkline{position:relative;width:4rem;height:2.5rem;line-height:1;min-height:0!important}.chart-sparkline-sm{height:1.5rem}.chart-sparkline-square{width:2.5rem}.chart-sparkline-wide{width:6rem}.chart-sparkline-label{position:absolute;top:0;left:0;bottom:0;right:0;display:flex;align-items:center;justify-content:center;font-size:.625rem}.chart-sparkline-label .icon{width:1rem;height:1rem;font-size:1rem}.offcanvas{background:var(--tblr-card-bg)}.offcanvas-header{border-bottom:1px solid rgba(98,105,118,.16)}.offcanvas-footer{padding:1.5rem 1.5rem}.offcanvas-title{font-size:1rem;font-weight:500;line-height:1.5rem}.offcanvas-narrow{width:20rem}.bg-white-overlay{color:#fff;background-color:rgba(250,251,252,.24)}.bg-dark-overlay{color:#fff;background-color:rgba(30,41,59,.24)}.bg-cover{background-repeat:no-repeat;background-size:cover;background-position:center}.bg-primary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-primary-rgb),var(--tblr-bg-opacity))!important}.bg-primary-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.bg-secondary{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-secondary-rgb),var(--tblr-bg-opacity))!important}.bg-secondary-lt{color:#626976!important;background:rgba(98,105,118,.05)!important}.bg-success{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-success-rgb),var(--tblr-bg-opacity))!important}.bg-success-lt{color:#2fb344!important;background:rgba(47,179,68,.05)!important}.bg-info{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-info-rgb),var(--tblr-bg-opacity))!important}.bg-info-lt{color:#4299e1!important;background:rgba(66,153,225,.05)!important}.bg-warning{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-warning-rgb),var(--tblr-bg-opacity))!important}.bg-warning-lt{color:#f76707!important;background:rgba(247,103,7,.05)!important}.bg-danger{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-danger-rgb),var(--tblr-bg-opacity))!important}.bg-danger-lt{color:#d63939!important;background:rgba(214,57,57,.05)!important}.bg-light{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-light-rgb),var(--tblr-bg-opacity))!important}.bg-light-lt{color:#fafbfc!important;background:rgba(250,251,252,.05)!important}.bg-dark{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dark-rgb),var(--tblr-bg-opacity))!important}.bg-dark-lt{color:#1e293b!important;background:rgba(30,41,59,.05)!important}.bg-muted{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-muted-rgb),var(--tblr-bg-opacity))!important}.bg-muted-lt{color:#626976!important;background:rgba(98,105,118,.05)!important}.bg-blue{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-blue-rgb),var(--tblr-bg-opacity))!important}.bg-blue-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.bg-azure{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-azure-rgb),var(--tblr-bg-opacity))!important}.bg-azure-lt{color:#4299e1!important;background:rgba(66,153,225,.05)!important}.bg-indigo{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-indigo-rgb),var(--tblr-bg-opacity))!important}.bg-indigo-lt{color:#4263eb!important;background:rgba(66,99,235,.05)!important}.bg-purple{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-purple-rgb),var(--tblr-bg-opacity))!important}.bg-purple-lt{color:#ae3ec9!important;background:rgba(174,62,201,.05)!important}.bg-pink{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-pink-rgb),var(--tblr-bg-opacity))!important}.bg-pink-lt{color:#d6336c!important;background:rgba(214,51,108,.05)!important}.bg-red{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-red-rgb),var(--tblr-bg-opacity))!important}.bg-red-lt{color:#d63939!important;background:rgba(214,57,57,.05)!important}.bg-orange{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-orange-rgb),var(--tblr-bg-opacity))!important}.bg-orange-lt{color:#f76707!important;background:rgba(247,103,7,.05)!important}.bg-yellow{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-yellow-rgb),var(--tblr-bg-opacity))!important}.bg-yellow-lt{color:#f59f00!important;background:rgba(245,159,0,.05)!important}.bg-lime{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-lime-rgb),var(--tblr-bg-opacity))!important}.bg-lime-lt{color:#74b816!important;background:rgba(116,184,22,.05)!important}.bg-green{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-green-rgb),var(--tblr-bg-opacity))!important}.bg-green-lt{color:#2fb344!important;background:rgba(47,179,68,.05)!important}.bg-teal{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-teal-rgb),var(--tblr-bg-opacity))!important}.bg-teal-lt{color:#0ca678!important;background:rgba(12,166,120,.05)!important}.bg-cyan{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-cyan-rgb),var(--tblr-bg-opacity))!important}.bg-cyan-lt{color:#17a2b8!important;background:rgba(23,162,184,.05)!important}.bg-facebook{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-facebook-rgb),var(--tblr-bg-opacity))!important}.bg-facebook-lt{color:#3b5998!important;background:rgba(59,89,152,.05)!important}.bg-twitter{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-twitter-rgb),var(--tblr-bg-opacity))!important}.bg-twitter-lt{color:#1da1f2!important;background:rgba(29,161,242,.05)!important}.bg-linkedin{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-bg-opacity))!important}.bg-linkedin-lt{color:#0a66c2!important;background:rgba(10,102,194,.05)!important}.bg-google{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-google-rgb),var(--tblr-bg-opacity))!important}.bg-google-lt{color:#dc4e41!important;background:rgba(220,78,65,.05)!important}.bg-youtube{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-youtube-rgb),var(--tblr-bg-opacity))!important}.bg-youtube-lt{color:red!important;background:rgba(255,0,0,.05)!important}.bg-vimeo{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-bg-opacity))!important}.bg-vimeo-lt{color:#1ab7ea!important;background:rgba(26,183,234,.05)!important}.bg-dribbble{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-bg-opacity))!important}.bg-dribbble-lt{color:#ea4c89!important;background:rgba(234,76,137,.05)!important}.bg-github{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-github-rgb),var(--tblr-bg-opacity))!important}.bg-github-lt{color:#181717!important;background:rgba(24,23,23,.05)!important}.bg-instagram{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-instagram-rgb),var(--tblr-bg-opacity))!important}.bg-instagram-lt{color:#e4405f!important;background:rgba(228,64,95,.05)!important}.bg-pinterest{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-bg-opacity))!important}.bg-pinterest-lt{color:#bd081c!important;background:rgba(189,8,28,.05)!important}.bg-vk{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-vk-rgb),var(--tblr-bg-opacity))!important}.bg-vk-lt{color:#6383a8!important;background:rgba(99,131,168,.05)!important}.bg-rss{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-rss-rgb),var(--tblr-bg-opacity))!important}.bg-rss-lt{color:orange!important;background:rgba(255,165,0,.05)!important}.bg-flickr{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-flickr-rgb),var(--tblr-bg-opacity))!important}.bg-flickr-lt{color:#0063dc!important;background:rgba(0,99,220,.05)!important}.bg-bitbucket{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-bg-opacity))!important}.bg-bitbucket-lt{color:#0052cc!important;background:rgba(0,82,204,.05)!important}.bg-tabler{--tblr-bg-opacity:1;background-color:rgba(var(--tblr-tabler-rgb),var(--tblr-bg-opacity))!important}.bg-tabler-lt{color:#206bc4!important;background:rgba(32,107,196,.05)!important}.text-primary{color:var(--tblr-primary)!important}.text-secondary{color:var(--tblr-secondary)!important}.text-success{color:var(--tblr-success)!important}.text-info{color:var(--tblr-info)!important}.text-warning{color:var(--tblr-warning)!important}.text-danger{color:var(--tblr-danger)!important}.text-light{color:var(--tblr-light)!important}.text-dark{color:var(--tblr-dark)!important}.text-muted{color:var(--tblr-muted)!important}.text-blue{color:var(--tblr-blue)!important}.text-azure{color:var(--tblr-azure)!important}.text-indigo{color:var(--tblr-indigo)!important}.text-purple{color:var(--tblr-purple)!important}.text-pink{color:var(--tblr-pink)!important}.text-red{color:var(--tblr-red)!important}.text-orange{color:var(--tblr-orange)!important}.text-yellow{color:var(--tblr-yellow)!important}.text-lime{color:var(--tblr-lime)!important}.text-green{color:var(--tblr-green)!important}.text-teal{color:var(--tblr-teal)!important}.text-cyan{color:var(--tblr-cyan)!important}.text-facebook{color:var(--tblr-facebook)!important}.text-twitter{color:var(--tblr-twitter)!important}.text-linkedin{color:var(--tblr-linkedin)!important}.text-google{color:var(--tblr-google)!important}.text-youtube{color:var(--tblr-youtube)!important}.text-vimeo{color:var(--tblr-vimeo)!important}.text-dribbble{color:var(--tblr-dribbble)!important}.text-github{color:var(--tblr-github)!important}.text-instagram{color:var(--tblr-instagram)!important}.text-pinterest{color:var(--tblr-pinterest)!important}.text-vk{color:var(--tblr-vk)!important}.text-rss{color:var(--tblr-rss)!important}.text-flickr{color:var(--tblr-flickr)!important}.text-bitbucket{color:var(--tblr-bitbucket)!important}.text-tabler{color:var(--tblr-tabler)!important}.scrollable{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.hover{overflow-y:hidden}.scrollable.hover>*{margin-top:-1px}.scrollable.hover:active,.scrollable.hover:focus,.scrollable.hover:hover{overflow:visible;overflow-y:auto}.touch .scrollable{overflow-y:auto!important}.scroll-x,.scroll-y{overflow:hidden;-webkit-overflow-scrolling:touch}.scroll-y{overflow-y:auto}.scroll-x{overflow-x:auto}.no-scroll{overflow:hidden}.w-0{width:0!important}.h-0{height:0!important}.w-1{width:.25rem!important}.h-1{height:.25rem!important}.w-2{width:.5rem!important}.h-2{height:.5rem!important}.w-3{width:1rem!important}.h-3{height:1rem!important}.w-4{width:2rem!important}.h-4{height:2rem!important}.w-5{width:4rem!important}.h-5{height:4rem!important}.w-auto{width:auto!important}.h-auto{height:auto!important}.w-px{width:1px!important}.h-px{height:1px!important}.w-full{width:100%!important}.h-full{height:100%!important}.opacity-0{opacity:0!important}.opacity-5{opacity:.05!important}.opacity-10{opacity:.1!important}.opacity-15{opacity:.15!important}.opacity-20{opacity:.2!important}.opacity-25{opacity:.25!important}.opacity-30{opacity:.3!important}.opacity-35{opacity:.35!important}.opacity-40{opacity:.4!important}.opacity-45{opacity:.45!important}.opacity-50{opacity:.5!important}.opacity-55{opacity:.55!important}.opacity-60{opacity:.6!important}.opacity-65{opacity:.65!important}.opacity-70{opacity:.7!important}.opacity-75{opacity:.75!important}.opacity-80{opacity:.8!important}.opacity-85{opacity:.85!important}.opacity-90{opacity:.9!important}.opacity-95{opacity:.95!important}.opacity-100{opacity:1!important}.hover-shadow-sm:hover{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.hover-shadow:hover{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.hover-shadow-lg:hover{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.hover-shadow-none:hover{box-shadow:none!important}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto} \ No newline at end of file diff --git a/demo/dist/js/demo.js b/demo/dist/js/demo.js index 3cda73a5d..a410a0bed 100644 --- a/demo/dist/js/demo.js +++ b/demo/dist/js/demo.js @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/js/demo.min.js b/demo/dist/js/demo.min.js index 93c91d2ca..d3ec4cd24 100644 --- a/demo/dist/js/demo.min.js +++ b/demo/dist/js/demo.min.js @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna diff --git a/demo/dist/js/tabler.esm.js b/demo/dist/js/tabler.esm.js index 4b9aeb4b6..1f6d214ed 100644 --- a/demo/dist/js/tabler.esm.js +++ b/demo/dist/js/tabler.esm.js @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna @@ -4632,18 +4632,18 @@ var Popper = /*#__PURE__*/Object.freeze({ }); /*! - * Bootstrap v5.1.3 (https://getbootstrap.com/) - * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Bootstrap v5.2.0 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ const MAX_UID = 1000000; const MILLISECONDS_MULTIPLIER = 1000; const TRANSITION_END = 'transitionend'; -const toType = obj => { - if (obj === null || obj === undefined) { - return `${obj}`; +const toType = object => { + if (object === null || object === undefined) { + return `${object}`; } - return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); + return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); }; const getUID = prefix => { do { @@ -4654,14 +4654,14 @@ const getUID = prefix => { const getSelector = element => { let selector = element.getAttribute('data-bs-target'); if (!selector || selector === '#') { - let hrefAttr = element.getAttribute('href'); - if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + let hrefAttribute = element.getAttribute('href'); + if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) { return null; } - if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { - hrefAttr = `#${hrefAttr.split('#')[1]}`; + if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) { + hrefAttribute = `#${hrefAttribute.split('#')[1]}`; } - selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; + selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; } return selector; }; @@ -4696,39 +4696,43 @@ const getTransitionDurationFromElement = element => { const triggerTransitionEnd = element => { element.dispatchEvent(new Event(TRANSITION_END)); }; -const isElement = obj => { - if (!obj || typeof obj !== 'object') { +const isElement = object => { + if (!object || typeof object !== 'object') { return false; } - if (typeof obj.jquery !== 'undefined') { - obj = obj[0]; + if (typeof object.jquery !== 'undefined') { + object = object[0]; } - return typeof obj.nodeType !== 'undefined'; + return typeof object.nodeType !== 'undefined'; }; -const getElement = obj => { - if (isElement(obj)) { - return obj.jquery ? obj[0] : obj; +const getElement = object => { + if (isElement(object)) { + return object.jquery ? object[0] : object; } - if (typeof obj === 'string' && obj.length > 0) { - return document.querySelector(obj); + if (typeof object === 'string' && object.length > 0) { + return document.querySelector(object); } return null; }; -const typeCheckConfig = (componentName, config, configTypes) => { - Object.keys(configTypes).forEach(property => { - const expectedTypes = configTypes[property]; - const value = config[property]; - const valueType = value && isElement(value) ? 'element' : toType(value); - if (!new RegExp(expectedTypes).test(valueType)) { - throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); - } - }); -}; const isVisible = element => { if (!isElement(element) || element.getClientRects().length === 0) { return false; } - return getComputedStyle(element).getPropertyValue('visibility') === 'visible'; + const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; + const closedDetails = element.closest('details:not([open])'); + if (!closedDetails) { + return elementIsVisible; + } + if (closedDetails !== element) { + const summary = element.closest('summary'); + if (summary && summary.parentNode !== closedDetails) { + return false; + } + if (summary === null) { + return false; + } + } + return elementIsVisible; }; const isDisabled = element => { if (!element || element.nodeType !== Node.ELEMENT_NODE) { @@ -4763,11 +4767,8 @@ const reflow = element => { element.offsetHeight; }; const getjQuery = () => { - const { - jQuery - } = window; - if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { - return jQuery; + if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return window.jQuery; } return null; }; @@ -4776,7 +4777,9 @@ const onDOMContentLoaded = callback => { if (document.readyState === 'loading') { if (!DOMContentLoadedCallbacks.length) { document.addEventListener('DOMContentLoaded', () => { - DOMContentLoadedCallbacks.forEach(callback => callback()); + for (const callback of DOMContentLoadedCallbacks) { + callback(); + } }); } DOMContentLoadedCallbacks.push(callback); @@ -4831,11 +4834,11 @@ const executeAfterTransition = (callback, transitionElement, waitForTransition = }, emulatedDuration); }; const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { + const listLength = list.length; let index = list.indexOf(activeElement); if (index === -1) { - return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]; + return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; } - const listLength = list.length; index += shouldGetNext ? 1 : -1; if (isCycleAllowed) { index = (index + listLength) % listLength; @@ -4851,20 +4854,21 @@ const customEvents = { mouseenter: 'mouseover', mouseleave: 'mouseout' }; -const customEventsRegex = /^(mouseenter|mouseleave)/i; const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); -function getUidEvent(element, uid) { +function makeEventUid(element, uid) { return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; } -function getEvent(element) { - const uid = getUidEvent(element); +function getElementEvents(element) { + const uid = makeEventUid(element); element.uidEvent = uid; eventRegistry[uid] = eventRegistry[uid] || {}; return eventRegistry[uid]; } function bootstrapHandler(element, fn) { return function handler(event) { - event.delegateTarget = element; + hydrateObj(event, { + delegateTarget: element + }); if (handler.oneOff) { EventHandler.off(element, event.type, fn); } @@ -4877,77 +4881,63 @@ function bootstrapDelegationHandler(element, selector, fn) { for (let { target } = event; target && target !== this; target = target.parentNode) { - for (let i = domElements.length; i--;) { - if (domElements[i] === target) { - event.delegateTarget = target; - if (handler.oneOff) { - EventHandler.off(element, event.type, selector, fn); - } - return fn.apply(target, [event]); + for (const domElement of domElements) { + if (domElement !== target) { + continue; } + hydrateObj(event, { + delegateTarget: target + }); + if (handler.oneOff) { + EventHandler.off(element, event.type, selector, fn); + } + return fn.apply(target, [event]); } } - return null; }; } -function findHandler(events, handler, delegationSelector = null) { - const uidEventList = Object.keys(events); - for (let i = 0, len = uidEventList.length; i < len; i++) { - const event = events[uidEventList[i]]; - if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { - return event; - } - } - return null; +function findHandler(events, callable, delegationSelector = null) { + return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector); } -function normalizeParams(originalTypeEvent, handler, delegationFn) { - const delegation = typeof handler === 'string'; - const originalHandler = delegation ? delegationFn : handler; +function normalizeParameters(originalTypeEvent, handler, delegationFunction) { + const isDelegated = typeof handler === 'string'; + const callable = isDelegated ? delegationFunction : handler || delegationFunction; let typeEvent = getTypeEvent(originalTypeEvent); - const isNative = nativeEvents.has(typeEvent); - if (!isNative) { + if (!nativeEvents.has(typeEvent)) { typeEvent = originalTypeEvent; } - return [delegation, originalHandler, typeEvent]; + return [isDelegated, callable, typeEvent]; } -function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) { +function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { if (typeof originalTypeEvent !== 'string' || !element) { return; } - if (!handler) { - handler = delegationFn; - delegationFn = null; - } - if (customEventsRegex.test(originalTypeEvent)) { - const wrapFn = fn => { + let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); + if (originalTypeEvent in customEvents) { + const wrapFunction = fn => { return function (event) { if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { return fn.call(this, event); } }; }; - if (delegationFn) { - delegationFn = wrapFn(delegationFn); - } else { - handler = wrapFn(handler); - } + callable = wrapFunction(callable); } - const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); - const events = getEvent(element); + const events = getElementEvents(element); const handlers = events[typeEvent] || (events[typeEvent] = {}); - const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); - if (previousFn) { - previousFn.oneOff = previousFn.oneOff && oneOff; + const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); + if (previousFunction) { + previousFunction.oneOff = previousFunction.oneOff && oneOff; return; } - const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); - const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); - fn.delegationSelector = delegation ? handler : null; - fn.originalHandler = originalHandler; + const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, '')); + const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); + fn.delegationSelector = isDelegated ? handler : null; + fn.callable = callable; fn.oneOff = oneOff; fn.uidEvent = uid; handlers[uid] = fn; - element.addEventListener(typeEvent, fn, delegation); + element.addEventListener(typeEvent, fn, isDelegated); } function removeHandler(element, events, typeEvent, handler, delegationSelector) { const fn = findHandler(events[typeEvent], handler, delegationSelector); @@ -4959,52 +4949,52 @@ function removeHandler(element, events, typeEvent, handler, delegationSelector) } function removeNamespacedHandlers(element, events, typeEvent, namespace) { const storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(handlerKey => { + for (const handlerKey of Object.keys(storeElementEvent)) { if (handlerKey.includes(namespace)) { const event = storeElementEvent[handlerKey]; - removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); } - }); + } } function getTypeEvent(event) { event = event.replace(stripNameRegex, ''); return customEvents[event] || event; } const EventHandler = { - on(element, event, handler, delegationFn) { - addHandler(element, event, handler, delegationFn, false); + on(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, false); }, - one(element, event, handler, delegationFn) { - addHandler(element, event, handler, delegationFn, true); + one(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, true); }, - off(element, originalTypeEvent, handler, delegationFn) { + off(element, originalTypeEvent, handler, delegationFunction) { if (typeof originalTypeEvent !== 'string' || !element) { return; } - const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); + const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); const inNamespace = typeEvent !== originalTypeEvent; - const events = getEvent(element); + const events = getElementEvents(element); + const storeElementEvent = events[typeEvent] || {}; const isNamespace = originalTypeEvent.startsWith('.'); - if (typeof originalHandler !== 'undefined') { - if (!events || !events[typeEvent]) { + if (typeof callable !== 'undefined') { + if (!Object.keys(storeElementEvent).length) { return; } - removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null); + removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); return; } if (isNamespace) { - Object.keys(events).forEach(elementEvent => { + for (const elementEvent of Object.keys(events)) { removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); - }); + } } - const storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(keyHandlers => { + for (const keyHandlers of Object.keys(storeElementEvent)) { const handlerKey = keyHandlers.replace(stripUidRegex, ''); if (!inNamespace || originalTypeEvent.includes(handlerKey)) { const event = storeElementEvent[keyHandlers]; - removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); } - }); + } }, trigger(element, event, args) { if (typeof event !== 'string' || !element) { @@ -5013,12 +5003,10 @@ const EventHandler = { const $ = getjQuery(); const typeEvent = getTypeEvent(event); const inNamespace = event !== typeEvent; - const isNative = nativeEvents.has(typeEvent); - let jQueryEvent; + let jQueryEvent = null; let bubbles = true; let nativeDispatch = true; let defaultPrevented = false; - let evt = null; if (inNamespace && $) { jQueryEvent = $.Event(event, args); $(element).trigger(jQueryEvent); @@ -5026,36 +5014,38 @@ const EventHandler = { nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); defaultPrevented = jQueryEvent.isDefaultPrevented(); } - if (isNative) { - evt = document.createEvent('HTMLEvents'); - evt.initEvent(typeEvent, bubbles, true); - } else { - evt = new CustomEvent(event, { - bubbles, - cancelable: true - }); - } - if (typeof args !== 'undefined') { - Object.keys(args).forEach(key => { - Object.defineProperty(evt, key, { - get() { - return args[key]; - } - }); - }); - } + let evt = new Event(event, { + bubbles, + cancelable: true + }); + evt = hydrateObj(evt, args); if (defaultPrevented) { evt.preventDefault(); } if (nativeDispatch) { element.dispatchEvent(evt); } - if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') { + if (evt.defaultPrevented && jQueryEvent) { jQueryEvent.preventDefault(); } return evt; } }; +function hydrateObj(obj, meta) { + for (const [key, value] of Object.entries(meta || {})) { + try { + obj[key] = value; + } catch (_unused) { + Object.defineProperty(obj, key, { + configurable: true, + get() { + return value; + } + }); + } + } + return obj; +} const elementMap = new Map(); const Data = { set(element, key, instance) { @@ -5086,26 +5076,121 @@ const Data = { } } }; -const VERSION = '5.1.3'; -class BaseComponent { - constructor(element) { +function normalizeData(value) { + if (value === 'true') { + return true; + } + if (value === 'false') { + return false; + } + if (value === Number(value).toString()) { + return Number(value); + } + if (value === '' || value === 'null') { + return null; + } + if (typeof value !== 'string') { + return value; + } + try { + return JSON.parse(decodeURIComponent(value)); + } catch (_unused) { + return value; + } +} +function normalizeDataKey(key) { + return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); +} +const Manipulator = { + setDataAttribute(element, key, value) { + element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); + }, + removeDataAttribute(element, key) { + element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); + }, + getDataAttributes(element) { + if (!element) { + return {}; + } + const attributes = {}; + const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig')); + for (const key of bsKeys) { + let pureKey = key.replace(/^bs/, ''); + pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); + attributes[pureKey] = normalizeData(element.dataset[key]); + } + return attributes; + }, + getDataAttribute(element, key) { + return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); + } +}; +class Config { + static get Default() { + return {}; + } + static get DefaultType() { + return {}; + } + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!'); + } + _getConfig(config) { + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { + return config; + } + _mergeConfigObj(config, element) { + const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; + return { ...this.constructor.Default, + ...(typeof jsonConfig === 'object' ? jsonConfig : {}), + ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), + ...(typeof config === 'object' ? config : {}) + }; + } + _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { + for (const property of Object.keys(configTypes)) { + const expectedTypes = configTypes[property]; + const value = config[property]; + const valueType = isElement(value) ? 'element' : toType(value); + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); + } + } + } +} +const VERSION = '5.2.0'; +class BaseComponent extends Config { + constructor(element, config) { + super(); element = getElement(element); if (!element) { return; } this._element = element; + this._config = this._getConfig(config); Data.set(this._element, this.constructor.DATA_KEY, this); } dispose() { Data.remove(this._element, this.constructor.DATA_KEY); EventHandler.off(this._element, this.constructor.EVENT_KEY); - Object.getOwnPropertyNames(this).forEach(propertyName => { + for (const propertyName of Object.getOwnPropertyNames(this)) { this[propertyName] = null; - }); + } } _queueCallback(callback, element, isAnimated = true) { executeAfterTransition(callback, element, isAnimated); } + _getConfig(config) { + config = this._mergeConfigObj(config, this._element); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } static getInstance(element) { return Data.get(getElement(element), this.DATA_KEY); } @@ -5115,15 +5200,15 @@ class BaseComponent { static get VERSION() { return VERSION; } - static get NAME() { - throw new Error('You have to implement the static method "NAME", for each component!'); - } static get DATA_KEY() { return `bs.${this.NAME}`; } static get EVENT_KEY() { return `.${this.DATA_KEY}`; } + static eventName(name) { + return `${name}${this.EVENT_KEY}`; + } } const enableDismissTrigger = (component, method = 'hide') => { const clickEvent = `click.dismiss${component.EVENT_KEY}`; @@ -5140,16 +5225,16 @@ const enableDismissTrigger = (component, method = 'hide') => { instance[method](); }); }; -const NAME$d = 'alert'; -const DATA_KEY$c = 'bs.alert'; -const EVENT_KEY$c = `.${DATA_KEY$c}`; -const EVENT_CLOSE = `close${EVENT_KEY$c}`; -const EVENT_CLOSED = `closed${EVENT_KEY$c}`; +const NAME$f = 'alert'; +const DATA_KEY$a = 'bs.alert'; +const EVENT_KEY$b = `.${DATA_KEY$a}`; +const EVENT_CLOSE = `close${EVENT_KEY$b}`; +const EVENT_CLOSED = `closed${EVENT_KEY$b}`; const CLASS_NAME_FADE$5 = 'fade'; const CLASS_NAME_SHOW$8 = 'show'; class Alert extends BaseComponent { static get NAME() { - return NAME$d; + return NAME$f; } close() { const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); @@ -5180,16 +5265,16 @@ class Alert extends BaseComponent { } enableDismissTrigger(Alert, 'close'); defineJQueryPlugin(Alert); -const NAME$c = 'button'; -const DATA_KEY$b = 'bs.button'; -const EVENT_KEY$b = `.${DATA_KEY$b}`; -const DATA_API_KEY$7 = '.data-api'; +const NAME$e = 'button'; +const DATA_KEY$9 = 'bs.button'; +const EVENT_KEY$a = `.${DATA_KEY$9}`; +const DATA_API_KEY$6 = '.data-api'; const CLASS_NAME_ACTIVE$3 = 'active'; const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; -const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$b}${DATA_API_KEY$7}`; +const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; class Button extends BaseComponent { static get NAME() { - return NAME$c; + return NAME$e; } toggle() { this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); @@ -5210,61 +5295,6 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event data.toggle(); }); defineJQueryPlugin(Button); -function normalizeData(val) { - if (val === 'true') { - return true; - } - if (val === 'false') { - return false; - } - if (val === Number(val).toString()) { - return Number(val); - } - if (val === '' || val === 'null') { - return null; - } - return val; -} -function normalizeDataKey(key) { - return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); -} -const Manipulator = { - setDataAttribute(element, key, value) { - element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); - }, - removeDataAttribute(element, key) { - element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); - }, - getDataAttributes(element) { - if (!element) { - return {}; - } - const attributes = {}; - Object.keys(element.dataset).filter(key => key.startsWith('bs')).forEach(key => { - let pureKey = key.replace(/^bs/, ''); - pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); - attributes[pureKey] = normalizeData(element.dataset[key]); - }); - return attributes; - }, - getDataAttribute(element, key) { - return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); - }, - offset(element) { - const rect = element.getBoundingClientRect(); - return { - top: rect.top + window.pageYOffset, - left: rect.left + window.pageXOffset - }; - }, - position(element) { - return { - top: element.offsetTop, - left: element.offsetLeft - }; - } -}; -const NODE_TEXT = 3; const SelectorEngine = { find(selector, element = document.documentElement) { return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); @@ -5277,12 +5307,10 @@ const SelectorEngine = { }, parents(element, selector) { const parents = []; - let ancestor = element.parentNode; - while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { - if (ancestor.matches(selector)) { - parents.push(ancestor); - } - ancestor = ancestor.parentNode; + let ancestor = element.parentNode.closest(selector); + while (ancestor) { + parents.push(ancestor); + ancestor = ancestor.parentNode.closest(selector); } return parents; }, @@ -5307,55 +5335,123 @@ const SelectorEngine = { return []; }, focusableChildren(element) { - const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(', '); + const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(','); return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el)); } }; -const NAME$b = 'carousel'; -const DATA_KEY$a = 'bs.carousel'; -const EVENT_KEY$a = `.${DATA_KEY$a}`; -const DATA_API_KEY$6 = '.data-api'; -const ARROW_LEFT_KEY = 'ArrowLeft'; -const ARROW_RIGHT_KEY = 'ArrowRight'; -const TOUCHEVENT_COMPAT_WAIT = 500; +const NAME$d = 'swipe'; +const EVENT_KEY$9 = '.bs.swipe'; +const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; +const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; +const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; +const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; +const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; +const POINTER_TYPE_TOUCH = 'touch'; +const POINTER_TYPE_PEN = 'pen'; +const CLASS_NAME_POINTER_EVENT = 'pointer-event'; const SWIPE_THRESHOLD = 40; -const Default$a = { - interval: 5000, - keyboard: true, - slide: false, - pause: 'hover', - wrap: true, - touch: true +const Default$c = { + endCallback: null, + leftCallback: null, + rightCallback: null }; -const DefaultType$a = { - interval: '(number|boolean)', - keyboard: 'boolean', - slide: '(boolean|string)', - pause: '(string|boolean)', - wrap: 'boolean', - touch: 'boolean' +const DefaultType$c = { + endCallback: '(function|null)', + leftCallback: '(function|null)', + rightCallback: '(function|null)' }; +class Swipe extends Config { + constructor(element, config) { + super(); + this._element = element; + if (!element || !Swipe.isSupported()) { + return; + } + this._config = this._getConfig(config); + this._deltaX = 0; + this._supportPointerEvents = Boolean(window.PointerEvent); + this._initEvents(); + } + static get Default() { + return Default$c; + } + static get DefaultType() { + return DefaultType$c; + } + static get NAME() { + return NAME$d; + } + dispose() { + EventHandler.off(this._element, EVENT_KEY$9); + } + _start(event) { + if (!this._supportPointerEvents) { + this._deltaX = event.touches[0].clientX; + return; + } + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX; + } + } + _end(event) { + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX - this._deltaX; + } + this._handleSwipe(); + execute(this._config.endCallback); + } + _move(event) { + this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; + } + _handleSwipe() { + const absDeltaX = Math.abs(this._deltaX); + if (absDeltaX <= SWIPE_THRESHOLD) { + return; + } + const direction = absDeltaX / this._deltaX; + this._deltaX = 0; + if (!direction) { + return; + } + execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); + } + _initEvents() { + if (this._supportPointerEvents) { + EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event)); + this._element.classList.add(CLASS_NAME_POINTER_EVENT); + } else { + EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event)); + } + } + _eventIsPointerPenTouch(event) { + return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); + } + static isSupported() { + return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + } +} +const NAME$c = 'carousel'; +const DATA_KEY$8 = 'bs.carousel'; +const EVENT_KEY$8 = `.${DATA_KEY$8}`; +const DATA_API_KEY$5 = '.data-api'; +const ARROW_LEFT_KEY$1 = 'ArrowLeft'; +const ARROW_RIGHT_KEY$1 = 'ArrowRight'; +const TOUCHEVENT_COMPAT_WAIT = 500; const ORDER_NEXT = 'next'; const ORDER_PREV = 'prev'; const DIRECTION_LEFT = 'left'; const DIRECTION_RIGHT = 'right'; -const KEY_TO_DIRECTION = { - [ARROW_LEFT_KEY]: DIRECTION_RIGHT, - [ARROW_RIGHT_KEY]: DIRECTION_LEFT -}; -const EVENT_SLIDE = `slide${EVENT_KEY$a}`; -const EVENT_SLID = `slid${EVENT_KEY$a}`; -const EVENT_KEYDOWN = `keydown${EVENT_KEY$a}`; -const EVENT_MOUSEENTER = `mouseenter${EVENT_KEY$a}`; -const EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY$a}`; -const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$a}`; -const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$a}`; -const EVENT_TOUCHEND = `touchend${EVENT_KEY$a}`; -const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$a}`; -const EVENT_POINTERUP = `pointerup${EVENT_KEY$a}`; -const EVENT_DRAG_START = `dragstart${EVENT_KEY$a}`; -const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$a}${DATA_API_KEY$6}`; -const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; +const EVENT_SLIDE = `slide${EVENT_KEY$8}`; +const EVENT_SLID = `slid${EVENT_KEY$8}`; +const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`; +const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`; +const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`; +const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`; +const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`; +const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; const CLASS_NAME_CAROUSEL = 'carousel'; const CLASS_NAME_ACTIVE$2 = 'active'; const CLASS_NAME_SLIDE = 'slide'; @@ -5363,40 +5459,55 @@ const CLASS_NAME_END = 'carousel-item-end'; const CLASS_NAME_START = 'carousel-item-start'; const CLASS_NAME_NEXT = 'carousel-item-next'; const CLASS_NAME_PREV = 'carousel-item-prev'; -const CLASS_NAME_POINTER_EVENT = 'pointer-event'; -const SELECTOR_ACTIVE$1 = '.active'; -const SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; +const SELECTOR_ACTIVE = '.active'; const SELECTOR_ITEM = '.carousel-item'; +const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM; const SELECTOR_ITEM_IMG = '.carousel-item img'; -const SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; const SELECTOR_INDICATORS = '.carousel-indicators'; -const SELECTOR_INDICATOR = '[data-bs-target]'; const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; -const POINTER_TYPE_TOUCH = 'touch'; -const POINTER_TYPE_PEN = 'pen'; +const KEY_TO_DIRECTION = { + [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, + [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT +}; +const Default$b = { + interval: 5000, + keyboard: true, + pause: 'hover', + ride: false, + touch: true, + wrap: true +}; +const DefaultType$b = { + interval: '(number|boolean)', + keyboard: 'boolean', + pause: '(string|boolean)', + ride: '(boolean|string)', + touch: 'boolean', + wrap: 'boolean' +}; class Carousel extends BaseComponent { constructor(element, config) { - super(element); - this._items = null; + super(element, config); this._interval = null; this._activeElement = null; - this._isPaused = false; this._isSliding = false; this.touchTimeout = null; - this.touchStartX = 0; - this.touchDeltaX = 0; - this._config = this._getConfig(config); + this._swipeHelper = null; this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); - this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; - this._pointerEvent = Boolean(window.PointerEvent); this._addEventListeners(); + if (this._config.ride === CLASS_NAME_CAROUSEL) { + this.cycle(); + } } static get Default() { - return Default$a; + return Default$b; + } + static get DefaultType() { + return DefaultType$b; } static get NAME() { - return NAME$b; + return NAME$c; } next() { this._slide(ORDER_NEXT); @@ -5409,119 +5520,85 @@ class Carousel extends BaseComponent { prev() { this._slide(ORDER_PREV); } - pause(event) { - if (!event) { - this._isPaused = true; - } - if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) { + pause() { + if (this._isSliding) { triggerTransitionEnd(this._element); - this.cycle(true); } - clearInterval(this._interval); - this._interval = null; + this._clearInterval(); } - cycle(event) { - if (!event) { - this._isPaused = false; + cycle() { + this._clearInterval(); + this._updateInterval(); + this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); + } + _maybeEnableCycle() { + if (!this._config.ride) { + return; } - if (this._interval) { - clearInterval(this._interval); - this._interval = null; - } - if (this._config && this._config.interval && !this._isPaused) { - this._updateInterval(); - this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); + return; } + this.cycle(); } to(index) { - this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - const activeIndex = this._getItemIndex(this._activeElement); - if (index > this._items.length - 1 || index < 0) { + const items = this._getItems(); + if (index > items.length - 1 || index < 0) { return; } if (this._isSliding) { EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); return; } + const activeIndex = this._getItemIndex(this._getActive()); if (activeIndex === index) { - this.pause(); - this.cycle(); return; } const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; - this._slide(order, this._items[index]); + this._slide(order, items[index]); } - _getConfig(config) { - config = { ...Default$a, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' ? config : {}) - }; - typeCheckConfig(NAME$b, config, DefaultType$a); + dispose() { + if (this._swipeHelper) { + this._swipeHelper.dispose(); + } + super.dispose(); + } + _configAfterMerge(config) { + config.defaultInterval = config.interval; return config; } - _handleSwipe() { - const absDeltax = Math.abs(this.touchDeltaX); - if (absDeltax <= SWIPE_THRESHOLD) { - return; - } - const direction = absDeltax / this.touchDeltaX; - this.touchDeltaX = 0; - if (!direction) { - return; - } - this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT); - } _addEventListeners() { if (this._config.keyboard) { - EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); + EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event)); } if (this._config.pause === 'hover') { - EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event)); - EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event)); + EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); + EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); } - if (this._config.touch && this._touchSupported) { + if (this._config.touch && Swipe.isSupported()) { this._addTouchEventListeners(); } } _addTouchEventListeners() { - const hasPointerPenTouch = event => { - return this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); - }; - const start = event => { - if (hasPointerPenTouch(event)) { - this.touchStartX = event.clientX; - } else if (!this._pointerEvent) { - this.touchStartX = event.touches[0].clientX; - } - }; - const move = event => { - this.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this.touchStartX; - }; - const end = event => { - if (hasPointerPenTouch(event)) { - this.touchDeltaX = event.clientX - this.touchStartX; - } - this._handleSwipe(); - if (this._config.pause === 'hover') { - this.pause(); - if (this.touchTimeout) { - clearTimeout(this.touchTimeout); - } - this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval); - } - }; - SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => { - EventHandler.on(itemImg, EVENT_DRAG_START, event => event.preventDefault()); - }); - if (this._pointerEvent) { - EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event)); - EventHandler.on(this._element, EVENT_POINTERUP, event => end(event)); - this._element.classList.add(CLASS_NAME_POINTER_EVENT); - } else { - EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event)); - EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event)); - EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event)); + for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { + EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault()); } + const endCallBack = () => { + if (this._config.pause !== 'hover') { + return; + } + this.pause(); + if (this.touchTimeout) { + clearTimeout(this.touchTimeout); + } + this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval); + }; + const swipeConfig = { + leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), + rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), + endCallback: endCallBack + }; + this._swipeHelper = new Swipe(this._element, swipeConfig); } _keydown(event) { if (/input|textarea/i.test(event.target.tagName)) { @@ -5530,207 +5607,162 @@ class Carousel extends BaseComponent { const direction = KEY_TO_DIRECTION[event.key]; if (direction) { event.preventDefault(); - this._slide(direction); + this._slide(this._directionToOrder(direction)); } } _getItemIndex(element) { - this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : []; - return this._items.indexOf(element); + return this._getItems().indexOf(element); } - _getItemByOrder(order, activeElement) { - const isNext = order === ORDER_NEXT; - return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap); - } - _triggerSlideEvent(relatedTarget, eventDirectionName) { - const targetIndex = this._getItemIndex(relatedTarget); - const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)); - return EventHandler.trigger(this._element, EVENT_SLIDE, { - relatedTarget, - direction: eventDirectionName, - from: fromIndex, - to: targetIndex - }); - } - _setActiveIndicatorElement(element) { - if (this._indicatorsElement) { - const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement); - activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); - activeIndicator.removeAttribute('aria-current'); - const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement); - for (let i = 0; i < indicators.length; i++) { - if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) { - indicators[i].classList.add(CLASS_NAME_ACTIVE$2); - indicators[i].setAttribute('aria-current', 'true'); - break; - } - } + _setActiveIndicatorElement(index) { + if (!this._indicatorsElement) { + return; + } + const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); + activeIndicator.removeAttribute('aria-current'); + const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement); + if (newActiveIndicator) { + newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2); + newActiveIndicator.setAttribute('aria-current', 'true'); } } _updateInterval() { - const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + const element = this._activeElement || this._getActive(); if (!element) { return; } const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); - if (elementInterval) { - this._config.defaultInterval = this._config.defaultInterval || this._config.interval; - this._config.interval = elementInterval; - } else { - this._config.interval = this._config.defaultInterval || this._config.interval; - } + this._config.interval = elementInterval || this._config.defaultInterval; } - _slide(directionOrOrder, element) { - const order = this._directionToOrder(directionOrOrder); - const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - const activeElementIndex = this._getItemIndex(activeElement); - const nextElement = element || this._getItemByOrder(order, activeElement); - const nextElementIndex = this._getItemIndex(nextElement); - const isCycling = Boolean(this._interval); - const isNext = order === ORDER_NEXT; - const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; - const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; - const eventDirectionName = this._orderToDirection(order); - if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) { - this._isSliding = false; - return; - } + _slide(order, element = null) { if (this._isSliding) { return; } - const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); + const activeElement = this._getActive(); + const isNext = order === ORDER_NEXT; + const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); + if (nextElement === activeElement) { + return; + } + const nextElementIndex = this._getItemIndex(nextElement); + const triggerEvent = eventName => { + return EventHandler.trigger(this._element, eventName, { + relatedTarget: nextElement, + direction: this._orderToDirection(order), + from: this._getItemIndex(activeElement), + to: nextElementIndex + }); + }; + const slideEvent = triggerEvent(EVENT_SLIDE); if (slideEvent.defaultPrevented) { return; } if (!activeElement || !nextElement) { return; } + const isCycling = Boolean(this._interval); + this.pause(); this._isSliding = true; - if (isCycling) { - this.pause(); - } - this._setActiveIndicatorElement(nextElement); + this._setActiveIndicatorElement(nextElementIndex); this._activeElement = nextElement; - const triggerSlidEvent = () => { - EventHandler.trigger(this._element, EVENT_SLID, { - relatedTarget: nextElement, - direction: eventDirectionName, - from: activeElementIndex, - to: nextElementIndex - }); - }; - if (this._element.classList.contains(CLASS_NAME_SLIDE)) { - nextElement.classList.add(orderClassName); - reflow(nextElement); - activeElement.classList.add(directionalClassName); - nextElement.classList.add(directionalClassName); - const completeCallBack = () => { - nextElement.classList.remove(directionalClassName, orderClassName); - nextElement.classList.add(CLASS_NAME_ACTIVE$2); - activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); - this._isSliding = false; - setTimeout(triggerSlidEvent, 0); - }; - this._queueCallback(completeCallBack, activeElement, true); - } else { - activeElement.classList.remove(CLASS_NAME_ACTIVE$2); + const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; + const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; + nextElement.classList.add(orderClassName); + reflow(nextElement); + activeElement.classList.add(directionalClassName); + nextElement.classList.add(directionalClassName); + const completeCallBack = () => { + nextElement.classList.remove(directionalClassName, orderClassName); nextElement.classList.add(CLASS_NAME_ACTIVE$2); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); this._isSliding = false; - triggerSlidEvent(); - } + triggerEvent(EVENT_SLID); + }; + this._queueCallback(completeCallBack, activeElement, this._isAnimated()); if (isCycling) { this.cycle(); } } - _directionToOrder(direction) { - if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) { - return direction; + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_SLIDE); + } + _getActive() { + return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + } + _getItems() { + return SelectorEngine.find(SELECTOR_ITEM, this._element); + } + _clearInterval() { + if (this._interval) { + clearInterval(this._interval); + this._interval = null; } + } + _directionToOrder(direction) { if (isRTL()) { return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; } return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; } _orderToDirection(order) { - if (![ORDER_NEXT, ORDER_PREV].includes(order)) { - return order; - } if (isRTL()) { return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; } return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; } - static carouselInterface(element, config) { - const data = Carousel.getOrCreateInstance(element, config); - let { - _config - } = data; - if (typeof config === 'object') { - _config = { ..._config, - ...config - }; - } - const action = typeof config === 'string' ? config : _config.slide; - if (typeof config === 'number') { - data.to(config); - } else if (typeof action === 'string') { - if (typeof data[action] === 'undefined') { - throw new TypeError(`No method named "${action}"`); - } - data[action](); - } else if (_config.interval && _config.ride) { - data.pause(); - data.cycle(); - } - } static jQueryInterface(config) { return this.each(function () { - Carousel.carouselInterface(this, config); + const data = Carousel.getOrCreateInstance(this, config); + if (typeof config === 'number') { + data.to(config); + return; + } + if (typeof config === 'string') { + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + } }); } - static dataApiClickHandler(event) { - const target = getElementFromSelector(this); - if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { - return; - } - const config = { ...Manipulator.getDataAttributes(target), - ...Manipulator.getDataAttributes(this) - }; - const slideIndex = this.getAttribute('data-bs-slide-to'); - if (slideIndex) { - config.interval = false; - } - Carousel.carouselInterface(target, config); - if (slideIndex) { - Carousel.getInstance(target).to(slideIndex); - } - event.preventDefault(); - } } -EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); -EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { +EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) { + const target = getElementFromSelector(this); + if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { + return; + } + event.preventDefault(); + const carousel = Carousel.getOrCreateInstance(target); + const slideIndex = this.getAttribute('data-bs-slide-to'); + if (slideIndex) { + carousel.to(slideIndex); + carousel._maybeEnableCycle(); + return; + } + if (Manipulator.getDataAttribute(this, 'slide') === 'next') { + carousel.next(); + carousel._maybeEnableCycle(); + return; + } + carousel.prev(); + carousel._maybeEnableCycle(); +}); +EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => { const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); - for (let i = 0, len = carousels.length; i < len; i++) { - Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i])); + for (const carousel of carousels) { + Carousel.getOrCreateInstance(carousel); } }); defineJQueryPlugin(Carousel); -const NAME$a = 'collapse'; -const DATA_KEY$9 = 'bs.collapse'; -const EVENT_KEY$9 = `.${DATA_KEY$9}`; -const DATA_API_KEY$5 = '.data-api'; -const Default$9 = { - toggle: true, - parent: null -}; -const DefaultType$9 = { - toggle: 'boolean', - parent: '(null|element)' -}; -const EVENT_SHOW$5 = `show${EVENT_KEY$9}`; -const EVENT_SHOWN$5 = `shown${EVENT_KEY$9}`; -const EVENT_HIDE$5 = `hide${EVENT_KEY$9}`; -const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$9}`; -const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$9}${DATA_API_KEY$5}`; +const NAME$b = 'collapse'; +const DATA_KEY$7 = 'bs.collapse'; +const EVENT_KEY$7 = `.${DATA_KEY$7}`; +const DATA_API_KEY$4 = '.data-api'; +const EVENT_SHOW$6 = `show${EVENT_KEY$7}`; +const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`; +const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`; +const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`; +const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; const CLASS_NAME_SHOW$7 = 'show'; const CLASS_NAME_COLLAPSE = 'collapse'; const CLASS_NAME_COLLAPSING = 'collapsing'; @@ -5741,19 +5773,24 @@ const WIDTH = 'width'; const HEIGHT = 'height'; const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; +const Default$a = { + parent: null, + toggle: true +}; +const DefaultType$a = { + parent: '(null|element)', + toggle: 'boolean' +}; class Collapse extends BaseComponent { constructor(element, config) { - super(element); + super(element, config); this._isTransitioning = false; - this._config = this._getConfig(config); this._triggerArray = []; const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); - for (let i = 0, len = toggleList.length; i < len; i++) { - const elem = toggleList[i]; + for (const elem of toggleList) { const selector = getSelectorFromElement(elem); - const filterElement = SelectorEngine.find(selector).filter(foundElem => foundElem === this._element); + const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element); if (selector !== null && filterElement.length) { - this._selector = selector; this._triggerArray.push(elem); } } @@ -5766,10 +5803,13 @@ class Collapse extends BaseComponent { } } static get Default() { - return Default$9; + return Default$a; + } + static get DefaultType() { + return DefaultType$a; } static get NAME() { - return NAME$a; + return NAME$b; } toggle() { if (this._isShown()) { @@ -5782,34 +5822,22 @@ class Collapse extends BaseComponent { if (this._isTransitioning || this._isShown()) { return; } - let actives = []; - let activesData; + let activeChildren = []; if (this._config.parent) { - const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); - actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(elem => !children.includes(elem)); + activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, { + toggle: false + })); } - const container = SelectorEngine.findOne(this._selector); - if (actives.length) { - const tempActiveData = actives.find(elem => container !== elem); - activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null; - if (activesData && activesData._isTransitioning) { - return; - } + if (activeChildren.length && activeChildren[0]._isTransitioning) { + return; } - const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5); + const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6); if (startEvent.defaultPrevented) { return; } - actives.forEach(elemActive => { - if (container !== elemActive) { - Collapse.getOrCreateInstance(elemActive, { - toggle: false - }).hide(); - } - if (!activesData) { - Data.set(elemActive, DATA_KEY$9, null); - } - }); + for (const activeInstance of activeChildren) { + activeInstance.hide(); + } const dimension = this._getDimension(); this._element.classList.remove(CLASS_NAME_COLLAPSE); this._element.classList.add(CLASS_NAME_COLLAPSING); @@ -5821,7 +5849,7 @@ class Collapse extends BaseComponent { this._element.classList.remove(CLASS_NAME_COLLAPSING); this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); this._element.style[dimension] = ''; - EventHandler.trigger(this._element, EVENT_SHOWN$5); + EventHandler.trigger(this._element, EVENT_SHOWN$6); }; const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); const scrollSize = `scroll${capitalizedDimension}`; @@ -5832,7 +5860,7 @@ class Collapse extends BaseComponent { if (this._isTransitioning || !this._isShown()) { return; } - const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5); + const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6); if (startEvent.defaultPrevented) { return; } @@ -5841,11 +5869,9 @@ class Collapse extends BaseComponent { reflow(this._element); this._element.classList.add(CLASS_NAME_COLLAPSING); this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); - const triggerArrayLength = this._triggerArray.length; - for (let i = 0; i < triggerArrayLength; i++) { - const trigger = this._triggerArray[i]; - const elem = getElementFromSelector(trigger); - if (elem && !this._isShown(elem)) { + for (const trigger of this._triggerArray) { + const element = getElementFromSelector(trigger); + if (element && !this._isShown(element)) { this._addAriaAndCollapsedClass([trigger], false); } } @@ -5854,7 +5880,7 @@ class Collapse extends BaseComponent { this._isTransitioning = false; this._element.classList.remove(CLASS_NAME_COLLAPSING); this._element.classList.add(CLASS_NAME_COLLAPSE); - EventHandler.trigger(this._element, EVENT_HIDDEN$5); + EventHandler.trigger(this._element, EVENT_HIDDEN$6); }; this._element.style[dimension] = ''; this._queueCallback(complete, this._element, true); @@ -5862,14 +5888,9 @@ class Collapse extends BaseComponent { _isShown(element = this._element) { return element.classList.contains(CLASS_NAME_SHOW$7); } - _getConfig(config) { - config = { ...Default$9, - ...Manipulator.getDataAttributes(this._element), - ...config - }; + _configAfterMerge(config) { config.toggle = Boolean(config.toggle); config.parent = getElement(config.parent); - typeCheckConfig(NAME$a, config, DefaultType$9); return config; } _getDimension() { @@ -5879,33 +5900,33 @@ class Collapse extends BaseComponent { if (!this._config.parent) { return; } - const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); - SelectorEngine.find(SELECTOR_DATA_TOGGLE$4, this._config.parent).filter(elem => !children.includes(elem)).forEach(element => { + const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4); + for (const element of children) { const selected = getElementFromSelector(element); if (selected) { this._addAriaAndCollapsedClass([element], this._isShown(selected)); } - }); + } + } + _getFirstLevelChildren(selector) { + const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); + return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element)); } _addAriaAndCollapsedClass(triggerArray, isOpen) { if (!triggerArray.length) { return; } - triggerArray.forEach(elem => { - if (isOpen) { - elem.classList.remove(CLASS_NAME_COLLAPSED); - } else { - elem.classList.add(CLASS_NAME_COLLAPSED); - } - elem.setAttribute('aria-expanded', isOpen); - }); + for (const element of triggerArray) { + element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); + element.setAttribute('aria-expanded', isOpen); + } } static jQueryInterface(config) { + const _config = {}; + if (typeof config === 'string' && /show|hide/.test(config)) { + _config.toggle = false; + } return this.each(function () { - const _config = {}; - if (typeof config === 'string' && /show|hide/.test(config)) { - _config.toggle = false; - } const data = Collapse.getOrCreateInstance(this, _config); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { @@ -5922,38 +5943,39 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, functi } const selector = getSelectorFromElement(this); const selectorElements = SelectorEngine.find(selector); - selectorElements.forEach(element => { + for (const element of selectorElements) { Collapse.getOrCreateInstance(element, { toggle: false }).toggle(); - }); + } }); defineJQueryPlugin(Collapse); -const NAME$9 = 'dropdown'; -const DATA_KEY$8 = 'bs.dropdown'; -const EVENT_KEY$8 = `.${DATA_KEY$8}`; -const DATA_API_KEY$4 = '.data-api'; +const NAME$a = 'dropdown'; +const DATA_KEY$6 = 'bs.dropdown'; +const EVENT_KEY$6 = `.${DATA_KEY$6}`; +const DATA_API_KEY$3 = '.data-api'; const ESCAPE_KEY$2 = 'Escape'; -const SPACE_KEY = 'Space'; const TAB_KEY$1 = 'Tab'; -const ARROW_UP_KEY = 'ArrowUp'; -const ARROW_DOWN_KEY = 'ArrowDown'; +const ARROW_UP_KEY$1 = 'ArrowUp'; +const ARROW_DOWN_KEY$1 = 'ArrowDown'; const RIGHT_MOUSE_BUTTON = 2; -const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`); -const EVENT_HIDE$4 = `hide${EVENT_KEY$8}`; -const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$8}`; -const EVENT_SHOW$4 = `show${EVENT_KEY$8}`; -const EVENT_SHOWN$4 = `shown${EVENT_KEY$8}`; -const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$8}${DATA_API_KEY$4}`; -const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$8}${DATA_API_KEY$4}`; -const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$8}${DATA_API_KEY$4}`; +const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`; +const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`; +const EVENT_SHOW$5 = `show${EVENT_KEY$6}`; +const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`; +const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; +const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`; +const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`; const CLASS_NAME_SHOW$6 = 'show'; const CLASS_NAME_DROPUP = 'dropup'; const CLASS_NAME_DROPEND = 'dropend'; const CLASS_NAME_DROPSTART = 'dropstart'; -const CLASS_NAME_NAVBAR = 'navbar'; -const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]'; +const CLASS_NAME_DROPUP_CENTER = 'dropup-center'; +const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'; +const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'; +const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`; const SELECTOR_MENU = '.dropdown-menu'; +const SELECTOR_NAVBAR = '.navbar'; const SELECTOR_NAVBAR_NAV = '.navbar-nav'; const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; @@ -5962,70 +5984,69 @@ const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'; const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; -const Default$8 = { - offset: [0, 2], +const PLACEMENT_TOPCENTER = 'top'; +const PLACEMENT_BOTTOMCENTER = 'bottom'; +const Default$9 = { + autoClose: true, boundary: 'clippingParents', - reference: 'toggle', display: 'dynamic', + offset: [0, 2], popperConfig: null, - autoClose: true + reference: 'toggle' }; -const DefaultType$8 = { - offset: '(array|string|function)', +const DefaultType$9 = { + autoClose: '(boolean|string)', boundary: '(string|element)', - reference: '(string|element|object)', display: 'string', + offset: '(array|string|function)', popperConfig: '(null|object|function)', - autoClose: '(boolean|string)' + reference: '(string|element|object)' }; class Dropdown extends BaseComponent { constructor(element, config) { - super(element); + super(element, config); this._popper = null; - this._config = this._getConfig(config); - this._menu = this._getMenuElement(); + this._parent = this._element.parentNode; + this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._inNavbar = this._detectNavbar(); } static get Default() { - return Default$8; + return Default$9; } static get DefaultType() { - return DefaultType$8; + return DefaultType$9; } static get NAME() { - return NAME$9; + return NAME$a; } toggle() { return this._isShown() ? this.hide() : this.show(); } show() { - if (isDisabled(this._element) || this._isShown(this._menu)) { + if (isDisabled(this._element) || this._isShown()) { return; } const relatedTarget = { relatedTarget: this._element }; - const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget); + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget); if (showEvent.defaultPrevented) { return; } - const parent = Dropdown.getParentFromElement(this._element); - if (this._inNavbar) { - Manipulator.setDataAttribute(this._menu, 'popper', 'none'); - } else { - this._createPopper(parent); - } - if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) { - [].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', noop)); + this._createPopper(); + if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { + for (const element of [].concat(...document.body.children)) { + EventHandler.on(element, 'mouseover', noop); + } } this._element.focus(); this._element.setAttribute('aria-expanded', true); this._menu.classList.add(CLASS_NAME_SHOW$6); this._element.classList.add(CLASS_NAME_SHOW$6); - EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget); + EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget); } hide() { - if (isDisabled(this._element) || !this._isShown(this._menu)) { + if (isDisabled(this._element) || !this._isShown()) { return; } const relatedTarget = { @@ -6046,12 +6067,14 @@ class Dropdown extends BaseComponent { } } _completeHide(relatedTarget) { - const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget); if (hideEvent.defaultPrevented) { return; } if ('ontouchstart' in document.documentElement) { - [].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', noop)); + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, 'mouseover', noop); + } } if (this._popper) { this._popper.destroy(); @@ -6060,52 +6083,47 @@ class Dropdown extends BaseComponent { this._element.classList.remove(CLASS_NAME_SHOW$6); this._element.setAttribute('aria-expanded', 'false'); Manipulator.removeDataAttribute(this._menu, 'popper'); - EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget); + EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget); } _getConfig(config) { - config = { ...this.constructor.Default, - ...Manipulator.getDataAttributes(this._element), - ...config - }; - typeCheckConfig(NAME$9, config, this.constructor.DefaultType); + config = super._getConfig(config); if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { - throw new TypeError(`${NAME$9.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); + throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); } return config; } - _createPopper(parent) { + _createPopper() { if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); } let referenceElement = this._element; if (this._config.reference === 'parent') { - referenceElement = parent; + referenceElement = this._parent; } else if (isElement(this._config.reference)) { referenceElement = getElement(this._config.reference); } else if (typeof this._config.reference === 'object') { referenceElement = this._config.reference; } const popperConfig = this._getPopperConfig(); - const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false); this._popper = createPopper(referenceElement, this._menu, popperConfig); - if (isDisplayStatic) { - Manipulator.setDataAttribute(this._menu, 'popper', 'static'); - } } - _isShown(element = this._element) { - return element.classList.contains(CLASS_NAME_SHOW$6); - } - _getMenuElement() { - return SelectorEngine.next(this._element, SELECTOR_MENU)[0]; + _isShown() { + return this._menu.classList.contains(CLASS_NAME_SHOW$6); } _getPlacement() { - const parentDropdown = this._element.parentNode; + const parentDropdown = this._parent; if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { return PLACEMENT_RIGHT; } if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { return PLACEMENT_LEFT; } + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { + return PLACEMENT_TOPCENTER; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) { + return PLACEMENT_BOTTOMCENTER; + } const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; @@ -6113,14 +6131,14 @@ class Dropdown extends BaseComponent { return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; } _detectNavbar() { - return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null; + return this._element.closest(SELECTOR_NAVBAR) !== null; } _getOffset() { const { offset } = this._config; if (typeof offset === 'string') { - return offset.split(',').map(val => Number.parseInt(val, 10)); + return offset.split(',').map(value => Number.parseInt(value, 10)); } if (typeof offset === 'function') { return popperData => offset(popperData, this._element); @@ -6142,7 +6160,8 @@ class Dropdown extends BaseComponent { } }] }; - if (this._config.display === 'static') { + if (this._inNavbar || this._config.display === 'static') { + Manipulator.setDataAttribute(this._menu, 'popper', 'static'); defaultBsPopperConfig.modifiers = [{ name: 'applyStyles', enabled: false @@ -6156,11 +6175,11 @@ class Dropdown extends BaseComponent { key, target }) { - const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible); + const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element)); if (!items.length) { return; } - getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus(); + getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus(); } static jQueryInterface(config) { return this.each(function () { @@ -6175,68 +6194,55 @@ class Dropdown extends BaseComponent { }); } static clearMenus(event) { - if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1)) { + if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) { return; } - const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3); - for (let i = 0, len = toggles.length; i < len; i++) { - const context = Dropdown.getInstance(toggles[i]); + const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); + for (const toggle of openToggles) { + const context = Dropdown.getInstance(toggle); if (!context || context._config.autoClose === false) { continue; } - if (!context._isShown()) { + const composedPath = event.composedPath(); + const isMenuTarget = composedPath.includes(context._menu); + if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) { + continue; + } + if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { continue; } const relatedTarget = { relatedTarget: context._element }; - if (event) { - const composedPath = event.composedPath(); - const isMenuTarget = composedPath.includes(context._menu); - if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) { - continue; - } - if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { - continue; - } - if (event.type === 'click') { - relatedTarget.clickEvent = event; - } + if (event.type === 'click') { + relatedTarget.clickEvent = event; } context._completeHide(relatedTarget); } } - static getParentFromElement(element) { - return getElementFromSelector(element) || element.parentNode; - } static dataApiKeydownHandler(event) { - if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { + const isInput = /input|textarea/i.test(event.target.tagName); + const isEscapeEvent = event.key === ESCAPE_KEY$2; + const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key); + if (!isUpOrDownEvent && !isEscapeEvent) { return; } - const isActive = this.classList.contains(CLASS_NAME_SHOW$6); - if (!isActive && event.key === ESCAPE_KEY$2) { + if (isInput && !isEscapeEvent) { return; } event.preventDefault(); - event.stopPropagation(); - if (isDisabled(this)) { - return; - } - const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0]; + const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); const instance = Dropdown.getOrCreateInstance(getToggleButton); - if (event.key === ESCAPE_KEY$2) { - instance.hide(); - return; - } - if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) { - if (!isActive) { - instance.show(); - } + if (isUpOrDownEvent) { + event.stopPropagation(); + instance.show(); instance._selectMenuItem(event); return; } - if (!isActive || event.key === SPACE_KEY) { - Dropdown.clearMenus(); + if (instance._isShown()) { + event.stopPropagation(); + instance.hide(); + getToggleButton.focus(); } } } @@ -6251,6 +6257,8 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, functi defineJQueryPlugin(Dropdown); const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; const SELECTOR_STICKY_CONTENT = '.sticky-top'; +const PROPERTY_PADDING = 'padding-right'; +const PROPERTY_MARGIN = 'margin-right'; class ScrollBarHelper { constructor() { this._element = document.body; @@ -6262,95 +6270,108 @@ class ScrollBarHelper { hide() { const width = this.getWidth(); this._disableOverFlow(); - this._setElementAttributes(this._element, 'paddingRight', calculatedValue => calculatedValue + width); - this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width); - this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width); + this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); + this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width); + this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width); + } + reset() { + this._resetElementAttributes(this._element, 'overflow'); + this._resetElementAttributes(this._element, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); + } + isOverflowing() { + return this.getWidth() > 0; } _disableOverFlow() { this._saveInitialAttribute(this._element, 'overflow'); this._element.style.overflow = 'hidden'; } - _setElementAttributes(selector, styleProp, callback) { + _setElementAttributes(selector, styleProperty, callback) { const scrollbarWidth = this.getWidth(); const manipulationCallBack = element => { if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) { return; } - this._saveInitialAttribute(element, styleProp); - const calculatedValue = window.getComputedStyle(element)[styleProp]; - element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`; + this._saveInitialAttribute(element, styleProperty); + const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty); + element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); }; this._applyManipulationCallback(selector, manipulationCallBack); } - reset() { - this._resetElementAttributes(this._element, 'overflow'); - this._resetElementAttributes(this._element, 'paddingRight'); - this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight'); - this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight'); - } - _saveInitialAttribute(element, styleProp) { - const actualValue = element.style[styleProp]; + _saveInitialAttribute(element, styleProperty) { + const actualValue = element.style.getPropertyValue(styleProperty); if (actualValue) { - Manipulator.setDataAttribute(element, styleProp, actualValue); + Manipulator.setDataAttribute(element, styleProperty, actualValue); } } - _resetElementAttributes(selector, styleProp) { + _resetElementAttributes(selector, styleProperty) { const manipulationCallBack = element => { - const value = Manipulator.getDataAttribute(element, styleProp); - if (typeof value === 'undefined') { - element.style.removeProperty(styleProp); - } else { - Manipulator.removeDataAttribute(element, styleProp); - element.style[styleProp] = value; + const value = Manipulator.getDataAttribute(element, styleProperty); + if (value === null) { + element.style.removeProperty(styleProperty); + return; } + Manipulator.removeDataAttribute(element, styleProperty); + element.style.setProperty(styleProperty, value); }; this._applyManipulationCallback(selector, manipulationCallBack); } _applyManipulationCallback(selector, callBack) { if (isElement(selector)) { callBack(selector); - } else { - SelectorEngine.find(selector, this._element).forEach(callBack); + return; + } + for (const sel of SelectorEngine.find(selector, this._element)) { + callBack(sel); } } - isOverflowing() { - return this.getWidth() > 0; - } } -const Default$7 = { - className: 'modal-backdrop', - isVisible: true, - isAnimated: false, - rootElement: 'body', - clickCallback: null -}; -const DefaultType$7 = { - className: 'string', - isVisible: 'boolean', - isAnimated: 'boolean', - rootElement: '(element|string)', - clickCallback: '(function|null)' -}; -const NAME$8 = 'backdrop'; +const NAME$9 = 'backdrop'; const CLASS_NAME_FADE$4 = 'fade'; const CLASS_NAME_SHOW$5 = 'show'; -const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$8}`; -class Backdrop { +const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`; +const Default$8 = { + className: 'modal-backdrop', + clickCallback: null, + isAnimated: false, + isVisible: true, + rootElement: 'body' +}; +const DefaultType$8 = { + className: 'string', + clickCallback: '(function|null)', + isAnimated: 'boolean', + isVisible: 'boolean', + rootElement: '(element|string)' +}; +class Backdrop extends Config { constructor(config) { + super(); this._config = this._getConfig(config); this._isAppended = false; this._element = null; } + static get Default() { + return Default$8; + } + static get DefaultType() { + return DefaultType$8; + } + static get NAME() { + return NAME$9; + } show(callback) { if (!this._config.isVisible) { execute(callback); return; } this._append(); + const element = this._getElement(); if (this._config.isAnimated) { - reflow(this._getElement()); + reflow(element); } - this._getElement().classList.add(CLASS_NAME_SHOW$5); + element.classList.add(CLASS_NAME_SHOW$5); this._emulateAnimation(() => { execute(callback); }); @@ -6366,6 +6387,14 @@ class Backdrop { execute(callback); }); } + dispose() { + if (!this._isAppended) { + return; + } + EventHandler.off(this._element, EVENT_MOUSEDOWN); + this._element.remove(); + this._isAppended = false; + } _getElement() { if (!this._element) { const backdrop = document.createElement('div'); @@ -6377,71 +6406,66 @@ class Backdrop { } return this._element; } - _getConfig(config) { - config = { ...Default$7, - ...(typeof config === 'object' ? config : {}) - }; + _configAfterMerge(config) { config.rootElement = getElement(config.rootElement); - typeCheckConfig(NAME$8, config, DefaultType$7); return config; } _append() { if (this._isAppended) { return; } - this._config.rootElement.append(this._getElement()); - EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => { + const element = this._getElement(); + this._config.rootElement.append(element); + EventHandler.on(element, EVENT_MOUSEDOWN, () => { execute(this._config.clickCallback); }); this._isAppended = true; } - dispose() { - if (!this._isAppended) { - return; - } - EventHandler.off(this._element, EVENT_MOUSEDOWN); - this._element.remove(); - this._isAppended = false; - } _emulateAnimation(callback) { executeAfterTransition(callback, this._getElement(), this._config.isAnimated); } } -const Default$6 = { - trapElement: null, - autofocus: true -}; -const DefaultType$6 = { - trapElement: 'element', - autofocus: 'boolean' -}; -const NAME$7 = 'focustrap'; -const DATA_KEY$7 = 'bs.focustrap'; -const EVENT_KEY$7 = `.${DATA_KEY$7}`; -const EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$7}`; -const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$7}`; +const NAME$8 = 'focustrap'; +const DATA_KEY$5 = 'bs.focustrap'; +const EVENT_KEY$5 = `.${DATA_KEY$5}`; +const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`; +const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`; const TAB_KEY = 'Tab'; const TAB_NAV_FORWARD = 'forward'; const TAB_NAV_BACKWARD = 'backward'; -class FocusTrap { +const Default$7 = { + autofocus: true, + trapElement: null +}; +const DefaultType$7 = { + autofocus: 'boolean', + trapElement: 'element' +}; +class FocusTrap extends Config { constructor(config) { + super(); this._config = this._getConfig(config); this._isActive = false; this._lastTabNavDirection = null; } + static get Default() { + return Default$7; + } + static get DefaultType() { + return DefaultType$7; + } + static get NAME() { + return NAME$8; + } activate() { - const { - trapElement, - autofocus - } = this._config; if (this._isActive) { return; } - if (autofocus) { - trapElement.focus(); + if (this._config.autofocus) { + this._config.trapElement.focus(); } - EventHandler.off(document, EVENT_KEY$7); - EventHandler.on(document, EVENT_FOCUSIN$1, event => this._handleFocusin(event)); + EventHandler.off(document, EVENT_KEY$5); + EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event)); EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event)); this._isActive = true; } @@ -6450,16 +6474,13 @@ class FocusTrap { return; } this._isActive = false; - EventHandler.off(document, EVENT_KEY$7); + EventHandler.off(document, EVENT_KEY$5); } _handleFocusin(event) { - const { - target - } = event; const { trapElement } = this._config; - if (target === document || target === trapElement || trapElement.contains(target)) { + if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { return; } const elements = SelectorEngine.focusableChildren(trapElement); @@ -6477,40 +6498,21 @@ class FocusTrap { } this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; } - _getConfig(config) { - config = { ...Default$6, - ...(typeof config === 'object' ? config : {}) - }; - typeCheckConfig(NAME$7, config, DefaultType$6); - return config; - } } -const NAME$6 = 'modal'; -const DATA_KEY$6 = 'bs.modal'; -const EVENT_KEY$6 = `.${DATA_KEY$6}`; -const DATA_API_KEY$3 = '.data-api'; +const NAME$7 = 'modal'; +const DATA_KEY$4 = 'bs.modal'; +const EVENT_KEY$4 = `.${DATA_KEY$4}`; +const DATA_API_KEY$2 = '.data-api'; const ESCAPE_KEY$1 = 'Escape'; -const Default$5 = { - backdrop: true, - keyboard: true, - focus: true -}; -const DefaultType$5 = { - backdrop: '(boolean|string)', - keyboard: 'boolean', - focus: 'boolean' -}; -const EVENT_HIDE$3 = `hide${EVENT_KEY$6}`; -const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$6}`; -const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$6}`; -const EVENT_SHOW$3 = `show${EVENT_KEY$6}`; -const EVENT_SHOWN$3 = `shown${EVENT_KEY$6}`; -const EVENT_RESIZE = `resize${EVENT_KEY$6}`; -const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$6}`; -const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$6}`; -const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$6}`; -const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`; -const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; +const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; +const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`; +const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; +const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; +const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; +const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; +const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; +const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; +const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; const CLASS_NAME_OPEN = 'modal-open'; const CLASS_NAME_FADE$3 = 'fade'; const CLASS_NAME_SHOW$4 = 'show'; @@ -6519,23 +6521,35 @@ const OPEN_SELECTOR$1 = '.modal.show'; const SELECTOR_DIALOG = '.modal-dialog'; const SELECTOR_MODAL_BODY = '.modal-body'; const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; +const Default$6 = { + backdrop: true, + focus: true, + keyboard: true +}; +const DefaultType$6 = { + backdrop: '(boolean|string)', + focus: 'boolean', + keyboard: 'boolean' +}; class Modal extends BaseComponent { constructor(element, config) { - super(element); - this._config = this._getConfig(config); + super(element, config); this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); this._backdrop = this._initializeBackDrop(); this._focustrap = this._initializeFocusTrap(); this._isShown = false; - this._ignoreBackdropClick = false; this._isTransitioning = false; this._scrollBar = new ScrollBarHelper(); + this._addEventListeners(); } static get Default() { - return Default$5; + return Default$6; + } + static get DefaultType() { + return DefaultType$6; } static get NAME() { - return NAME$6; + return NAME$7; } toggle(relatedTarget) { return this._isShown ? this.hide() : this.show(relatedTarget); @@ -6544,53 +6558,37 @@ class Modal extends BaseComponent { if (this._isShown || this._isTransitioning) { return; } - const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, { relatedTarget }); if (showEvent.defaultPrevented) { return; } this._isShown = true; - if (this._isAnimated()) { - this._isTransitioning = true; - } + this._isTransitioning = true; this._scrollBar.hide(); document.body.classList.add(CLASS_NAME_OPEN); this._adjustDialog(); - this._setEscapeEvent(); - this._setResizeEvent(); - EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => { - EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => { - if (event.target === this._element) { - this._ignoreBackdropClick = true; - } - }); - }); - this._showBackdrop(() => this._showElement(relatedTarget)); + this._backdrop.show(() => this._showElement(relatedTarget)); } hide() { if (!this._isShown || this._isTransitioning) { return; } - const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); if (hideEvent.defaultPrevented) { return; } this._isShown = false; - const isAnimated = this._isAnimated(); - if (isAnimated) { - this._isTransitioning = true; - } - this._setEscapeEvent(); - this._setResizeEvent(); + this._isTransitioning = true; this._focustrap.deactivate(); this._element.classList.remove(CLASS_NAME_SHOW$4); - EventHandler.off(this._element, EVENT_CLICK_DISMISS); - EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS); - this._queueCallback(() => this._hideModal(), this._element, isAnimated); + this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); } dispose() { - [window, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6)); + for (const htmlElement of [window, this._dialog]) { + EventHandler.off(htmlElement, EVENT_KEY$4); + } this._backdrop.dispose(); this._focustrap.deactivate(); super.dispose(); @@ -6609,18 +6607,8 @@ class Modal extends BaseComponent { trapElement: this._element }); } - _getConfig(config) { - config = { ...Default$5, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' ? config : {}) - }; - typeCheckConfig(NAME$6, config, DefaultType$5); - return config; - } _showElement(relatedTarget) { - const isAnimated = this._isAnimated(); - const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); - if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { + if (!document.body.contains(this._element)) { document.body.append(this._element); } this._element.style.display = 'block'; @@ -6628,44 +6616,52 @@ class Modal extends BaseComponent { this._element.setAttribute('aria-modal', true); this._element.setAttribute('role', 'dialog'); this._element.scrollTop = 0; + const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); if (modalBody) { modalBody.scrollTop = 0; } - if (isAnimated) { - reflow(this._element); - } + reflow(this._element); this._element.classList.add(CLASS_NAME_SHOW$4); const transitionComplete = () => { if (this._config.focus) { this._focustrap.activate(); } this._isTransitioning = false; - EventHandler.trigger(this._element, EVENT_SHOWN$3, { + EventHandler.trigger(this._element, EVENT_SHOWN$4, { relatedTarget }); }; - this._queueCallback(transitionComplete, this._dialog, isAnimated); + this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); } - _setEscapeEvent() { - if (this._isShown) { - EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => { - if (this._config.keyboard && event.key === ESCAPE_KEY$1) { - event.preventDefault(); - this.hide(); - } else if (!this._config.keyboard && event.key === ESCAPE_KEY$1) { - this._triggerBackdropTransition(); - } - }); - } else { - EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1); - } - } - _setResizeEvent() { - if (this._isShown) { - EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog()); - } else { - EventHandler.off(window, EVENT_RESIZE); - } + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => { + if (event.key !== ESCAPE_KEY$1) { + return; + } + if (this._config.keyboard) { + event.preventDefault(); + this.hide(); + return; + } + this._triggerBackdropTransition(); + }); + EventHandler.on(window, EVENT_RESIZE$1, () => { + if (this._isShown && !this._isTransitioning) { + this._adjustDialog(); + } + }); + EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { + if (event.target !== event.currentTarget) { + return; + } + if (this._config.backdrop === 'static') { + this._triggerBackdropTransition(); + return; + } + if (this._config.backdrop) { + this.hide(); + } + }); } _hideModal() { this._element.style.display = 'none'; @@ -6677,54 +6673,31 @@ class Modal extends BaseComponent { document.body.classList.remove(CLASS_NAME_OPEN); this._resetAdjustments(); this._scrollBar.reset(); - EventHandler.trigger(this._element, EVENT_HIDDEN$3); + EventHandler.trigger(this._element, EVENT_HIDDEN$4); }); } - _showBackdrop(callback) { - EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => { - if (this._ignoreBackdropClick) { - this._ignoreBackdropClick = false; - return; - } - if (event.target !== event.currentTarget) { - return; - } - if (this._config.backdrop === true) { - this.hide(); - } else if (this._config.backdrop === 'static') { - this._triggerBackdropTransition(); - } - }); - this._backdrop.show(callback); - } _isAnimated() { return this._element.classList.contains(CLASS_NAME_FADE$3); } _triggerBackdropTransition() { - const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); if (hideEvent.defaultPrevented) { return; } - const { - classList, - scrollHeight, - style - } = this._element; - const isModalOverflowing = scrollHeight > document.documentElement.clientHeight; - if (!isModalOverflowing && style.overflowY === 'hidden' || classList.contains(CLASS_NAME_STATIC)) { + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const initialOverflowY = this._element.style.overflowY; + if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) { return; } if (!isModalOverflowing) { - style.overflowY = 'hidden'; + this._element.style.overflowY = 'hidden'; } - classList.add(CLASS_NAME_STATIC); + this._element.classList.add(CLASS_NAME_STATIC); this._queueCallback(() => { - classList.remove(CLASS_NAME_STATIC); - if (!isModalOverflowing) { - this._queueCallback(() => { - style.overflowY = ''; - }, this._dialog); - } + this._element.classList.remove(CLASS_NAME_STATIC); + this._queueCallback(() => { + this._element.style.overflowY = initialOverflowY; + }, this._dialog); }, this._dialog); this._element.focus(); } @@ -6732,11 +6705,13 @@ class Modal extends BaseComponent { const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; const scrollbarWidth = this._scrollBar.getWidth(); const isBodyOverflowing = scrollbarWidth > 0; - if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) { - this._element.style.paddingLeft = `${scrollbarWidth}px`; + if (isBodyOverflowing && !isModalOverflowing) { + const property = isRTL() ? 'paddingLeft' : 'paddingRight'; + this._element.style[property] = `${scrollbarWidth}px`; } - if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) { - this._element.style.paddingRight = `${scrollbarWidth}px`; + if (!isBodyOverflowing && isModalOverflowing) { + const property = isRTL() ? 'paddingRight' : 'paddingLeft'; + this._element.style[property] = `${scrollbarWidth}px`; } } _resetAdjustments() { @@ -6761,65 +6736,71 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, functi if (['A', 'AREA'].includes(this.tagName)) { event.preventDefault(); } - EventHandler.one(target, EVENT_SHOW$3, showEvent => { + EventHandler.one(target, EVENT_SHOW$4, showEvent => { if (showEvent.defaultPrevented) { return; } - EventHandler.one(target, EVENT_HIDDEN$3, () => { + EventHandler.one(target, EVENT_HIDDEN$4, () => { if (isVisible(this)) { this.focus(); } }); }); - const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); - if (allReadyOpen) { - Modal.getInstance(allReadyOpen).hide(); + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); + if (alreadyOpen) { + Modal.getInstance(alreadyOpen).hide(); } const data = Modal.getOrCreateInstance(target); data.toggle(this); }); enableDismissTrigger(Modal); defineJQueryPlugin(Modal); -const NAME$5 = 'offcanvas'; -const DATA_KEY$5 = 'bs.offcanvas'; -const EVENT_KEY$5 = `.${DATA_KEY$5}`; -const DATA_API_KEY$2 = '.data-api'; -const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$5}${DATA_API_KEY$2}`; +const NAME$6 = 'offcanvas'; +const DATA_KEY$3 = 'bs.offcanvas'; +const EVENT_KEY$3 = `.${DATA_KEY$3}`; +const DATA_API_KEY$1 = '.data-api'; +const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`; const ESCAPE_KEY = 'Escape'; -const Default$4 = { +const CLASS_NAME_SHOW$3 = 'show'; +const CLASS_NAME_SHOWING$1 = 'showing'; +const CLASS_NAME_HIDING = 'hiding'; +const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; +const OPEN_SELECTOR = '.offcanvas.show'; +const EVENT_SHOW$3 = `show${EVENT_KEY$3}`; +const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; +const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; +const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`; +const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; +const EVENT_RESIZE = `resize${EVENT_KEY$3}`; +const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`; +const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`; +const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; +const Default$5 = { backdrop: true, keyboard: true, scroll: false }; -const DefaultType$4 = { - backdrop: 'boolean', +const DefaultType$5 = { + backdrop: '(boolean|string)', keyboard: 'boolean', scroll: 'boolean' }; -const CLASS_NAME_SHOW$3 = 'show'; -const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; -const OPEN_SELECTOR = '.offcanvas.show'; -const EVENT_SHOW$2 = `show${EVENT_KEY$5}`; -const EVENT_SHOWN$2 = `shown${EVENT_KEY$5}`; -const EVENT_HIDE$2 = `hide${EVENT_KEY$5}`; -const EVENT_HIDDEN$2 = `hidden${EVENT_KEY$5}`; -const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$5}${DATA_API_KEY$2}`; -const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$5}`; -const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; class Offcanvas extends BaseComponent { constructor(element, config) { - super(element); - this._config = this._getConfig(config); + super(element, config); this._isShown = false; this._backdrop = this._initializeBackDrop(); this._focustrap = this._initializeFocusTrap(); this._addEventListeners(); } - static get NAME() { - return NAME$5; - } static get Default() { - return Default$4; + return Default$5; + } + static get DefaultType() { + return DefaultType$5; + } + static get NAME() { + return NAME$6; } toggle(relatedTarget) { return this._isShown ? this.hide() : this.show(relatedTarget); @@ -6828,27 +6809,27 @@ class Offcanvas extends BaseComponent { if (this._isShown) { return; } - const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { relatedTarget }); if (showEvent.defaultPrevented) { return; } this._isShown = true; - this._element.style.visibility = 'visible'; this._backdrop.show(); if (!this._config.scroll) { new ScrollBarHelper().hide(); } - this._element.removeAttribute('aria-hidden'); this._element.setAttribute('aria-modal', true); this._element.setAttribute('role', 'dialog'); - this._element.classList.add(CLASS_NAME_SHOW$3); + this._element.classList.add(CLASS_NAME_SHOWING$1); const completeCallBack = () => { - if (!this._config.scroll) { + if (!this._config.scroll || this._config.backdrop) { this._focustrap.activate(); } - EventHandler.trigger(this._element, EVENT_SHOWN$2, { + this._element.classList.add(CLASS_NAME_SHOW$3); + this._element.classList.remove(CLASS_NAME_SHOWING$1); + EventHandler.trigger(this._element, EVENT_SHOWN$3, { relatedTarget }); }; @@ -6858,24 +6839,23 @@ class Offcanvas extends BaseComponent { if (!this._isShown) { return; } - const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); if (hideEvent.defaultPrevented) { return; } this._focustrap.deactivate(); this._element.blur(); this._isShown = false; - this._element.classList.remove(CLASS_NAME_SHOW$3); + this._element.classList.add(CLASS_NAME_HIDING); this._backdrop.hide(); const completeCallback = () => { - this._element.setAttribute('aria-hidden', true); + this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING); this._element.removeAttribute('aria-modal'); this._element.removeAttribute('role'); - this._element.style.visibility = 'hidden'; if (!this._config.scroll) { new ScrollBarHelper().reset(); } - EventHandler.trigger(this._element, EVENT_HIDDEN$2); + EventHandler.trigger(this._element, EVENT_HIDDEN$3); }; this._queueCallback(completeCallback, this._element, true); } @@ -6884,21 +6864,21 @@ class Offcanvas extends BaseComponent { this._focustrap.deactivate(); super.dispose(); } - _getConfig(config) { - config = { ...Default$4, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' ? config : {}) - }; - typeCheckConfig(NAME$5, config, DefaultType$4); - return config; - } _initializeBackDrop() { + const clickCallback = () => { + if (this._config.backdrop === 'static') { + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + return; + } + this.hide(); + }; + const isVisible = Boolean(this._config.backdrop); return new Backdrop({ className: CLASS_NAME_BACKDROP, - isVisible: this._config.backdrop, + isVisible, isAnimated: true, rootElement: this._element.parentNode, - clickCallback: () => this.hide() + clickCallback: isVisible ? clickCallback : null }); } _initializeFocusTrap() { @@ -6908,9 +6888,14 @@ class Offcanvas extends BaseComponent { } _addEventListeners() { EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { - if (this._config.keyboard && event.key === ESCAPE_KEY) { - this.hide(); + if (event.key !== ESCAPE_KEY) { + return; } + if (!this._config.keyboard) { + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + return; + } + this.hide(); }); } static jQueryInterface(config) { @@ -6934,19 +6919,30 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, functi if (isDisabled(this)) { return; } - EventHandler.one(target, EVENT_HIDDEN$2, () => { + EventHandler.one(target, EVENT_HIDDEN$3, () => { if (isVisible(this)) { this.focus(); } }); - const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); - if (allReadyOpen && allReadyOpen !== target) { - Offcanvas.getInstance(allReadyOpen).hide(); + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); + if (alreadyOpen && alreadyOpen !== target) { + Offcanvas.getInstance(alreadyOpen).hide(); } const data = Offcanvas.getOrCreateInstance(target); data.toggle(this); }); -EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => SelectorEngine.find(OPEN_SELECTOR).forEach(el => Offcanvas.getOrCreateInstance(el).show())); +EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { + for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { + Offcanvas.getOrCreateInstance(selector).show(); + } +}); +EventHandler.on(window, EVENT_RESIZE, () => { + for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) { + if (getComputedStyle(element).position !== 'fixed') { + Offcanvas.getOrCreateInstance(element).hide(); + } + } +}); enableDismissTrigger(Offcanvas); defineJQueryPlugin(Offcanvas); const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); @@ -6961,13 +6957,7 @@ const allowedAttribute = (attribute, allowedAttributeList) => { } return true; } - const regExp = allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp); - for (let i = 0, len = regExp.length; i < len; i++) { - if (regExp[i].test(attributeName)) { - return true; - } - } - return false; + return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); }; const DefaultAllowlist = { '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], @@ -7001,18 +6991,17 @@ const DefaultAllowlist = { u: [], ul: [] }; -function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) { +function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { if (!unsafeHtml.length) { return unsafeHtml; } - if (sanitizeFn && typeof sanitizeFn === 'function') { - return sanitizeFn(unsafeHtml); + if (sanitizeFunction && typeof sanitizeFunction === 'function') { + return sanitizeFunction(unsafeHtml); } const domParser = new window.DOMParser(); const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); const elements = [].concat(...createdDocument.body.querySelectorAll('*')); - for (let i = 0, len = elements.length; i < len; i++) { - const element = elements[i]; + for (const element of elements) { const elementName = element.nodeName.toLowerCase(); if (!Object.keys(allowList).includes(elementName)) { element.remove(); @@ -7020,38 +7009,146 @@ function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) { } const attributeList = [].concat(...element.attributes); const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []); - attributeList.forEach(attribute => { + for (const attribute of attributeList) { if (!allowedAttribute(attribute, allowedAttributes)) { element.removeAttribute(attribute.nodeName); } - }); + } } return createdDocument.body.innerHTML; } -const NAME$4 = 'tooltip'; -const DATA_KEY$4 = 'bs.tooltip'; -const EVENT_KEY$4 = `.${DATA_KEY$4}`; -const CLASS_PREFIX$1 = 'bs-tooltip'; -const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); -const DefaultType$3 = { - animation: 'boolean', - template: 'string', - title: '(string|element|function)', - trigger: 'string', - delay: '(number|object)', +const NAME$5 = 'TemplateFactory'; +const Default$4 = { + allowList: DefaultAllowlist, + content: {}, + extraClass: '', + html: false, + sanitize: true, + sanitizeFn: null, + template: '
    ' +}; +const DefaultType$4 = { + allowList: 'object', + content: 'object', + extraClass: '(string|function)', html: 'boolean', - selector: '(string|boolean)', - placement: '(string|function)', - offset: '(array|string|function)', - container: '(string|element|boolean)', - fallbackPlacements: 'array', - boundary: '(string|element)', - customClass: '(string|function)', sanitize: 'boolean', sanitizeFn: '(null|function)', - allowList: 'object', - popperConfig: '(null|object|function)' + template: 'string' }; +const DefaultContentType = { + entry: '(string|element|function|null)', + selector: '(string|element)' +}; +class TemplateFactory extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + } + static get Default() { + return Default$4; + } + static get DefaultType() { + return DefaultType$4; + } + static get NAME() { + return NAME$5; + } + getContent() { + return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean); + } + hasContent() { + return this.getContent().length > 0; + } + changeContent(content) { + this._checkContent(content); + this._config.content = { ...this._config.content, + ...content + }; + return this; + } + toHtml() { + const templateWrapper = document.createElement('div'); + templateWrapper.innerHTML = this._maybeSanitize(this._config.template); + for (const [selector, text] of Object.entries(this._config.content)) { + this._setContent(templateWrapper, text, selector); + } + const template = templateWrapper.children[0]; + const extraClass = this._resolvePossibleFunction(this._config.extraClass); + if (extraClass) { + template.classList.add(...extraClass.split(' ')); + } + return template; + } + _typeCheckConfig(config) { + super._typeCheckConfig(config); + this._checkContent(config.content); + } + _checkContent(arg) { + for (const [selector, content] of Object.entries(arg)) { + super._typeCheckConfig({ + selector, + entry: content + }, DefaultContentType); + } + } + _setContent(template, content, selector) { + const templateElement = SelectorEngine.findOne(selector, template); + if (!templateElement) { + return; + } + content = this._resolvePossibleFunction(content); + if (!content) { + templateElement.remove(); + return; + } + if (isElement(content)) { + this._putElementInTemplate(getElement(content), templateElement); + return; + } + if (this._config.html) { + templateElement.innerHTML = this._maybeSanitize(content); + return; + } + templateElement.textContent = content; + } + _maybeSanitize(arg) { + return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; + } + _resolvePossibleFunction(arg) { + return typeof arg === 'function' ? arg(this) : arg; + } + _putElementInTemplate(element, templateElement) { + if (this._config.html) { + templateElement.innerHTML = ''; + templateElement.append(element); + return; + } + templateElement.textContent = element.textContent; + } +} +const NAME$4 = 'tooltip'; +const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); +const CLASS_NAME_FADE$2 = 'fade'; +const CLASS_NAME_MODAL = 'modal'; +const CLASS_NAME_SHOW$2 = 'show'; +const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; +const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; +const EVENT_MODAL_HIDE = 'hide.bs.modal'; +const TRIGGER_HOVER = 'hover'; +const TRIGGER_FOCUS = 'focus'; +const TRIGGER_CLICK = 'click'; +const TRIGGER_MANUAL = 'manual'; +const EVENT_HIDE$2 = 'hide'; +const EVENT_HIDDEN$2 = 'hidden'; +const EVENT_SHOW$2 = 'show'; +const EVENT_SHOWN$2 = 'shown'; +const EVENT_INSERTED = 'inserted'; +const EVENT_CLICK$1 = 'click'; +const EVENT_FOCUSIN$1 = 'focusin'; +const EVENT_FOCUSOUT$1 = 'focusout'; +const EVENT_MOUSEENTER = 'mouseenter'; +const EVENT_MOUSELEAVE = 'mouseleave'; const AttachmentMap = { AUTO: 'auto', TOP: 'top', @@ -7060,75 +7157,68 @@ const AttachmentMap = { LEFT: isRTL() ? 'right' : 'left' }; const Default$3 = { + allowList: DefaultAllowlist, animation: true, - template: '', - trigger: 'hover focus', - title: '', - delay: 0, - html: false, - selector: false, - placement: 'top', - offset: [0, 0], - container: false, - fallbackPlacements: ['top', 'right', 'bottom', 'left'], boundary: 'clippingParents', + container: false, customClass: '', + delay: 0, + fallbackPlacements: ['top', 'right', 'bottom', 'left'], + html: false, + offset: [0, 0], + placement: 'top', + popperConfig: null, sanitize: true, sanitizeFn: null, - allowList: DefaultAllowlist, - popperConfig: null + selector: false, + template: '', + title: '', + trigger: 'hover focus' }; -const Event$2 = { - HIDE: `hide${EVENT_KEY$4}`, - HIDDEN: `hidden${EVENT_KEY$4}`, - SHOW: `show${EVENT_KEY$4}`, - SHOWN: `shown${EVENT_KEY$4}`, - INSERTED: `inserted${EVENT_KEY$4}`, - CLICK: `click${EVENT_KEY$4}`, - FOCUSIN: `focusin${EVENT_KEY$4}`, - FOCUSOUT: `focusout${EVENT_KEY$4}`, - MOUSEENTER: `mouseenter${EVENT_KEY$4}`, - MOUSELEAVE: `mouseleave${EVENT_KEY$4}` +const DefaultType$3 = { + allowList: 'object', + animation: 'boolean', + boundary: '(string|element)', + container: '(string|element|boolean)', + customClass: '(string|function)', + delay: '(number|object)', + fallbackPlacements: 'array', + html: 'boolean', + offset: '(array|string|function)', + placement: '(string|function)', + popperConfig: '(null|object|function)', + sanitize: 'boolean', + sanitizeFn: '(null|function)', + selector: '(string|boolean)', + template: 'string', + title: '(string|element|function)', + trigger: 'string' }; -const CLASS_NAME_FADE$2 = 'fade'; -const CLASS_NAME_MODAL = 'modal'; -const CLASS_NAME_SHOW$2 = 'show'; -const HOVER_STATE_SHOW = 'show'; -const HOVER_STATE_OUT = 'out'; -const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; -const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; -const EVENT_MODAL_HIDE = 'hide.bs.modal'; -const TRIGGER_HOVER = 'hover'; -const TRIGGER_FOCUS = 'focus'; -const TRIGGER_CLICK = 'click'; -const TRIGGER_MANUAL = 'manual'; class Tooltip extends BaseComponent { constructor(element, config) { if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); } - super(element); + super(element, config); this._isEnabled = true; this._timeout = 0; - this._hoverState = ''; + this._isHovered = false; this._activeTrigger = {}; this._popper = null; - this._config = this._getConfig(config); + this._templateFactory = null; + this._newContent = null; this.tip = null; this._setListeners(); } static get Default() { return Default$3; } - static get NAME() { - return NAME$4; - } - static get Event() { - return Event$2; - } static get DefaultType() { return DefaultType$3; } + static get NAME() { + return NAME$4; + } enable() { this._isEnabled = true; } @@ -7146,17 +7236,17 @@ class Tooltip extends BaseComponent { const context = this._initializeOnDelegatedTarget(event); context._activeTrigger.click = !context._activeTrigger.click; if (context._isWithActiveTrigger()) { - context._enter(null, context); + context._enter(); } else { - context._leave(null, context); + context._leave(); } - } else { - if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$2)) { - this._leave(null, this); - return; - } - this._enter(null, this); + return; } + if (this._isShown()) { + this._leave(); + return; + } + this._enter(); } dispose() { clearTimeout(this._timeout); @@ -7171,182 +7261,163 @@ class Tooltip extends BaseComponent { if (this._element.style.display === 'none') { throw new Error('Please use show on visible elements'); } - if (!(this.isWithContent() && this._isEnabled)) { + if (!(this._isWithContent() && this._isEnabled)) { return; } - const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW); + const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2)); const shadowRoot = findShadowRoot(this._element); - const isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element); + const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element); if (showEvent.defaultPrevented || !isInTheDom) { return; } - if (this.constructor.NAME === 'tooltip' && this.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) { - this._disposePopper(); + if (this.tip) { this.tip.remove(); this.tip = null; } - const tip = this.getTipElement(); - const tipId = getUID(this.constructor.NAME); - tip.setAttribute('id', tipId); - this._element.setAttribute('aria-describedby', tipId); - if (this._config.animation) { - tip.classList.add(CLASS_NAME_FADE$2); - } - const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement; - const attachment = this._getAttachment(placement); - this._addAttachmentClass(attachment); + const tip = this._getTipElement(); + this._element.setAttribute('aria-describedby', tip.getAttribute('id')); const { container } = this._config; - Data.set(tip, this.constructor.DATA_KEY, this); if (!this._element.ownerDocument.documentElement.contains(this.tip)) { container.append(tip); - EventHandler.trigger(this._element, this.constructor.Event.INSERTED); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); } if (this._popper) { this._popper.update(); } else { - this._popper = createPopper(this._element, tip, this._getPopperConfig(attachment)); + this._popper = this._createPopper(tip); } tip.classList.add(CLASS_NAME_SHOW$2); - const customClass = this._resolvePossibleFunction(this._config.customClass); - if (customClass) { - tip.classList.add(...customClass.split(' ')); - } if ('ontouchstart' in document.documentElement) { - [].concat(...document.body.children).forEach(element => { + for (const element of [].concat(...document.body.children)) { EventHandler.on(element, 'mouseover', noop); - }); + } } const complete = () => { - const prevHoverState = this._hoverState; - this._hoverState = null; - EventHandler.trigger(this._element, this.constructor.Event.SHOWN); - if (prevHoverState === HOVER_STATE_OUT) { - this._leave(null, this); + const previousHoverState = this._isHovered; + this._isHovered = false; + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); + if (previousHoverState) { + this._leave(); } }; - const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2); - this._queueCallback(complete, this.tip, isAnimated); + this._queueCallback(complete, this.tip, this._isAnimated()); } hide() { - if (!this._popper) { + if (!this._isShown()) { return; } - const tip = this.getTipElement(); - const complete = () => { - if (this._isWithActiveTrigger()) { - return; - } - if (this._hoverState !== HOVER_STATE_SHOW) { - tip.remove(); - } - this._cleanTipClass(); - this._element.removeAttribute('aria-describedby'); - EventHandler.trigger(this._element, this.constructor.Event.HIDDEN); - this._disposePopper(); - }; - const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE); + const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2)); if (hideEvent.defaultPrevented) { return; } + const tip = this._getTipElement(); tip.classList.remove(CLASS_NAME_SHOW$2); if ('ontouchstart' in document.documentElement) { - [].concat(...document.body.children).forEach(element => EventHandler.off(element, 'mouseover', noop)); + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, 'mouseover', noop); + } } this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2); - this._queueCallback(complete, this.tip, isAnimated); - this._hoverState = ''; + this._isHovered = false; + const complete = () => { + if (this._isWithActiveTrigger()) { + return; + } + if (!this._isHovered) { + tip.remove(); + } + this._element.removeAttribute('aria-describedby'); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); + this._disposePopper(); + }; + this._queueCallback(complete, this.tip, this._isAnimated()); } update() { - if (this._popper !== null) { + if (this._popper) { this._popper.update(); } } - isWithContent() { - return Boolean(this.getTitle()); + _isWithContent() { + return Boolean(this._getTitle()); } - getTipElement() { - if (this.tip) { - return this.tip; + _getTipElement() { + if (!this.tip) { + this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); } - const element = document.createElement('div'); - element.innerHTML = this._config.template; - const tip = element.children[0]; - this.setContent(tip); - tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); - this.tip = tip; return this.tip; } - setContent(tip) { - this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER); + _createTipElement(content) { + const tip = this._getTemplateFactory(content).toHtml(); + if (!tip) { + return null; + } + tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); + tip.classList.add(`bs-${this.constructor.NAME}-auto`); + const tipId = getUID(this.constructor.NAME).toString(); + tip.setAttribute('id', tipId); + if (this._isAnimated()) { + tip.classList.add(CLASS_NAME_FADE$2); + } + return tip; } - _sanitizeAndSetContent(template, content, selector) { - const templateElement = SelectorEngine.findOne(selector, template); - if (!content && templateElement) { - templateElement.remove(); - return; + setContent(content) { + this._newContent = content; + if (this._isShown()) { + this._disposePopper(); + this.show(); } - this.setElementContent(templateElement, content); } - setElementContent(element, content) { - if (element === null) { - return; - } - if (isElement(content)) { - content = getElement(content); - if (this._config.html) { - if (content.parentNode !== element) { - element.innerHTML = ''; - element.append(content); - } - } else { - element.textContent = content.textContent; - } - return; - } - if (this._config.html) { - if (this._config.sanitize) { - content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn); - } - element.innerHTML = content; + _getTemplateFactory(content) { + if (this._templateFactory) { + this._templateFactory.changeContent(content); } else { - element.textContent = content; + this._templateFactory = new TemplateFactory({ ...this._config, + content, + extraClass: this._resolvePossibleFunction(this._config.customClass) + }); } + return this._templateFactory; } - getTitle() { - const title = this._element.getAttribute('data-bs-original-title') || this._config.title; - return this._resolvePossibleFunction(title); + _getContentForTemplate() { + return { + [SELECTOR_TOOLTIP_INNER]: this._getTitle() + }; } - updateAttachment(attachment) { - if (attachment === 'right') { - return 'end'; - } - if (attachment === 'left') { - return 'start'; - } - return attachment; + _getTitle() { + return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle; } - _initializeOnDelegatedTarget(event, context) { - return context || this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); + _initializeOnDelegatedTarget(event) { + return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); + } + _isAnimated() { + return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2); + } + _isShown() { + return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2); + } + _createPopper(tip) { + const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement; + const attachment = AttachmentMap[placement.toUpperCase()]; + return createPopper(this._element, tip, this._getPopperConfig(attachment)); } _getOffset() { const { offset } = this._config; if (typeof offset === 'string') { - return offset.split(',').map(val => Number.parseInt(val, 10)); + return offset.split(',').map(value => Number.parseInt(value, 10)); } if (typeof offset === 'function') { return popperData => offset(popperData, this._element); } return offset; } - _resolvePossibleFunction(content) { - return typeof content === 'function' ? content.call(this._element) : content; + _resolvePossibleFunction(arg) { + return typeof arg === 'function' ? arg.call(this._element) : arg; } _getPopperConfig(attachment) { const defaultBsPopperConfig = { @@ -7372,39 +7443,38 @@ class Tooltip extends BaseComponent { element: `.${this.constructor.NAME}-arrow` } }, { - name: 'onChange', + name: 'preSetPlacement', enabled: true, - phase: 'afterWrite', - fn: data => this._handlePopperPlacementChange(data) - }], - onFirstUpdate: data => { - if (data.options.placement !== data.placement) { - this._handlePopperPlacementChange(data); + phase: 'beforeMain', + fn: data => { + this._getTipElement().setAttribute('data-popper-placement', data.state.placement); } - } + }] }; return { ...defaultBsPopperConfig, ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig) }; } - _addAttachmentClass(attachment) { - this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`); - } - _getAttachment(placement) { - return AttachmentMap[placement.toUpperCase()]; - } _setListeners() { const triggers = this._config.trigger.split(' '); - triggers.forEach(trigger => { + for (const trigger of triggers) { if (trigger === 'click') { - EventHandler.on(this._element, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event)); + EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => this.toggle(event)); } else if (trigger !== TRIGGER_MANUAL) { - const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN; - const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT; - EventHandler.on(this._element, eventIn, this._config.selector, event => this._enter(event)); - EventHandler.on(this._element, eventOut, this._config.selector, event => this._leave(event)); + const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); + const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); + EventHandler.on(this._element, eventIn, this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; + context._enter(); + }); + EventHandler.on(this._element, eventOut, this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); + context._leave(); + }); } - }); + } this._hideModalHandler = () => { if (this._element) { this.hide(); @@ -7421,76 +7491,61 @@ class Tooltip extends BaseComponent { } } _fixTitle() { - const title = this._element.getAttribute('title'); - const originalTitleType = typeof this._element.getAttribute('data-bs-original-title'); - if (title || originalTitleType !== 'string') { - this._element.setAttribute('data-bs-original-title', title || ''); - if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) { - this._element.setAttribute('aria-label', title); - } - this._element.setAttribute('title', ''); + const title = this._config.originalTitle; + if (!title) { + return; } + if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) { + this._element.setAttribute('aria-label', title); + } + this._element.removeAttribute('title'); } - _enter(event, context) { - context = this._initializeOnDelegatedTarget(event, context); - if (event) { - context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; - } - if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$2) || context._hoverState === HOVER_STATE_SHOW) { - context._hoverState = HOVER_STATE_SHOW; + _enter() { + if (this._isShown() || this._isHovered) { + this._isHovered = true; return; } - clearTimeout(context._timeout); - context._hoverState = HOVER_STATE_SHOW; - if (!context._config.delay || !context._config.delay.show) { - context.show(); - return; - } - context._timeout = setTimeout(() => { - if (context._hoverState === HOVER_STATE_SHOW) { - context.show(); + this._isHovered = true; + this._setTimeout(() => { + if (this._isHovered) { + this.show(); } - }, context._config.delay.show); + }, this._config.delay.show); } - _leave(event, context) { - context = this._initializeOnDelegatedTarget(event, context); - if (event) { - context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); - } - if (context._isWithActiveTrigger()) { + _leave() { + if (this._isWithActiveTrigger()) { return; } - clearTimeout(context._timeout); - context._hoverState = HOVER_STATE_OUT; - if (!context._config.delay || !context._config.delay.hide) { - context.hide(); - return; - } - context._timeout = setTimeout(() => { - if (context._hoverState === HOVER_STATE_OUT) { - context.hide(); + this._isHovered = false; + this._setTimeout(() => { + if (!this._isHovered) { + this.hide(); } - }, context._config.delay.hide); + }, this._config.delay.hide); + } + _setTimeout(handler, timeout) { + clearTimeout(this._timeout); + this._timeout = setTimeout(handler, timeout); } _isWithActiveTrigger() { - for (const trigger in this._activeTrigger) { - if (this._activeTrigger[trigger]) { - return true; - } - } - return false; + return Object.values(this._activeTrigger).includes(true); } _getConfig(config) { const dataAttributes = Manipulator.getDataAttributes(this._element); - Object.keys(dataAttributes).forEach(dataAttr => { - if (DISALLOWED_ATTRIBUTES.has(dataAttr)) { - delete dataAttributes[dataAttr]; + for (const dataAttribute of Object.keys(dataAttributes)) { + if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { + delete dataAttributes[dataAttribute]; } - }); - config = { ...this.constructor.Default, - ...dataAttributes, + } + config = { ...dataAttributes, ...(typeof config === 'object' && config ? config : {}) }; + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { config.container = config.container === false ? document.body : getElement(config.container); if (typeof config.delay === 'number') { config.delay = { @@ -7498,16 +7553,13 @@ class Tooltip extends BaseComponent { hide: config.delay }; } + config.originalTitle = this._element.getAttribute('title') || ''; if (typeof config.title === 'number') { config.title = config.title.toString(); } if (typeof config.content === 'number') { config.content = config.content.toString(); } - typeCheckConfig(NAME$4, config, this.constructor.DefaultType); - if (config.sanitize) { - config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn); - } return config; } _getDelegateConfig() { @@ -7519,28 +7571,6 @@ class Tooltip extends BaseComponent { } return config; } - _cleanTipClass() { - const tip = this.getTipElement(); - const basicClassPrefixRegex = new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`, 'g'); - const tabClass = tip.getAttribute('class').match(basicClassPrefixRegex); - if (tabClass !== null && tabClass.length > 0) { - tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); - } - } - _getBasicClassPrefix() { - return CLASS_PREFIX$1; - } - _handlePopperPlacementChange(popperData) { - const { - state - } = popperData; - if (!state) { - return; - } - this.tip = state.elements.popper; - this._cleanTipClass(); - this._addAttachmentClass(this._getAttachment(state.placement)); - } _disposePopper() { if (this._popper) { this._popper.destroy(); @@ -7550,228 +7580,6 @@ class Tooltip extends BaseComponent { static jQueryInterface(config) { return this.each(function () { const data = Tooltip.getOrCreateInstance(this, config); - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); - } - data[config](); - } - }); - } -} -defineJQueryPlugin(Tooltip); -const NAME$3 = 'popover'; -const DATA_KEY$3 = 'bs.popover'; -const EVENT_KEY$3 = `.${DATA_KEY$3}`; -const CLASS_PREFIX = 'bs-popover'; -const Default$2 = { ...Tooltip.Default, - placement: 'right', - offset: [0, 8], - trigger: 'click', - content: '', - template: '' -}; -const DefaultType$2 = { ...Tooltip.DefaultType, - content: '(string|element|function)' -}; -const Event$1 = { - HIDE: `hide${EVENT_KEY$3}`, - HIDDEN: `hidden${EVENT_KEY$3}`, - SHOW: `show${EVENT_KEY$3}`, - SHOWN: `shown${EVENT_KEY$3}`, - INSERTED: `inserted${EVENT_KEY$3}`, - CLICK: `click${EVENT_KEY$3}`, - FOCUSIN: `focusin${EVENT_KEY$3}`, - FOCUSOUT: `focusout${EVENT_KEY$3}`, - MOUSEENTER: `mouseenter${EVENT_KEY$3}`, - MOUSELEAVE: `mouseleave${EVENT_KEY$3}` -}; -const SELECTOR_TITLE = '.popover-header'; -const SELECTOR_CONTENT = '.popover-body'; -class Popover extends Tooltip { - static get Default() { - return Default$2; - } - static get NAME() { - return NAME$3; - } - static get Event() { - return Event$1; - } - static get DefaultType() { - return DefaultType$2; - } - isWithContent() { - return this.getTitle() || this._getContent(); - } - setContent(tip) { - this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE); - this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT); - } - _getContent() { - return this._resolvePossibleFunction(this._config.content); - } - _getBasicClassPrefix() { - return CLASS_PREFIX; - } - static jQueryInterface(config) { - return this.each(function () { - const data = Popover.getOrCreateInstance(this, config); - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); - } - data[config](); - } - }); - } -} -defineJQueryPlugin(Popover); -const NAME$2 = 'scrollspy'; -const DATA_KEY$2 = 'bs.scrollspy'; -const EVENT_KEY$2 = `.${DATA_KEY$2}`; -const DATA_API_KEY$1 = '.data-api'; -const Default$1 = { - offset: 10, - method: 'auto', - target: '' -}; -const DefaultType$1 = { - offset: 'number', - method: 'string', - target: '(string|element)' -}; -const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; -const EVENT_SCROLL = `scroll${EVENT_KEY$2}`; -const EVENT_LOAD_DATA_API = `load${EVENT_KEY$2}${DATA_API_KEY$1}`; -const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; -const CLASS_NAME_ACTIVE$1 = 'active'; -const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; -const SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group'; -const SELECTOR_NAV_LINKS = '.nav-link'; -const SELECTOR_NAV_ITEMS = '.nav-item'; -const SELECTOR_LIST_ITEMS = '.list-group-item'; -const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`; -const SELECTOR_DROPDOWN$1 = '.dropdown'; -const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; -const METHOD_OFFSET = 'offset'; -const METHOD_POSITION = 'position'; -class ScrollSpy extends BaseComponent { - constructor(element, config) { - super(element); - this._scrollElement = this._element.tagName === 'BODY' ? window : this._element; - this._config = this._getConfig(config); - this._offsets = []; - this._targets = []; - this._activeTarget = null; - this._scrollHeight = 0; - EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process()); - this.refresh(); - this._process(); - } - static get Default() { - return Default$1; - } - static get NAME() { - return NAME$2; - } - refresh() { - const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; - const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; - const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; - this._offsets = []; - this._targets = []; - this._scrollHeight = this._getScrollHeight(); - const targets = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target); - targets.map(element => { - const targetSelector = getSelectorFromElement(element); - const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null; - if (target) { - const targetBCR = target.getBoundingClientRect(); - if (targetBCR.width || targetBCR.height) { - return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector]; - } - } - return null; - }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => { - this._offsets.push(item[0]); - this._targets.push(item[1]); - }); - } - dispose() { - EventHandler.off(this._scrollElement, EVENT_KEY$2); - super.dispose(); - } - _getConfig(config) { - config = { ...Default$1, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' && config ? config : {}) - }; - config.target = getElement(config.target) || document.documentElement; - typeCheckConfig(NAME$2, config, DefaultType$1); - return config; - } - _getScrollTop() { - return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; - } - _getScrollHeight() { - return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - } - _getOffsetHeight() { - return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; - } - _process() { - const scrollTop = this._getScrollTop() + this._config.offset; - const scrollHeight = this._getScrollHeight(); - const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); - if (this._scrollHeight !== scrollHeight) { - this.refresh(); - } - if (scrollTop >= maxScroll) { - const target = this._targets[this._targets.length - 1]; - if (this._activeTarget !== target) { - this._activate(target); - } - return; - } - if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { - this._activeTarget = null; - this._clear(); - return; - } - for (let i = this._offsets.length; i--;) { - const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); - if (isActiveTarget) { - this._activate(this._targets[i]); - } - } - } - _activate(target) { - this._activeTarget = target; - this._clear(); - const queries = SELECTOR_LINK_ITEMS.split(',').map(selector => `${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`); - const link = SelectorEngine.findOne(queries.join(','), this._config.target); - link.classList.add(CLASS_NAME_ACTIVE$1); - if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { - SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1); - } else { - SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(listGroup => { - SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); - SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem => { - SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); - }); - }); - } - EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, { - relatedTarget: target - }); - } - _clear() { - SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target).filter(node => node.classList.contains(CLASS_NAME_ACTIVE$1)).forEach(node => node.classList.remove(CLASS_NAME_ACTIVE$1)); - } - static jQueryInterface(config) { - return this.each(function () { - const data = ScrollSpy.getOrCreateInstance(this, config); if (typeof config !== 'string') { return; } @@ -7782,125 +7590,443 @@ class ScrollSpy extends BaseComponent { }); } } -EventHandler.on(window, EVENT_LOAD_DATA_API, () => { - SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy)); +defineJQueryPlugin(Tooltip); +const NAME$3 = 'popover'; +const SELECTOR_TITLE = '.popover-header'; +const SELECTOR_CONTENT = '.popover-body'; +const Default$2 = { ...Tooltip.Default, + content: '', + offset: [0, 8], + placement: 'right', + template: '', + trigger: 'click' +}; +const DefaultType$2 = { ...Tooltip.DefaultType, + content: '(null|string|element|function)' +}; +class Popover extends Tooltip { + static get Default() { + return Default$2; + } + static get DefaultType() { + return DefaultType$2; + } + static get NAME() { + return NAME$3; + } + _isWithContent() { + return this._getTitle() || this._getContent(); + } + _getContentForTemplate() { + return { + [SELECTOR_TITLE]: this._getTitle(), + [SELECTOR_CONTENT]: this._getContent() + }; + } + _getContent() { + return this._resolvePossibleFunction(this._config.content); + } + static jQueryInterface(config) { + return this.each(function () { + const data = Popover.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +} +defineJQueryPlugin(Popover); +const NAME$2 = 'scrollspy'; +const DATA_KEY$2 = 'bs.scrollspy'; +const EVENT_KEY$2 = `.${DATA_KEY$2}`; +const DATA_API_KEY = '.data-api'; +const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; +const EVENT_CLICK = `click${EVENT_KEY$2}`; +const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`; +const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; +const CLASS_NAME_ACTIVE$1 = 'active'; +const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; +const SELECTOR_TARGET_LINKS = '[href]'; +const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; +const SELECTOR_NAV_LINKS = '.nav-link'; +const SELECTOR_NAV_ITEMS = '.nav-item'; +const SELECTOR_LIST_ITEMS = '.list-group-item'; +const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; +const SELECTOR_DROPDOWN = '.dropdown'; +const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; +const Default$1 = { + offset: null, + rootMargin: '0px 0px -25%', + smoothScroll: false, + target: null +}; +const DefaultType$1 = { + offset: '(number|null)', + rootMargin: 'string', + smoothScroll: 'boolean', + target: 'element' +}; +class ScrollSpy extends BaseComponent { + constructor(element, config) { + super(element, config); + this._targetLinks = new Map(); + this._observableSections = new Map(); + this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element; + this._activeTarget = null; + this._observer = null; + this._previousScrollData = { + visibleEntryTop: 0, + parentScrollTop: 0 + }; + this.refresh(); + } + static get Default() { + return Default$1; + } + static get DefaultType() { + return DefaultType$1; + } + static get NAME() { + return NAME$2; + } + refresh() { + this._initializeTargetsAndObservables(); + this._maybeEnableSmoothScroll(); + if (this._observer) { + this._observer.disconnect(); + } else { + this._observer = this._getNewObserver(); + } + for (const section of this._observableSections.values()) { + this._observer.observe(section); + } + } + dispose() { + this._observer.disconnect(); + super.dispose(); + } + _configAfterMerge(config) { + config.target = getElement(config.target) || document.body; + return config; + } + _maybeEnableSmoothScroll() { + if (!this._config.smoothScroll) { + return; + } + EventHandler.off(this._config.target, EVENT_CLICK); + EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => { + const observableSection = this._observableSections.get(event.target.hash); + if (observableSection) { + event.preventDefault(); + const root = this._rootElement || window; + const height = observableSection.offsetTop - this._element.offsetTop; + if (root.scrollTo) { + root.scrollTo({ + top: height, + behavior: 'smooth' + }); + return; + } + root.scrollTop = height; + } + }); + } + _getNewObserver() { + const options = { + root: this._rootElement, + threshold: [0.1, 0.5, 1], + rootMargin: this._getRootMargin() + }; + return new IntersectionObserver(entries => this._observerCallback(entries), options); + } + _observerCallback(entries) { + const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`); + const activate = entry => { + this._previousScrollData.visibleEntryTop = entry.target.offsetTop; + this._process(targetElement(entry)); + }; + const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; + const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; + this._previousScrollData.parentScrollTop = parentScrollTop; + for (const entry of entries) { + if (!entry.isIntersecting) { + this._activeTarget = null; + this._clearActiveClass(targetElement(entry)); + continue; + } + const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; + if (userScrollsDown && entryIsLowerThanPrevious) { + activate(entry); + if (!parentScrollTop) { + return; + } + continue; + } + if (!userScrollsDown && !entryIsLowerThanPrevious) { + activate(entry); + } + } + } + _getRootMargin() { + return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin; + } + _initializeTargetsAndObservables() { + this._targetLinks = new Map(); + this._observableSections = new Map(); + const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); + for (const anchor of targetLinks) { + if (!anchor.hash || isDisabled(anchor)) { + continue; + } + const observableSection = SelectorEngine.findOne(anchor.hash, this._element); + if (isVisible(observableSection)) { + this._targetLinks.set(anchor.hash, anchor); + this._observableSections.set(anchor.hash, observableSection); + } + } + } + _process(target) { + if (this._activeTarget === target) { + return; + } + this._clearActiveClass(this._config.target); + this._activeTarget = target; + target.classList.add(CLASS_NAME_ACTIVE$1); + this._activateParents(target); + EventHandler.trigger(this._element, EVENT_ACTIVATE, { + relatedTarget: target + }); + } + _activateParents(target) { + if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { + SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1); + return; + } + for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { + for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { + item.classList.add(CLASS_NAME_ACTIVE$1); + } + } + } + _clearActiveClass(parent) { + parent.classList.remove(CLASS_NAME_ACTIVE$1); + const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent); + for (const node of activeNodes) { + node.classList.remove(CLASS_NAME_ACTIVE$1); + } + } + static jQueryInterface(config) { + return this.each(function () { + const data = ScrollSpy.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +} +EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { + for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { + ScrollSpy.getOrCreateInstance(spy); + } }); defineJQueryPlugin(ScrollSpy); const NAME$1 = 'tab'; const DATA_KEY$1 = 'bs.tab'; const EVENT_KEY$1 = `.${DATA_KEY$1}`; -const DATA_API_KEY = '.data-api'; const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; -const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}${DATA_API_KEY}`; -const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'; +const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`; +const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`; +const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`; +const ARROW_LEFT_KEY = 'ArrowLeft'; +const ARROW_RIGHT_KEY = 'ArrowRight'; +const ARROW_UP_KEY = 'ArrowUp'; +const ARROW_DOWN_KEY = 'ArrowDown'; const CLASS_NAME_ACTIVE = 'active'; const CLASS_NAME_FADE$1 = 'fade'; const CLASS_NAME_SHOW$1 = 'show'; -const SELECTOR_DROPDOWN = '.dropdown'; -const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; -const SELECTOR_ACTIVE = '.active'; -const SELECTOR_ACTIVE_UL = ':scope > li > .active'; -const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; +const CLASS_DROPDOWN = 'dropdown'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; -const SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'; +const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; +const SELECTOR_DROPDOWN_ITEM = '.dropdown-item'; +const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; +const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; +const SELECTOR_OUTER = '.nav-item, .list-group-item'; +const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; +const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; +const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; +const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; class Tab extends BaseComponent { + constructor(element) { + super(element); + this._parent = this._element.closest(SELECTOR_TAB_PANEL); + if (!this._parent) { + return; + } + this._setInitialAttributes(this._parent, this._getChildren()); + EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); + } static get NAME() { return NAME$1; } show() { - if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE)) { + const innerElem = this._element; + if (this._elemIsActive(innerElem)) { return; } - let previous; - const target = getElementFromSelector(this._element); - const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP); - if (listElement) { - const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE; - previous = SelectorEngine.find(itemSelector, listElement); - previous = previous[previous.length - 1]; - } - const hideEvent = previous ? EventHandler.trigger(previous, EVENT_HIDE$1, { - relatedTarget: this._element + const active = this._getActiveElem(); + const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, { + relatedTarget: innerElem }) : null; - const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, { - relatedTarget: previous + const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, { + relatedTarget: active }); - if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) { + if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { return; } - this._activate(this._element, listElement); - const complete = () => { - EventHandler.trigger(previous, EVENT_HIDDEN$1, { - relatedTarget: this._element - }); - EventHandler.trigger(this._element, EVENT_SHOWN$1, { - relatedTarget: previous - }); - }; - if (target) { - this._activate(target, target.parentNode, complete); - } else { - complete(); - } + this._deactivate(active, innerElem); + this._activate(innerElem, active); } - _activate(element, container, callback) { - const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE); - const active = activeElements[0]; - const isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$1); - const complete = () => this._transitionComplete(element, active, callback); - if (active && isTransitioning) { - active.classList.remove(CLASS_NAME_SHOW$1); - this._queueCallback(complete, element, true); - } else { - complete(); - } - } - _transitionComplete(element, active, callback) { - if (active) { - active.classList.remove(CLASS_NAME_ACTIVE); - const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode); - if (dropdownChild) { - dropdownChild.classList.remove(CLASS_NAME_ACTIVE); - } - if (active.getAttribute('role') === 'tab') { - active.setAttribute('aria-selected', false); - } + _activate(element, relatedElem) { + if (!element) { + return; } element.classList.add(CLASS_NAME_ACTIVE); - if (element.getAttribute('role') === 'tab') { - element.setAttribute('aria-selected', true); - } - reflow(element); - if (element.classList.contains(CLASS_NAME_FADE$1)) { - element.classList.add(CLASS_NAME_SHOW$1); - } - let parent = element.parentNode; - if (parent && parent.nodeName === 'LI') { - parent = parent.parentNode; - } - if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) { - const dropdownElement = element.closest(SELECTOR_DROPDOWN); - if (dropdownElement) { - SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE)); + this._activate(getElementFromSelector(element)); + const complete = () => { + if (element.getAttribute('role') !== 'tab') { + element.classList.add(CLASS_NAME_SHOW$1); + return; } - element.setAttribute('aria-expanded', true); + element.focus(); + element.removeAttribute('tabindex'); + element.setAttribute('aria-selected', true); + this._toggleDropDown(element, true); + EventHandler.trigger(element, EVENT_SHOWN$1, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); + } + _deactivate(element, relatedElem) { + if (!element) { + return; } - if (callback) { - callback(); + element.classList.remove(CLASS_NAME_ACTIVE); + element.blur(); + this._deactivate(getElementFromSelector(element)); + const complete = () => { + if (element.getAttribute('role') !== 'tab') { + element.classList.remove(CLASS_NAME_SHOW$1); + return; + } + element.setAttribute('aria-selected', false); + element.setAttribute('tabindex', '-1'); + this._toggleDropDown(element, false); + EventHandler.trigger(element, EVENT_HIDDEN$1, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); + } + _keydown(event) { + if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) { + return; } + event.stopPropagation(); + event.preventDefault(); + const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); + const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); + if (nextActiveElement) { + Tab.getOrCreateInstance(nextActiveElement).show(); + } + } + _getChildren() { + return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); + } + _getActiveElem() { + return this._getChildren().find(child => this._elemIsActive(child)) || null; + } + _setInitialAttributes(parent, children) { + this._setAttributeIfNotExists(parent, 'role', 'tablist'); + for (const child of children) { + this._setInitialAttributesOnChild(child); + } + } + _setInitialAttributesOnChild(child) { + child = this._getInnerElement(child); + const isActive = this._elemIsActive(child); + const outerElem = this._getOuterElement(child); + child.setAttribute('aria-selected', isActive); + if (outerElem !== child) { + this._setAttributeIfNotExists(outerElem, 'role', 'presentation'); + } + if (!isActive) { + child.setAttribute('tabindex', '-1'); + } + this._setAttributeIfNotExists(child, 'role', 'tab'); + this._setInitialAttributesOnTargetPanel(child); + } + _setInitialAttributesOnTargetPanel(child) { + const target = getElementFromSelector(child); + if (!target) { + return; + } + this._setAttributeIfNotExists(target, 'role', 'tabpanel'); + if (child.id) { + this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`); + } + } + _toggleDropDown(element, open) { + const outerElem = this._getOuterElement(element); + if (!outerElem.classList.contains(CLASS_DROPDOWN)) { + return; + } + const toggle = (selector, className) => { + const element = SelectorEngine.findOne(selector, outerElem); + if (element) { + element.classList.toggle(className, open); + } + }; + toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); + toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); + toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE); + outerElem.setAttribute('aria-expanded', open); + } + _setAttributeIfNotExists(element, attribute, value) { + if (!element.hasAttribute(attribute)) { + element.setAttribute(attribute, value); + } + } + _elemIsActive(elem) { + return elem.classList.contains(CLASS_NAME_ACTIVE); + } + _getInnerElement(elem) { + return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); + } + _getOuterElement(elem) { + return elem.closest(SELECTOR_OUTER) || elem; } static jQueryInterface(config) { return this.each(function () { const data = Tab.getOrCreateInstance(this); - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); - } - data[config](); + if (typeof config !== 'string') { + return; } + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); }); } } @@ -7911,8 +8037,12 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function ( if (isDisabled(this)) { return; } - const data = Tab.getOrCreateInstance(this); - data.show(); + Tab.getOrCreateInstance(this).show(); +}); +EventHandler.on(window, EVENT_LOAD_DATA_API, () => { + for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) { + Tab.getOrCreateInstance(element); + } }); defineJQueryPlugin(Tab); const NAME = 'toast'; @@ -7942,19 +8072,18 @@ const Default = { }; class Toast extends BaseComponent { constructor(element, config) { - super(element); - this._config = this._getConfig(config); + super(element, config); this._timeout = null; this._hasMouseInteraction = false; this._hasKeyboardInteraction = false; this._setListeners(); } - static get DefaultType() { - return DefaultType; - } static get Default() { return Default; } + static get DefaultType() { + return DefaultType; + } static get NAME() { return NAME; } @@ -7974,12 +8103,11 @@ class Toast extends BaseComponent { }; this._element.classList.remove(CLASS_NAME_HIDE); reflow(this._element); - this._element.classList.add(CLASS_NAME_SHOW); - this._element.classList.add(CLASS_NAME_SHOWING); + this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); this._queueCallback(complete, this._element, this._config.animation); } hide() { - if (!this._element.classList.contains(CLASS_NAME_SHOW)) { + if (!this.isShown()) { return; } const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); @@ -7988,8 +8116,7 @@ class Toast extends BaseComponent { } const complete = () => { this._element.classList.add(CLASS_NAME_HIDE); - this._element.classList.remove(CLASS_NAME_SHOWING); - this._element.classList.remove(CLASS_NAME_SHOW); + this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); EventHandler.trigger(this._element, EVENT_HIDDEN); }; this._element.classList.add(CLASS_NAME_SHOWING); @@ -7997,18 +8124,13 @@ class Toast extends BaseComponent { } dispose() { this._clearTimeout(); - if (this._element.classList.contains(CLASS_NAME_SHOW)) { + if (this.isShown()) { this._element.classList.remove(CLASS_NAME_SHOW); } super.dispose(); } - _getConfig(config) { - config = { ...Default, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' && config ? config : {}) - }; - typeCheckConfig(NAME, config, this.constructor.DefaultType); - return config; + isShown() { + return this._element.classList.contains(CLASS_NAME_SHOW); } _maybeScheduleHide() { if (!this._config.autohide) { diff --git a/demo/dist/js/tabler.esm.min.js b/demo/dist/js/tabler.esm.min.js index ac4d64ee3..d493bb5bd 100644 --- a/demo/dist/js/tabler.esm.min.js +++ b/demo/dist/js/tabler.esm.min.js @@ -1,9 +1,9 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) */ -var e,t,n="function"==typeof Map?new Map:(e=[],t=[],{has:function(t){return e.indexOf(t)>-1},get:function(n){return t[e.indexOf(n)]},set:function(n,i){-1===e.indexOf(n)&&(e.push(n),t.push(i))},delete:function(n){var i=e.indexOf(n);i>-1&&(e.splice(i,1),t.splice(i,1))}}),o=function(e){return new Event(e,{bubbles:!0})};try{new Event("test")}catch(e){o=function(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!1),t}}function r(e){var t=n.get(e);t&&t.destroy()}function i(e){var t=n.get(e);t&&t.update()}var l=null;"undefined"==typeof window||"function"!=typeof window.getComputedStyle?((l=function(e){return e}).destroy=function(e){return e},l.update=function(e){return e}):((l=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return function(e){if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!n.has(e)){var t,i=null,s=null,r=null,a=function(){e.clientWidth!==s&&h()},l=function(t){window.removeEventListener("resize",a,!1),e.removeEventListener("input",h,!1),e.removeEventListener("keyup",h,!1),e.removeEventListener("autosize:destroy",l,!1),e.removeEventListener("autosize:update",h,!1),Object.keys(t).forEach(function(n){e.style[n]=t[n]}),n.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",l,!1),"onpropertychange"in e&&"oninput"in e&&e.addEventListener("keyup",h,!1),window.addEventListener("resize",a,!1),e.addEventListener("input",h,!1),e.addEventListener("autosize:update",h,!1),e.style.overflowX="hidden",e.style.wordWrap="break-word",n.set(e,{destroy:l,update:h}),"vertical"===(t=window.getComputedStyle(e,null)).resize?e.style.resize="none":"both"===t.resize&&(e.style.resize="horizontal"),i="content-box"===t.boxSizing?-(parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)):parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth),isNaN(i)&&(i=0),h()}function u(t){var n=e.style.width;e.style.width="0px",e.style.width=n,e.style.overflowY=t}function c(){if(0!==e.scrollHeight){var t=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}(e),n=document.documentElement&&document.documentElement.scrollTop;e.style.height="",e.style.height=e.scrollHeight+i+"px",s=e.clientWidth,t.forEach(function(e){e.node.scrollTop=e.scrollTop}),n&&(document.documentElement.scrollTop=n)}}function h(){c();var t=Math.round(parseFloat(e.style.height)),n=window.getComputedStyle(e,null),i="content-box"===n.boxSizing?Math.round(parseFloat(n.height)):e.offsetHeight;if(i=0||(s[n]=e[n]);return s}function _objectWithoutProperties(e,t){if(null==e)return{};var n,i,s=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,i=_getPrototypeOf(e);if(t){var s=_getPrototypeOf(this).constructor;n=Reflect.construct(i,arguments,s)}else n=i.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _get(){return(_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var i=_superPropBase(e,t);if(i){var s=Object.getOwnPropertyDescriptor(i,t);return s.get?s.get.call(arguments.length<3?e:n):s.value}}).apply(this,arguments)}function set(e,t,n,i){return(set="undefined"!=typeof Reflect&&Reflect.set?Reflect.set:function(e,t,n,i){var s,r=_superPropBase(e,t);if(r){if((s=Object.getOwnPropertyDescriptor(r,t)).set)return s.set.call(i,n),!0;if(!s.writable)return!1}if(s=Object.getOwnPropertyDescriptor(i,t)){if(!s.writable)return!1;s.value=n,Object.defineProperty(i,t,s)}else _defineProperty(i,t,n);return!0})(e,t,n,i)}function _set(e,t,n,i,s){if(!set(e,t,n,i||e)&&s)throw new Error("failed to set property");return n}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,s,r=[],o=!0,a=!1;try{for(n=n.call(e);!(o=(i=n.next()).done)&&(r.push(i.value),!t||r.length!==t);o=!0);}catch(e){a=!0,s=e}finally{try{o||null==n.return||n.return()}finally{if(a)throw s}}return r}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2?arguments[2]:void 0;_classCallCheck(this,e),this.value=t,this.from=n,this.stop=i}return _createClass(e,[{key:"toString",value:function(){return this.value}},{key:"extend",value:function(e){this.value+=String(e)}},{key:"appendTo",value:function(e){return e.append(this.toString(),{tail:!0}).aggregate(e._appendPlaceholder())}},{key:"state",get:function(){return{value:this.value,from:this.from,stop:this.stop}},set:function(e){Object.assign(this,e)}},{key:"unshift",value:function(e){if(!this.value.length||null!=e&&this.from>=e)return"";var t=this.value[0];return this.value=this.value.slice(1),t}},{key:"shift",value:function(){if(!this.value.length)return"";var e=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),e}}]),e}();function IMask(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new IMask.InputMask(e,t)}var Masked=function(){function e(t){_classCallCheck(this,e),this._value="",this._update(Object.assign({},e.DEFAULTS,t)),this.isInitialized=!0}return _createClass(e,[{key:"updateOptions",value:function(e){Object.keys(e).length&&this.withValueRefresh(this._update.bind(this,e))}},{key:"_update",value:function(e){Object.assign(this,e)}},{key:"state",get:function(){return{_value:this.value}},set:function(e){this._value=e._value}},{key:"reset",value:function(){this._value=""}},{key:"value",get:function(){return this._value},set:function(e){this.resolve(e)}},{key:"resolve",value:function(e){return this.reset(),this.append(e,{input:!0},""),this.doCommit(),this.value}},{key:"unmaskedValue",get:function(){return this.value},set:function(e){this.reset(),this.append(e,{},""),this.doCommit()}},{key:"typedValue",get:function(){return this.doParse(this.value)},set:function(e){this.value=this.doFormat(e)}},{key:"rawInputValue",get:function(){return this.extractInput(0,this.value.length,{raw:!0})},set:function(e){this.reset(),this.append(e,{raw:!0},""),this.doCommit()}},{key:"isComplete",get:function(){return!0}},{key:"isFilled",get:function(){return this.isComplete}},{key:"nearestInputPos",value:function(e,t){return e}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.value.slice(e,t)}},{key:"extractTail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return new ContinuousTailDetails(this.extractInput(e,t),e)}},{key:"appendTail",value:function(e){return isString(e)&&(e=new ContinuousTailDetails(String(e))),e.appendTo(this)}},{key:"_appendCharRaw",value:function(e){return e?(this._value+=e,new ChangeDetails({inserted:e,rawInserted:e})):new ChangeDetails}},{key:"_appendChar",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0,s=this.state,r=_slicedToArray(normalizePrepare(this.doPrepare(e,n)),2);if(e=r[0],(t=(t=r[1]).aggregate(this._appendCharRaw(e,n))).inserted){var o,a=!1!==this.doValidate(n);if(a&&null!=i){var l=this.state;!0===this.overwrite&&(o=i.state,i.unshift(this.value.length));var u=this.appendTail(i);(a=u.rawInserted===i.toString())&&u.inserted||"shift"!==this.overwrite||(this.state=l,o=i.state,i.shift(),a=(u=this.appendTail(i)).rawInserted===i.toString()),a&&u.inserted&&(this.state=l)}a||(t=new ChangeDetails,this.state=s,i&&o&&(i.state=o))}return t}},{key:"_appendPlaceholder",value:function(){return new ChangeDetails}},{key:"_appendEager",value:function(){return new ChangeDetails}},{key:"append",value:function(e,t,n){if(!isString(e))throw new Error("value should be string");var i=new ChangeDetails,s=isString(n)?new ContinuousTailDetails(String(n)):n;t&&t.tail&&(t._beforeTailState=this.state);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this._value=this.value.slice(0,e)+this.value.slice(t),new ChangeDetails}},{key:"withValueRefresh",value:function(e){if(this._refreshing||!this.isInitialized)return e();this._refreshing=!0;var t=this.rawInputValue,n=this.value,i=e();return this.rawInputValue=t,this.value&&this.value!==n&&0===n.indexOf(this.value)&&this.append(n.slice(this.value.length),{},""),delete this._refreshing,i}},{key:"runIsolated",value:function(e){if(this._isolated||!this.isInitialized)return e(this);this._isolated=!0;var t=this.state,n=e(this);return this.state=t,delete this._isolated,n}},{key:"doPrepare",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.prepare?this.prepare(e,this,t):e}},{key:"doValidate",value:function(e){return(!this.validate||this.validate(this.value,this,e))&&(!this.parent||this.parent.doValidate(e))}},{key:"doCommit",value:function(){this.commit&&this.commit(this.value,this)}},{key:"doFormat",value:function(e){return this.format?this.format(e,this):e}},{key:"doParse",value:function(e){return this.parse?this.parse(e,this):e}},{key:"splice",value:function(e,t,n,i){var s,r=e+t,o=this.extractTail(r);this.eager&&(i=forceDirection(i),s=this.extractInput(0,r,{raw:!0}));var a=this.nearestInputPos(e,t>1&&0!==e&&!this.eager?DIRECTION.NONE:i),l=new ChangeDetails({tailShift:a-e}).aggregate(this.remove(a));if(this.eager&&i!==DIRECTION.NONE&&s===this.rawInputValue)if(i===DIRECTION.FORCE_LEFT)for(var u;s===this.rawInputValue&&(u=this.value.length);)l.aggregate(new ChangeDetails({tailShift:-1})).aggregate(this.remove(u-1));else i===DIRECTION.FORCE_RIGHT&&o.unshift();return l.aggregate(this.append(n,{input:!0},o))}},{key:"maskEquals",value:function(e){return this.mask===e}}]),e}();function maskedClass(e){if(null==e)throw new Error("mask property should be defined");return e instanceof RegExp?IMask.MaskedRegExp:isString(e)?IMask.MaskedPattern:e instanceof Date||e===Date?IMask.MaskedDate:e instanceof Number||"number"==typeof e||e===Number?IMask.MaskedNumber:Array.isArray(e)||e===Array?IMask.MaskedDynamic:IMask.Masked&&e.prototype instanceof IMask.Masked?e:e instanceof IMask.Masked?e.constructor:e instanceof Function?IMask.MaskedFunction:(console.warn("Mask not found for mask",e),IMask.Masked)}function createMask(e){if(IMask.Masked&&e instanceof IMask.Masked)return e;var t=(e=Object.assign({},e)).mask;if(IMask.Masked&&t instanceof IMask.Masked)return t;var n=maskedClass(t);if(!n)throw new Error("Masked class is not found for provided mask, appropriate module needs to be import manually before creating mask.");return new n(e)}Masked.DEFAULTS={format:function(e){return e},parse:function(e){return e}},IMask.Masked=Masked,IMask.createMask=createMask;var _excluded$4=["mask"],DEFAULT_INPUT_DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},PatternInputDefinition=function(){function e(t){_classCallCheck(this,e);var n=t.mask,i=_objectWithoutProperties(t,_excluded$4);this.masked=createMask({mask:n}),Object.assign(this,i)}return _createClass(e,[{key:"reset",value:function(){this.isFilled=!1,this.masked.reset()}},{key:"remove",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return 0===e&&t>=1?(this.isFilled=!1,this.masked.remove(e,t)):new ChangeDetails}},{key:"value",get:function(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}},{key:"unmaskedValue",get:function(){return this.masked.unmaskedValue}},{key:"isComplete",get:function(){return Boolean(this.masked.value)||this.isOptional}},{key:"_appendChar",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.isFilled)return new ChangeDetails;var n=this.masked.state,i=this.masked._appendChar(e,t);return i.inserted&&!1===this.doValidate(t)&&(i.inserted=i.rawInserted="",this.masked.state=n),i.inserted||this.isOptional||this.lazy||t.input||(i.inserted=this.placeholderChar),i.skip=!i.inserted&&!this.isOptional,this.isFilled=Boolean(i.inserted),i}},{key:"append",value:function(){var e;return(e=this.masked).append.apply(e,arguments)}},{key:"_appendPlaceholder",value:function(){var e=new ChangeDetails;return this.isFilled||this.isOptional?e:(this.isFilled=!0,e.inserted=this.placeholderChar,e)}},{key:"_appendEager",value:function(){return new ChangeDetails}},{key:"extractTail",value:function(){var e;return(e=this.masked).extractTail.apply(e,arguments)}},{key:"appendTail",value:function(){var e;return(e=this.masked).appendTail.apply(e,arguments)}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2?arguments[2]:void 0;return this.masked.extractInput(e,t,n)}},{key:"nearestInputPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.NONE,n=this.value.length,i=Math.min(Math.max(e,0),n);switch(t){case DIRECTION.LEFT:case DIRECTION.FORCE_LEFT:return this.isComplete?i:0;case DIRECTION.RIGHT:case DIRECTION.FORCE_RIGHT:return this.isComplete?i:n;case DIRECTION.NONE:default:return i}}},{key:"doValidate",value:function(){var e,t;return(e=this.masked).doValidate.apply(e,arguments)&&(!this.parent||(t=this.parent).doValidate.apply(t,arguments))}},{key:"doCommit",value:function(){this.masked.doCommit()}},{key:"state",get:function(){return{masked:this.masked.state,isFilled:this.isFilled}},set:function(e){this.masked.state=e.masked,this.isFilled=e.isFilled}}]),e}(),PatternFixedDefinition=function(){function e(t){_classCallCheck(this,e),Object.assign(this,t),this._value="",this.isFixed=!0}return _createClass(e,[{key:"value",get:function(){return this._value}},{key:"unmaskedValue",get:function(){return this.isUnmasking?this.value:""}},{key:"reset",value:function(){this._isRawInput=!1,this._value=""}},{key:"remove",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._value.length;return this._value=this._value.slice(0,e)+this._value.slice(t),this._value||(this._isRawInput=!1),new ChangeDetails}},{key:"nearestInputPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.NONE,n=this._value.length;switch(t){case DIRECTION.LEFT:case DIRECTION.FORCE_LEFT:return 0;case DIRECTION.NONE:case DIRECTION.RIGHT:case DIRECTION.FORCE_RIGHT:default:return n}}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._value.length;return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).raw&&this._isRawInput&&this._value.slice(e,t)||""}},{key:"isComplete",get:function(){return!0}},{key:"isFilled",get:function(){return Boolean(this._value)}},{key:"_appendChar",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new ChangeDetails;if(this._value)return n;var i=this.char===e&&(this.isUnmasking||t.input||t.raw)&&!this.eager&&!t.tail;return i&&(n.rawInserted=this.char),this._value=n.inserted=this.char,this._isRawInput=i&&(t.raw||t.input),n}},{key:"_appendEager",value:function(){return this._appendChar(this.char)}},{key:"_appendPlaceholder",value:function(){var e=new ChangeDetails;return this._value?e:(this._value=e.inserted=this.char,e)}},{key:"extractTail",value:function(){return arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,new ContinuousTailDetails("")}},{key:"appendTail",value:function(e){return isString(e)&&(e=new ContinuousTailDetails(String(e))),e.appendTo(this)}},{key:"append",value:function(e,t,n){var i=this._appendChar(e[0],t);return null!=n&&(i.tailShift+=this.appendTail(n).tailShift),i}},{key:"doCommit",value:function(){}},{key:"state",get:function(){return{_value:this._value,_isRawInput:this._isRawInput}},set:function(e){Object.assign(this,e)}}]),e}(),_excluded$3=["chunks"],ChunksTailDetails=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;_classCallCheck(this,e),this.chunks=t,this.from=n}return _createClass(e,[{key:"toString",value:function(){return this.chunks.map(String).join("")}},{key:"extend",value:function(t){if(String(t)){isString(t)&&(t=new ContinuousTailDetails(String(t)));var n=this.chunks[this.chunks.length-1],i=n&&(n.stop===t.stop||null==t.stop)&&t.from===n.from+n.toString().length;if(t instanceof ContinuousTailDetails)i?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof e){if(null==t.stop)for(var s;t.chunks.length&&null==t.chunks[0].stop;)(s=t.chunks.shift()).from+=t.from,this.extend(s);t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}}},{key:"appendTo",value:function(t){if(!(t instanceof IMask.MaskedPattern))return new ContinuousTailDetails(this.toString()).appendTo(t);for(var n=new ChangeDetails,i=0;i=0)&&n.aggregate(t._appendPlaceholder(o)),a=s instanceof e&&t._blocks[o]),a){var l=a.appendTail(s);l.skip=!1,n.aggregate(l),t._value+=l.inserted;var u=s.toString().slice(l.rawInserted.length);u&&n.aggregate(t.append(u,{tail:!0}))}else n.aggregate(t.append(s.toString(),{tail:!0}))}return n}},{key:"state",get:function(){return{chunks:this.chunks.map(function(e){return e.state}),from:this.from,stop:this.stop,blockIndex:this.blockIndex}},set:function(t){var n=t.chunks,i=_objectWithoutProperties(t,_excluded$3);Object.assign(this,i),this.chunks=n.map(function(t){var n="chunks"in t?new e:new ContinuousTailDetails;return n.state=t,n})}},{key:"unshift",value:function(e){if(!this.chunks.length||null!=e&&this.from>=e)return"";for(var t=null!=e?e-this.from:e,n=0;n=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.value.length))}},{key:"_pushLeft",value:function(e){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=(null===(t=this.block)||void 0===t?void 0:t.value.length)||0){var t;if(e())return this.ok=!0}return this.ok=!1}},{key:"_pushRight",value:function(e){for(this.pushState(),this.bindBlock();this.index=0}),_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e)}}]),n}();IMask.MaskedRegExp=MaskedRegExp;var _excluded$2=["_blocks"],MaskedPattern=function(e){_inherits(n,Masked);var t=_createSuper(n);function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,n),e.definitions=Object.assign({},DEFAULT_INPUT_DEFINITIONS,e.definitions),t.call(this,Object.assign({},n.DEFAULTS,e))}return _createClass(n,[{key:"_update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.definitions=Object.assign({},this.definitions,e.definitions),_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e),this._rebuildMask()}},{key:"_rebuildMask",value:function(){var e=this,t=this.definitions;this._blocks=[],this._stops=[],this._maskedBlocks={};var i=this.mask;if(i&&t)for(var s=!1,r=!1,o=0;o1&&void 0!==arguments[1]?arguments[1]:{},n=this._mapPosToBlock(this.value.length),i=new ChangeDetails;if(!n)return i;for(var s=n.index;;++s){var r,o=this._blocks[s];if(!o)break;var a=o._appendChar(e,Object.assign({},t,{_beforeTailState:null===(r=t._beforeTailState)||void 0===r?void 0:r._blocks[s]})),l=a.skip;if(i.aggregate(a),l||a.rawInserted)break}return i}},{key:"extractTail",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=new ChunksTailDetails;return t===n?i:(this._forEachBlocksInRange(t,n,function(t,n,s,r){var o=t.extractTail(s,r);o.stop=e._findStopBefore(n),o.from=e._blockStartPos(n),o instanceof ChunksTailDetails&&(o.blockIndex=n),i.extend(o)}),i)}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e===t)return"";var i="";return this._forEachBlocksInRange(e,t,function(e,t,s,r){i+=e.extractInput(s,r,n)}),i}},{key:"_findStopBefore",value:function(e){for(var t,n=0;n1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2?arguments[2]:void 0,i=this._mapPosToBlock(e);if(i){var s=this._mapPosToBlock(t),r=s&&i.index===s.index,o=i.offset,a=s&&r?s.offset:this._blocks[i.index].value.length;if(n(this._blocks[i.index],i.index,o,a),s&&!r){for(var l=i.index+1;l0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=_get(_getPrototypeOf(n.prototype),"remove",this).call(this,e,t);return this._forEachBlocksInRange(e,t,function(e,t,n,s){i.aggregate(e.remove(n,s))}),i}},{key:"nearestInputPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.NONE;if(!this._blocks.length)return 0;var n=new PatternCursor(this,e);if(t===DIRECTION.NONE)return n.pushRightBeforeInput()?n.pos:(n.popState(),n.pushLeftBeforeInput()?n.pos:this.value.length);if(t===DIRECTION.LEFT||t===DIRECTION.FORCE_LEFT){if(t===DIRECTION.LEFT){if(n.pushRightBeforeFilled(),n.ok&&n.pos===e)return e;n.popState()}if(n.pushLeftBeforeInput(),n.pushLeftBeforeRequired(),n.pushLeftBeforeFilled(),t===DIRECTION.LEFT){if(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.ok&&n.pos<=e)return n.pos;if(n.popState(),n.ok&&n.pos<=e)return n.pos;n.popState()}return n.ok?n.pos:t===DIRECTION.FORCE_LEFT?0:(n.popState(),n.ok?n.pos:(n.popState(),n.ok?n.pos:0))}return t===DIRECTION.RIGHT||t===DIRECTION.FORCE_RIGHT?(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.pushRightBeforeFilled()?n.pos:t===DIRECTION.FORCE_RIGHT?this.value.length:(n.popState(),n.ok?n.pos:(n.popState(),n.ok?n.pos:this.nearestInputPos(e,DIRECTION.LEFT)))):e}},{key:"maskedBlock",value:function(e){return this.maskedBlocks(e)[0]}},{key:"maskedBlocks",value:function(e){var t=this,n=this._maskedBlocks[e];return n?n.map(function(e){return t._blocks[e]}):[]}}]),n}();MaskedPattern.DEFAULTS={lazy:!0,placeholderChar:"_"},MaskedPattern.STOP_CHAR="`",MaskedPattern.ESCAPE_CHAR="\\",MaskedPattern.InputDefinition=PatternInputDefinition,MaskedPattern.FixedDefinition=PatternFixedDefinition,IMask.MaskedPattern=MaskedPattern;var MaskedRange=function(e){_inherits(n,MaskedPattern);var t=_createSuper(n);function n(){return _classCallCheck(this,n),t.apply(this,arguments)}return _createClass(n,[{key:"_matchFrom",get:function(){return this.maxLength-String(this.from).length}},{key:"_update",value:function(e){e=Object.assign({to:this.to||0,from:this.from||0,maxLength:this.maxLength||0},e);var t=String(e.to).length;null!=e.maxLength&&(t=Math.max(t,e.maxLength)),e.maxLength=t;for(var i=String(e.from).padStart(t,"0"),s=String(e.to).padStart(t,"0"),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},s=_slicedToArray(normalizePrepare(_get(_getPrototypeOf(n.prototype),"doPrepare",this).call(this,e.replace(/\D/g,""),i)),2);if(e=s[0],t=s[1],!this.autofix||!e)return e;var r=String(this.from).padStart(this.maxLength,"0"),o=String(this.to).padStart(this.maxLength,"0"),a=this.value+e;if(a.length>this.maxLength)return"";var l=_slicedToArray(this.boundaries(a),2),u=l[0],c=l[1];return Number(c)this.to?"pad"===this.autofix&&a.length=0}},{key:"date",get:function(){return this.typedValue},set:function(e){this.typedValue=e}},{key:"typedValue",get:function(){return this.isComplete?_get(_getPrototypeOf(n.prototype),"typedValue",this):null},set:function(e){_set(_getPrototypeOf(n.prototype),"typedValue",e,this,!0)}},{key:"maskEquals",value:function(e){return e===Date||_get(_getPrototypeOf(n.prototype),"maskEquals",this).call(this,e)}}]),n}();MaskedDate.DEFAULTS={pattern:"d{.}`m{.}`Y",format:function(e){return e?[String(e.getDate()).padStart(2,"0"),String(e.getMonth()+1).padStart(2,"0"),e.getFullYear()].join("."):""},parse:function(e){var t=_slicedToArray(e.split("."),3),n=t[0],i=t[1],s=t[2];return new Date(s,i-1,n)}},MaskedDate.GET_DEFAULT_BLOCKS=function(){return{d:{mask:MaskedRange,from:1,to:31,maxLength:2},m:{mask:MaskedRange,from:1,to:12,maxLength:2},Y:{mask:MaskedRange,from:1900,to:9999}}},IMask.MaskedDate=MaskedDate;var MaskElement=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:"selectionStart",get:function(){var e;try{e=this._unsafeSelectionStart}catch(e){}return null!=e?e:this.value.length}},{key:"selectionEnd",get:function(){var e;try{e=this._unsafeSelectionEnd}catch(e){}return null!=e?e:this.value.length}},{key:"select",value:function(e,t){if(null!=e&&null!=t&&(e!==this.selectionStart||t!==this.selectionEnd))try{this._unsafeSelect(e,t)}catch(e){}}},{key:"_unsafeSelect",value:function(e,t){}},{key:"isActive",get:function(){return!1}},{key:"bindEvents",value:function(e){}},{key:"unbindEvents",value:function(){}}]),e}();IMask.MaskElement=MaskElement;var HTMLMaskElement=function(e){_inherits(n,MaskElement);var t=_createSuper(n);function n(e){var i;return _classCallCheck(this,n),(i=t.call(this)).input=e,i._handlers={},i}return _createClass(n,[{key:"rootElement",get:function(){var e,t,n;return null!==(e=null===(t=(n=this.input).getRootNode)||void 0===t?void 0:t.call(n))&&void 0!==e?e:document}},{key:"isActive",get:function(){return this.input===this.rootElement.activeElement}},{key:"_unsafeSelectionStart",get:function(){return this.input.selectionStart}},{key:"_unsafeSelectionEnd",get:function(){return this.input.selectionEnd}},{key:"_unsafeSelect",value:function(e,t){this.input.setSelectionRange(e,t)}},{key:"value",get:function(){return this.input.value},set:function(e){this.input.value=e}},{key:"bindEvents",value:function(e){var t=this;Object.keys(e).forEach(function(i){return t._toggleEventHandler(n.EVENTS_MAP[i],e[i])})}},{key:"unbindEvents",value:function(){var e=this;Object.keys(this._handlers).forEach(function(t){return e._toggleEventHandler(t)})}},{key:"_toggleEventHandler",value:function(e,t){this._handlers[e]&&(this.input.removeEventListener(e,this._handlers[e]),delete this._handlers[e]),t&&(this.input.addEventListener(e,t),this._handlers[e]=t)}}]),n}();HTMLMaskElement.EVENTS_MAP={selectionChange:"keydown",input:"input",drop:"drop",click:"click",focus:"focus",commit:"blur"},IMask.HTMLMaskElement=HTMLMaskElement;var HTMLContenteditableMaskElement=function(e){_inherits(n,HTMLMaskElement);var t=_createSuper(n);function n(){return _classCallCheck(this,n),t.apply(this,arguments)}return _createClass(n,[{key:"_unsafeSelectionStart",get:function(){var e=this.rootElement,t=e.getSelection&&e.getSelection(),n=t&&t.anchorOffset,i=t&&t.focusOffset;return null==i||null==n||ni?n:i}},{key:"_unsafeSelect",value:function(e,t){if(this.rootElement.createRange){var n=this.rootElement.createRange();n.setStart(this.input.firstChild||this.input,e),n.setEnd(this.input.lastChild||this.input,t);var i=this.rootElement,s=i.getSelection&&i.getSelection();s&&(s.removeAllRanges(),s.addRange(n))}}},{key:"value",get:function(){return this.input.textContent},set:function(e){this.input.textContent=e}}]),n}();IMask.HTMLContenteditableMaskElement=HTMLContenteditableMaskElement;var _excluded$1=["mask"],InputMask=function(){function e(t,n){_classCallCheck(this,e),this.el=t instanceof MaskElement?t:t.isContentEditable&&"INPUT"!==t.tagName&&"TEXTAREA"!==t.tagName?new HTMLContenteditableMaskElement(t):new HTMLMaskElement(t),this.masked=createMask(n),this._listeners={},this._value="",this._unmaskedValue="",this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}return _createClass(e,[{key:"mask",get:function(){return this.masked.mask},set:function(e){if(!this.maskEquals(e))if(e instanceof IMask.Masked||this.masked.constructor!==maskedClass(e)){var t=createMask({mask:e});t.unmaskedValue=this.masked.unmaskedValue,this.masked=t}else this.masked.updateOptions({mask:e})}},{key:"maskEquals",value:function(e){var t;return null==e||(null===(t=this.masked)||void 0===t?void 0:t.maskEquals(e))}},{key:"value",get:function(){return this._value},set:function(e){this.masked.value=e,this.updateControl(),this.alignCursor()}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(e){this.masked.unmaskedValue=e,this.updateControl(),this.alignCursor()}},{key:"typedValue",get:function(){return this.masked.typedValue},set:function(e){this.masked.typedValue=e,this.updateControl(),this.alignCursor()}},{key:"_bindEvents",value:function(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange})}},{key:"_unbindEvents",value:function(){this.el&&this.el.unbindEvents()}},{key:"_fireEvent",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i=0&&this._listeners[e].splice(n,1),this}},{key:"_onInput",value:function(e){if(this._inputEvent=e,this._abortUpdateCursor(),!this._selection)return this.updateValue();var t=new ActionDetails(this.el.value,this.cursorPos,this.value,this._selection),n=this.masked.rawInputValue,i=this.masked.splice(t.startChangePos,t.removed.length,t.inserted,t.removeDirection).offset,s=n===this.masked.rawInputValue?t.removeDirection:DIRECTION.NONE,r=this.masked.nearestInputPos(t.startChangePos+i,s);s!==DIRECTION.NONE&&(r=this.masked.nearestInputPos(r,DIRECTION.NONE)),this.updateControl(),this.updateCursor(r),delete this._inputEvent}},{key:"_onChange",value:function(){this.value!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}},{key:"_onDrop",value:function(e){e.preventDefault(),e.stopPropagation()}},{key:"_onFocus",value:function(e){this.alignCursorFriendly()}},{key:"_onClick",value:function(e){this.alignCursorFriendly()}},{key:"destroy",value:function(){this._unbindEvents(),this._listeners.length=0,delete this.el}}]),e}();IMask.InputMask=InputMask;var MaskedEnum=function(e){_inherits(n,MaskedPattern);var t=_createSuper(n);function n(){return _classCallCheck(this,n),t.apply(this,arguments)}return _createClass(n,[{key:"_update",value:function(e){e.enum&&(e.mask="*".repeat(e.enum[0].length)),_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e)}},{key:"doValidate",value:function(){for(var e,t=this,i=arguments.length,s=new Array(i),r=0;r=0})&&(e=_get(_getPrototypeOf(n.prototype),"doValidate",this)).call.apply(e,[this].concat(s))}}]),n}();IMask.MaskedEnum=MaskedEnum;var MaskedNumber=function(e){_inherits(n,Masked);var t=_createSuper(n);function n(e){return _classCallCheck(this,n),t.call(this,Object.assign({},n.DEFAULTS,e))}return _createClass(n,[{key:"_update",value:function(e){_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e),this._updateRegExps()}},{key:"_updateRegExps",value:function(){var e="^"+(this.allowNegative?"[+|\\-]?":""),t=(this.scale?"("+escapeRegExp(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExpInput=new RegExp(e+"(0|([1-9]+\\d*))?"+t),this._numberRegExp=new RegExp(e+"\\d*"+t),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(escapeRegExp).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(escapeRegExp(this.thousandsSeparator),"g")}},{key:"_removeThousandsSeparators",value:function(e){return e.replace(this._thousandsSeparatorRegExp,"")}},{key:"_insertThousandsSeparators",value:function(e){var t=e.split(this.radix);return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),t.join(this.radix)}},{key:"doPrepare",value:function(e){var t;e=e.replace(this._mapToRadixRegExp,this.radix);for(var i=this._removeThousandsSeparators(e),s=arguments.length,r=new Array(s>1?s-1:0),o=1;o1&&void 0!==arguments[1]&&arguments[1],n=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:this._value;return this._separatorsCount(this._removeThousandsSeparators(e).length,!0)}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=arguments.length>2?arguments[2]:void 0,s=_slicedToArray(this._adjustRangeWithSeparators(e,t),2);return e=s[0],t=s[1],this._removeThousandsSeparators(_get(_getPrototypeOf(n.prototype),"extractInput",this).call(this,e,t,i))}},{key:"_appendCharRaw",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.thousandsSeparator)return _get(_getPrototypeOf(n.prototype),"_appendCharRaw",this).call(this,e,t);var i=t.tail&&t._beforeTailState?t._beforeTailState._value:this._value,s=this._separatorsCountFromSlice(i);this._value=this._removeThousandsSeparators(this.value);var r=_get(_getPrototypeOf(n.prototype),"_appendCharRaw",this).call(this,e,t);this._value=this._insertThousandsSeparators(this._value);var o=t.tail&&t._beforeTailState?t._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(o);return r.tailShift+=(a-s)*this.thousandsSeparator.length,r.skip=!r.rawInserted&&e===this.thousandsSeparator,r}},{key:"_findSeparatorAround",value:function(e){if(this.thousandsSeparator){var t=e-this.thousandsSeparator.length+1,n=this.value.indexOf(this.thousandsSeparator,t);if(n<=e)return n}return-1}},{key:"_adjustRangeWithSeparators",value:function(e,t){var n=this._findSeparatorAround(e);n>=0&&(e=n);var i=this._findSeparatorAround(t);return i>=0&&(t=i+this.thousandsSeparator.length),[e,t]}},{key:"remove",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=_slicedToArray(this._adjustRangeWithSeparators(e,t),2);e=n[0],t=n[1];var i=this.value.slice(0,e),s=this.value.slice(t),r=this._separatorsCount(i.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(i+s));var o=this._separatorsCountFromSlice(i);return new ChangeDetails({tailShift:(o-r)*this.thousandsSeparator.length})}},{key:"nearestInputPos",value:function(e,t){if(!this.thousandsSeparator)return e;switch(t){case DIRECTION.NONE:case DIRECTION.LEFT:case DIRECTION.FORCE_LEFT:var n=this._findSeparatorAround(e-1);if(n>=0){var i=n+this.thousandsSeparator.length;if(e=0)return s+this.thousandsSeparator.length}return e}},{key:"doValidate",value:function(e){var t=(e.input?this._numberRegExpInput:this._numberRegExp).test(this._removeThousandsSeparators(this.value));if(t){var i=this.number;t=t&&!isNaN(i)&&(null==this.min||this.min>=0||this.min<=this.number)&&(null==this.max||this.max<=0||this.number<=this.max)}return t&&_get(_getPrototypeOf(n.prototype),"doValidate",this).call(this,e)}},{key:"doCommit",value:function(){if(this.value){var e=this.number,t=e;null!=this.min&&(t=Math.max(t,this.min)),null!=this.max&&(t=Math.min(t,this.max)),t!==e&&(this.unmaskedValue=String(t));var i=this.value;this.normalizeZeros&&(i=this._normalizeZeros(i)),this.padFractionalZeros&&this.scale>0&&(i=this._padFractionalZeros(i)),this._value=i}_get(_getPrototypeOf(n.prototype),"doCommit",this).call(this)}},{key:"_normalizeZeros",value:function(e){var t=this._removeThousandsSeparators(e).split(this.radix);return t[0]=t[0].replace(/^(\D*)(0*)(\d*)/,function(e,t,n,i){return t+i}),e.length&&!/\d$/.test(t[0])&&(t[0]=t[0]+"0"),t.length>1&&(t[1]=t[1].replace(/0*$/,""),t[1].length||(t.length=1)),this._insertThousandsSeparators(t.join(this.radix))}},{key:"_padFractionalZeros",value:function(e){if(!e)return e;var t=e.split(this.radix);return t.length<2&&t.push(""),t[1]=t[1].padEnd(this.scale,"0"),t.join(this.radix)}},{key:"unmaskedValue",get:function(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,".")},set:function(e){_set(_getPrototypeOf(n.prototype),"unmaskedValue",e.replace(".",this.radix),this,!0)}},{key:"typedValue",get:function(){return Number(this.unmaskedValue)},set:function(e){_set(_getPrototypeOf(n.prototype),"unmaskedValue",String(e),this,!0)}},{key:"number",get:function(){return this.typedValue},set:function(e){this.typedValue=e}},{key:"allowNegative",get:function(){return this.signed||null!=this.min&&this.min<0||null!=this.max&&this.max<0}}]),n}();MaskedNumber.DEFAULTS={radix:",",thousandsSeparator:"",mapToRadix:["."],scale:2,signed:!1,normalizeZeros:!0,padFractionalZeros:!1},IMask.MaskedNumber=MaskedNumber;var MaskedFunction=function(e){_inherits(n,Masked);var t=_createSuper(n);function n(){return _classCallCheck(this,n),t.apply(this,arguments)}return _createClass(n,[{key:"_update",value:function(e){e.mask&&(e.validate=e.mask),_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e)}}]),n}();IMask.MaskedFunction=MaskedFunction;var _excluded=["compiledMasks","currentMaskRef","currentMask"],MaskedDynamic=function(e){_inherits(n,Masked);var t=_createSuper(n);function n(e){var i;return _classCallCheck(this,n),(i=t.call(this,Object.assign({},n.DEFAULTS,e))).currentMask=null,i}return _createClass(n,[{key:"_update",value:function(e){_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e),"mask"in e&&(this.compiledMasks=Array.isArray(e.mask)?e.mask.map(function(e){return createMask(e)}):[])}},{key:"_appendCharRaw",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this._applyDispatch(e,t);return this.currentMask&&n.aggregate(this.currentMask._appendChar(e,t)),n}},{key:"_applyDispatch",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.tail&&null!=t._beforeTailState?t._beforeTailState._value:this.value,i=this.rawInputValue,s=t.tail&&null!=t._beforeTailState?t._beforeTailState._rawInputValue:i,r=i.slice(s.length),o=this.currentMask,a=new ChangeDetails,l=o&&o.state;if(this.currentMask=this.doDispatch(e,Object.assign({},t)),this.currentMask)if(this.currentMask!==o){if(this.currentMask.reset(),s){var u=this.currentMask.append(s,{raw:!0});a.tailShift=u.inserted.length-n.length}r&&(a.tailShift+=this.currentMask.append(r,{raw:!0,tail:!0}).tailShift)}else this.currentMask.state=l;return a}},{key:"_appendPlaceholder",value:function(){var e=this._applyDispatch.apply(this,arguments);return this.currentMask&&e.aggregate(this.currentMask._appendPlaceholder()),e}},{key:"_appendEager",value:function(){var e=this._applyDispatch.apply(this,arguments);return this.currentMask&&e.aggregate(this.currentMask._appendEager()),e}},{key:"doDispatch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.dispatch(e,this,t)}},{key:"doValidate",value:function(){for(var e,t,i=arguments.length,s=new Array(i),r=0;r1&&void 0!==arguments[1]?arguments[1]:PIPE_TYPE.MASKED,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:PIPE_TYPE.MASKED,i=createMask(e);return function(e){return i.runIsolated(function(i){return i[t]=e,i[n]})}}function pipe(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i0&&(i=round(n.width)/o||1),r>0&&(s=round(n.height)/r||1)}return{width:n.width/i,height:n.height/s,top:n.top/s,right:n.right/i,bottom:n.bottom/s,left:n.left/i,x:n.left/i,y:n.top/s}}function getLayoutRect(e){var t=getBoundingClientRect(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function contains(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&isShadowRoot(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function isTableElement(e){return["table","td","th"].indexOf(getNodeName(e))>=0}function getDocumentElement(e){return((isElement$1(e)?e.ownerDocument:e.document)||window.document).documentElement}function getParentNode(e){return"html"===getNodeName(e)?e:e.assignedSlot||e.parentNode||(isShadowRoot(e)?e.host:null)||getDocumentElement(e)}function getTrueOffsetParent(e){return isHTMLElement(e)&&"fixed"!==getComputedStyle$1(e).position?e.offsetParent:null}function getContainingBlock(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&isHTMLElement(e)&&"fixed"===getComputedStyle$1(e).position)return null;var n=getParentNode(e);for(isShadowRoot(n)&&(n=n.host);isHTMLElement(n)&&["html","body"].indexOf(getNodeName(n))<0;){var i=getComputedStyle$1(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}function getOffsetParent(e){for(var t=getWindow(e),n=getTrueOffsetParent(e);n&&isTableElement(n)&&"static"===getComputedStyle$1(n).position;)n=getTrueOffsetParent(n);return n&&("html"===getNodeName(n)||"body"===getNodeName(n)&&"static"===getComputedStyle$1(n).position)?t:n||getContainingBlock(e)||t}function getMainAxisFromPlacement(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function within(e,t,n){return max(e,min(t,n))}function withinMaxClamp(e,t,n){var i=within(e,t,n);return i>n?n:i}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(e){return Object.assign({},getFreshSideObject(),e)}function expandToHashMap(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var toPaddingObject=function(e,t){return mergePaddingObject("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:expandToHashMap(e,basePlacements))};function arrow(e){var t,n=e.state,i=e.name,s=e.options,r=n.elements.arrow,o=n.modifiersData.popperOffsets,a=getBasePlacement(n.placement),l=getMainAxisFromPlacement(a),u=[left,right].indexOf(a)>=0?"height":"width";if(r&&o){var c=toPaddingObject(s.padding,n),h=getLayoutRect(r),d="y"===l?top:left,p="y"===l?bottom:right,f=n.rects.reference[u]+n.rects.reference[l]-o[l]-n.rects.popper[u],_=o[l]-n.rects.reference[l],E=getOffsetParent(r),g=E?"y"===l?E.clientHeight||0:E.clientWidth||0:0,m=f/2-_/2,v=c[d],A=g-h[u]-c[p],T=g/2-h[u]/2+m,C=within(v,T,A),S=l;n.modifiersData[i]=((t={})[S]=C,t.centerOffset=C-T,t)}}function effect$1(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&contains(t.elements.popper,i)&&(t.elements.arrow=i)}var arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(e){return e.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(e){var t=e.x,n=e.y,i=window.devicePixelRatio||1;return{x:round(t*i)/i||0,y:round(n*i)/i||0}}function mapToStyles(e){var t,n=e.popper,i=e.popperRect,s=e.placement,r=e.variation,o=e.offsets,a=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,h=e.isFixed,d=o.x,p=void 0===d?0:d,f=o.y,_=void 0===f?0:f,E="function"==typeof c?c({x:p,y:_}):{x:p,y:_};p=E.x,_=E.y;var g=o.hasOwnProperty("x"),m=o.hasOwnProperty("y"),v=left,A=top,T=window;if(u){var C=getOffsetParent(n),S="clientHeight",y="clientWidth";if(C===getWindow(n)&&"static"!==getComputedStyle$1(C=getDocumentElement(n)).position&&"absolute"===a&&(S="scrollHeight",y="scrollWidth"),C=C,s===top||(s===left||s===right)&&r===end)A=bottom,_-=(h&&C===T&&T.visualViewport?T.visualViewport.height:C[S])-i.height,_*=l?1:-1;if(s===left||(s===top||s===bottom)&&r===end)v=right,p-=(h&&C===T&&T.visualViewport?T.visualViewport.width:C[y])-i.width,p*=l?1:-1}var O,b=Object.assign({position:a},u&&unsetSides),k=!0===c?roundOffsetsByDPR({x:p,y:_}):{x:p,y:_};return p=k.x,_=k.y,l?Object.assign({},b,((O={})[A]=m?"0":"",O[v]=g?"0":"",O.transform=(T.devicePixelRatio||1)<=1?"translate("+p+"px, "+_+"px)":"translate3d("+p+"px, "+_+"px, 0)",O)):Object.assign({},b,((t={})[A]=m?_+"px":"",t[v]=g?p+"px":"",t.transform="",t))}function computeStyles(e){var t=e.state,n=e.options,i=n.gpuAcceleration,s=void 0===i||i,r=n.adaptive,o=void 0===r||r,a=n.roundOffsets,l=void 0===a||a,u={placement:getBasePlacement(t.placement),variation:getVariation(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:s,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,mapToStyles(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,mapToStyles(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}},passive={passive:!0};function effect(e){var t=e.state,n=e.instance,i=e.options,s=i.scroll,r=void 0===s||s,o=i.resize,a=void 0===o||o,l=getWindow(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&u.forEach(function(e){e.addEventListener("scroll",n.update,passive)}),a&&l.addEventListener("resize",n.update,passive),function(){r&&u.forEach(function(e){e.removeEventListener("scroll",n.update,passive)}),a&&l.removeEventListener("resize",n.update,passive)}}var eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:effect,data:{}},hash$1={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,function(e){return hash$1[e]})}var hash={start:"end",end:"start"};function getOppositeVariationPlacement(e){return e.replace(/start|end/g,function(e){return hash[e]})}function getWindowScroll(e){var t=getWindow(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function getWindowScrollBarX(e){return getBoundingClientRect(getDocumentElement(e)).left+getWindowScroll(e).scrollLeft}function getViewportRect(e){var t=getWindow(e),n=getDocumentElement(e),i=t.visualViewport,s=n.clientWidth,r=n.clientHeight,o=0,a=0;return i&&(s=i.width,r=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=i.offsetLeft,a=i.offsetTop)),{width:s,height:r,x:o+getWindowScrollBarX(e),y:a}}function getDocumentRect(e){var t,n=getDocumentElement(e),i=getWindowScroll(e),s=null==(t=e.ownerDocument)?void 0:t.body,r=max(n.scrollWidth,n.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),o=max(n.scrollHeight,n.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-i.scrollLeft+getWindowScrollBarX(e),l=-i.scrollTop;return"rtl"===getComputedStyle$1(s||n).direction&&(a+=max(n.clientWidth,s?s.clientWidth:0)-r),{width:r,height:o,x:a,y:l}}function isScrollParent(e){var t=getComputedStyle$1(e),n=t.overflow,i=t.overflowX,s=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function getScrollParent(e){return["html","body","#document"].indexOf(getNodeName(e))>=0?e.ownerDocument.body:isHTMLElement(e)&&isScrollParent(e)?e:getScrollParent(getParentNode(e))}function listScrollParents(e,t){var n;void 0===t&&(t=[]);var i=getScrollParent(e),s=i===(null==(n=e.ownerDocument)?void 0:n.body),r=getWindow(i),o=s?[r].concat(r.visualViewport||[],isScrollParent(i)?i:[]):i,a=t.concat(o);return s?a:a.concat(listScrollParents(getParentNode(o)))}function rectToClientRect(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function getInnerBoundingClientRect(e){var t=getBoundingClientRect(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function getClientRectFromMixedType(e,t){return t===viewport?rectToClientRect(getViewportRect(e)):isElement$1(t)?getInnerBoundingClientRect(t):rectToClientRect(getDocumentRect(getDocumentElement(e)))}function getClippingParents(e){var t=listScrollParents(getParentNode(e)),n=["absolute","fixed"].indexOf(getComputedStyle$1(e).position)>=0&&isHTMLElement(e)?getOffsetParent(e):e;return isElement$1(n)?t.filter(function(e){return isElement$1(e)&&contains(e,n)&&"body"!==getNodeName(e)}):[]}function getClippingRect(e,t,n){var i="clippingParents"===t?getClippingParents(e):[].concat(t),s=[].concat(i,[n]),r=s[0],o=s.reduce(function(t,n){var i=getClientRectFromMixedType(e,n);return t.top=max(i.top,t.top),t.right=min(i.right,t.right),t.bottom=min(i.bottom,t.bottom),t.left=max(i.left,t.left),t},getClientRectFromMixedType(e,r));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function computeOffsets(e){var t,n=e.reference,i=e.element,s=e.placement,r=s?getBasePlacement(s):null,o=s?getVariation(s):null,a=n.x+n.width/2-i.width/2,l=n.y+n.height/2-i.height/2;switch(r){case top:t={x:a,y:n.y-i.height};break;case bottom:t={x:a,y:n.y+n.height};break;case right:t={x:n.x+n.width,y:l};break;case left:t={x:n.x-i.width,y:l};break;default:t={x:n.x,y:n.y}}var u=r?getMainAxisFromPlacement(r):null;if(null!=u){var c="y"===u?"height":"width";switch(o){case start:t[u]=t[u]-(n[c]/2-i[c]/2);break;case end:t[u]=t[u]+(n[c]/2-i[c]/2)}}return t}function detectOverflow(e,t){void 0===t&&(t={});var n=t,i=n.placement,s=void 0===i?e.placement:i,r=n.boundary,o=void 0===r?clippingParents:r,a=n.rootBoundary,l=void 0===a?viewport:a,u=n.elementContext,c=void 0===u?popper:u,h=n.altBoundary,d=void 0!==h&&h,p=n.padding,f=void 0===p?0:p,_=mergePaddingObject("number"!=typeof f?f:expandToHashMap(f,basePlacements)),E=c===popper?reference:popper,g=e.rects.popper,m=e.elements[d?E:c],v=getClippingRect(isElement$1(m)?m:m.contextElement||getDocumentElement(e.elements.popper),o,l),A=getBoundingClientRect(e.elements.reference),T=computeOffsets({reference:A,element:g,strategy:"absolute",placement:s}),C=rectToClientRect(Object.assign({},g,T)),S=c===popper?C:A,y={top:v.top-S.top+_.top,bottom:S.bottom-v.bottom+_.bottom,left:v.left-S.left+_.left,right:S.right-v.right+_.right},O=e.modifiersData.offset;if(c===popper&&O){var b=O[s];Object.keys(y).forEach(function(e){var t=[right,bottom].indexOf(e)>=0?1:-1,n=[top,bottom].indexOf(e)>=0?"y":"x";y[e]+=b[n]*t})}return y}function computeAutoPlacement(e,t){void 0===t&&(t={});var n=t,i=n.placement,s=n.boundary,r=n.rootBoundary,o=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?placements:l,c=getVariation(i),h=c?a?variationPlacements:variationPlacements.filter(function(e){return getVariation(e)===c}):basePlacements,d=h.filter(function(e){return u.indexOf(e)>=0});0===d.length&&(d=h);var p=d.reduce(function(t,n){return t[n]=detectOverflow(e,{placement:n,boundary:s,rootBoundary:r,padding:o})[getBasePlacement(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function getExpandedFallbackPlacements(e){if(getBasePlacement(e)===auto)return[];var t=getOppositePlacement(e);return[getOppositeVariationPlacement(e),t,getOppositeVariationPlacement(t)]}function flip(e){var t=e.state,n=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var s=n.mainAxis,r=void 0===s||s,o=n.altAxis,a=void 0===o||o,l=n.fallbackPlacements,u=n.padding,c=n.boundary,h=n.rootBoundary,d=n.altBoundary,p=n.flipVariations,f=void 0===p||p,_=n.allowedAutoPlacements,E=t.options.placement,g=getBasePlacement(E),m=l||(g===E||!f?[getOppositePlacement(E)]:getExpandedFallbackPlacements(E)),v=[E].concat(m).reduce(function(e,n){return e.concat(getBasePlacement(n)===auto?computeAutoPlacement(t,{placement:n,boundary:c,rootBoundary:h,padding:u,flipVariations:f,allowedAutoPlacements:_}):n)},[]),A=t.rects.reference,T=t.rects.popper,C=new Map,S=!0,y=v[0],O=0;O=0,I=D?"width":"height",L=detectOverflow(t,{placement:b,boundary:c,rootBoundary:h,altBoundary:d,padding:u}),R=D?N?right:left:N?bottom:top;A[I]>T[I]&&(R=getOppositePlacement(R));var M=getOppositePlacement(R),w=[];if(r&&w.push(L[k]<=0),a&&w.push(L[R]<=0,L[M]<=0),w.every(function(e){return e})){y=b,S=!1;break}C.set(b,w)}if(S)for(var P=function(e){var t=v.find(function(t){var n=C.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return y=t,"break"},$=f?3:1;$>0;$--){if("break"===P($))break}t.placement!==y&&(t.modifiersData[i]._skip=!0,t.placement=y,t.reset=!0)}}var flip$1={name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function isAnySideFullyClipped(e){return[top,right,bottom,left].some(function(t){return e[t]>=0})}function hide(e){var t=e.state,n=e.name,i=t.rects.reference,s=t.rects.popper,r=t.modifiersData.preventOverflow,o=detectOverflow(t,{elementContext:"reference"}),a=detectOverflow(t,{altBoundary:!0}),l=getSideOffsets(o,i),u=getSideOffsets(a,s,r),c=isAnySideFullyClipped(l),h=isAnySideFullyClipped(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:h},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":h})}var hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(e,t,n){var i=getBasePlacement(e),s=[left,top].indexOf(i)>=0?-1:1,r="function"==typeof n?n(Object.assign({},t,{placement:e})):n,o=r[0],a=r[1];return o=o||0,a=(a||0)*s,[left,right].indexOf(i)>=0?{x:a,y:o}:{x:o,y:a}}function offset(e){var t=e.state,n=e.options,i=e.name,s=n.offset,r=void 0===s?[0,0]:s,o=placements.reduce(function(e,n){return e[n]=distanceAndSkiddingToXY(n,t.rects,r),e},{}),a=o[t.placement],l=a.x,u=a.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[i]=o}var offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};function popperOffsets(e){var t=e.state,n=e.name;t.modifiersData[n]=computeOffsets({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(e){return"x"===e?"y":"x"}function preventOverflow(e){var t=e.state,n=e.options,i=e.name,s=n.mainAxis,r=void 0===s||s,o=n.altAxis,a=void 0!==o&&o,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,h=n.padding,d=n.tether,p=void 0===d||d,f=n.tetherOffset,_=void 0===f?0:f,E=detectOverflow(t,{boundary:l,rootBoundary:u,padding:h,altBoundary:c}),g=getBasePlacement(t.placement),m=getVariation(t.placement),v=!m,A=getMainAxisFromPlacement(g),T=getAltAxis(A),C=t.modifiersData.popperOffsets,S=t.rects.reference,y=t.rects.popper,O="function"==typeof _?_(Object.assign({},t.rects,{placement:t.placement})):_,b="number"==typeof O?{mainAxis:O,altAxis:O}:Object.assign({mainAxis:0,altAxis:0},O),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(C){if(r){var D,I="y"===A?top:left,L="y"===A?bottom:right,R="y"===A?"height":"width",M=C[A],w=M+E[I],P=M-E[L],$=p?-y[R]/2:0,F=m===start?S[R]:y[R],V=m===start?-y[R]:-S[R],H=t.elements.arrow,x=p&&H?getLayoutRect(H):{width:0,height:0},B=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:getFreshSideObject(),W=B[I],j=B[L],K=within(0,S[R],x[R]),Y=v?S[R]/2-$-K-W-b.mainAxis:F-K-W-b.mainAxis,U=v?-S[R]/2+$+K+j+b.mainAxis:V+K+j+b.mainAxis,G=t.elements.arrow&&getOffsetParent(t.elements.arrow),z=G?"y"===A?G.clientTop||0:G.clientLeft||0:0,q=null!=(D=null==k?void 0:k[A])?D:0,X=M+U-q,Q=within(p?min(w,M+Y-q-z):w,M,p?max(P,X):P);C[A]=Q,N[A]=Q-M}if(a){var Z,J="x"===A?top:left,ee="x"===A?bottom:right,te=C[T],ne="y"===T?"height":"width",ie=te+E[J],se=te-E[ee],re=-1!==[top,left].indexOf(g),oe=null!=(Z=null==k?void 0:k[T])?Z:0,ae=re?ie:te-S[ne]-y[ne]-oe+b.altAxis,le=re?te+S[ne]+y[ne]-oe-b.altAxis:se,ue=p&&re?withinMaxClamp(ae,te,le):within(p?ae:ie,te,p?le:se);C[T]=ue,N[T]=ue-te}t.modifiersData[i]=N}}var preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function getNodeScroll(e){return e!==getWindow(e)&&isHTMLElement(e)?getHTMLElementScroll(e):getWindowScroll(e)}function isElementScaled(e){var t=e.getBoundingClientRect(),n=round(t.width)/e.offsetWidth||1,i=round(t.height)/e.offsetHeight||1;return 1!==n||1!==i}function getCompositeRect(e,t,n){void 0===n&&(n=!1);var i=isHTMLElement(t),s=isHTMLElement(t)&&isElementScaled(t),r=getDocumentElement(t),o=getBoundingClientRect(e,s),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!n)&&(("body"!==getNodeName(t)||isScrollParent(r))&&(a=getNodeScroll(t)),isHTMLElement(t)?((l=getBoundingClientRect(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):r&&(l.x=getWindowScrollBarX(r))),{x:o.left+a.scrollLeft-l.x,y:o.top+a.scrollTop-l.y,width:o.width,height:o.height}}function order(e){var t=new Map,n=new Set,i=[];return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||function e(s){n.add(s.name),[].concat(s.requires||[],s.requiresIfExists||[]).forEach(function(i){if(!n.has(i)){var s=t.get(i);s&&e(s)}}),i.push(s)}(e)}),i}function orderModifiers(e){var t=order(e);return modifierPhases.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function debounce(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function mergeByName(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var e=arguments.length,t=new Array(e),n=0;nnull==e?`${e}`:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),getUID=e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e},getSelector=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t},getSelectorFromElement=e=>{const t=getSelector(e);return t&&document.querySelector(t)?t:null},getElementFromSelector=e=>{const t=getSelector(e);return t?document.querySelector(t):null},getTransitionDurationFromElement=e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),s=Number.parseFloat(n);return i||s?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0},triggerTransitionEnd=e=>{e.dispatchEvent(new Event(TRANSITION_END))},isElement=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),getElement=e=>isElement(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(e):null,typeCheckConfig=(e,t,n)=>{Object.keys(n).forEach(i=>{const s=n[i],r=t[i],o=r&&isElement(r)?"element":toType(r);if(!new RegExp(s).test(o))throw new TypeError(`${e.toUpperCase()}: Option "${i}" provided type "${o}" but expected type "${s}".`)})},isVisible=e=>!(!isElement(e)||0===e.getClientRects().length)&&"visible"===getComputedStyle(e).getPropertyValue("visibility"),isDisabled=e=>!e||e.nodeType!==Node.ELEMENT_NODE||(!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled"))),findShadowRoot=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?findShadowRoot(e.parentNode):null},noop=()=>{},reflow=e=>{e.offsetHeight},getjQuery=()=>{const{jQuery:e}=window;return e&&!document.body.hasAttribute("data-bs-no-jquery")?e:null},DOMContentLoadedCallbacks=[],onDOMContentLoaded=e=>{"loading"===document.readyState?(DOMContentLoadedCallbacks.length||document.addEventListener("DOMContentLoaded",()=>{DOMContentLoadedCallbacks.forEach(e=>e())}),DOMContentLoadedCallbacks.push(e)):e()},isRTL=()=>"rtl"===document.documentElement.dir,defineJQueryPlugin=e=>{onDOMContentLoaded(()=>{const t=getjQuery();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=(()=>(t.fn[n]=i,e.jQueryInterface))}})},execute=e=>{"function"==typeof e&&e()},executeAfterTransition=(e,t,n=!0)=>{if(!n)return void execute(e);const i=getTransitionDurationFromElement(t)+5;let s=!1;const r=({target:n})=>{n===t&&(s=!0,t.removeEventListener(TRANSITION_END,r),execute(e))};t.addEventListener(TRANSITION_END,r),setTimeout(()=>{s||triggerTransitionEnd(t)},i)},getNextActiveElement=(e,t,n,i)=>{let s=e.indexOf(t);if(-1===s)return e[!n&&i?e.length-1:0];const r=e.length;return s+=n?1:-1,i&&(s=(s+r)%r),e[Math.max(0,Math.min(s,r-1))]},namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},customEventsRegex=/^(mouseenter|mouseleave)/i,nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function getUidEvent(e,t){return t&&`${t}::${uidEvent++}`||e.uidEvent||uidEvent++}function getEvent(e){const t=getUidEvent(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function bootstrapHandler(e,t){return function n(i){return i.delegateTarget=e,n.oneOff&&EventHandler.off(e,i.type,t),t.apply(e,[i])}}function bootstrapDelegationHandler(e,t,n){return function i(s){const r=e.querySelectorAll(t);for(let{target:o}=s;o&&o!==this;o=o.parentNode)for(let a=r.length;a--;)if(r[a]===o)return s.delegateTarget=o,i.oneOff&&EventHandler.off(e,s.type,t,n),n.apply(o,[s]);return null}}function findHandler(e,t,n=null){const i=Object.keys(e);for(let s=0,r=i.length;s(function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)});i?i=e(i):n=e(n)}const[r,o,a]=normalizeParams(t,n,i),l=getEvent(e),u=l[a]||(l[a]={}),c=findHandler(u,o,r?n:null);if(c)return void(c.oneOff=c.oneOff&&s);const h=getUidEvent(o,t.replace(namespaceRegex,"")),d=r?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);d.delegationSelector=r?n:null,d.originalHandler=o,d.oneOff=s,d.uidEvent=h,u[h]=d,e.addEventListener(a,d,r)}function removeHandler(e,t,n,i,s){const r=findHandler(t[n],i,s);r&&(e.removeEventListener(n,r,Boolean(s)),delete t[n][r.uidEvent])}function removeNamespacedHandlers(e,t,n,i){const s=t[n]||{};Object.keys(s).forEach(r=>{if(r.includes(i)){const i=s[r];removeHandler(e,t,n,i.originalHandler,i.delegationSelector)}})}function getTypeEvent(e){return e=e.replace(stripNameRegex,""),customEvents[e]||e}const EventHandler={on(e,t,n,i){addHandler(e,t,n,i,!1)},one(e,t,n,i){addHandler(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[s,r,o]=normalizeParams(t,n,i),a=o!==t,l=getEvent(e),u=t.startsWith(".");if(void 0!==r){if(!l||!l[o])return;return void removeHandler(e,l,o,r,s?n:null)}u&&Object.keys(l).forEach(n=>{removeNamespacedHandlers(e,l,n,t.slice(1))});const c=l[o]||{};Object.keys(c).forEach(n=>{const i=n.replace(stripUidRegex,"");if(!a||t.includes(i)){const t=c[n];removeHandler(e,l,o,t.originalHandler,t.delegationSelector)}})},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=getjQuery(),s=getTypeEvent(t),r=t!==s,o=nativeEvents.has(s);let a,l=!0,u=!0,c=!1,h=null;return r&&i&&(a=i.Event(t,n),i(e).trigger(a),l=!a.isPropagationStopped(),u=!a.isImmediatePropagationStopped(),c=a.isDefaultPrevented()),o?(h=document.createEvent("HTMLEvents")).initEvent(s,l,!0):h=new CustomEvent(t,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(e=>{Object.defineProperty(h,e,{get:()=>n[e]})}),c&&h.preventDefault(),u&&e.dispatchEvent(h),h.defaultPrevented&&void 0!==a&&a.preventDefault(),h}},elementMap=new Map,Data={set(e,t,n){elementMap.has(e)||elementMap.set(e,new Map);const i=elementMap.get(e);i.has(t)||0===i.size?i.set(t,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`)},get:(e,t)=>elementMap.has(e)&&elementMap.get(e).get(t)||null,remove(e,t){if(!elementMap.has(e))return;const n=elementMap.get(e);n.delete(t),0===n.size&&elementMap.delete(e)}},VERSION="5.1.3";class BaseComponent{constructor(e){(e=getElement(e))&&(this._element=e,Data.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Data.remove(this._element,this.constructor.DATA_KEY),EventHandler.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach(e=>{this[e]=null})}_queueCallback(e,t,n=!0){executeAfterTransition(e,t,n)}static getInstance(e){return Data.get(getElement(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return VERSION}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const enableDismissTrigger=(e,t="hide")=>{const n=`click.dismiss${e.EVENT_KEY}`,i=e.NAME;EventHandler.on(document,n,`[data-bs-dismiss="${i}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),isDisabled(this))return;const s=getElementFromSelector(this)||this.closest(`.${i}`);e.getOrCreateInstance(s)[t]()})},NAME$d="alert",DATA_KEY$c="bs.alert",EVENT_KEY$c=".bs.alert",EVENT_CLOSE="close.bs.alert",EVENT_CLOSED="closed.bs.alert",CLASS_NAME_FADE$5="fade",CLASS_NAME_SHOW$8="show";class Alert extends BaseComponent{static get NAME(){return NAME$d}close(){if(EventHandler.trigger(this._element,EVENT_CLOSE).defaultPrevented)return;this._element.classList.remove(CLASS_NAME_SHOW$8);const e=this._element.classList.contains(CLASS_NAME_FADE$5);this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),EventHandler.trigger(this._element,EVENT_CLOSED),this.dispose()}static jQueryInterface(e){return this.each(function(){const t=Alert.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}enableDismissTrigger(Alert,"close"),defineJQueryPlugin(Alert);const NAME$c="button",DATA_KEY$b="bs.button",EVENT_KEY$b=".bs.button",DATA_API_KEY$7=".data-api",CLASS_NAME_ACTIVE$3="active",SELECTOR_DATA_TOGGLE$5='[data-bs-toggle="button"]',EVENT_CLICK_DATA_API$6="click.bs.button.data-api";class Button extends BaseComponent{static get NAME(){return NAME$c}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(CLASS_NAME_ACTIVE$3))}static jQueryInterface(e){return this.each(function(){const t=Button.getOrCreateInstance(this);"toggle"===e&&t[e]()})}}function normalizeData(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function normalizeDataKey(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$5,e=>{e.preventDefault();const t=e.target.closest(SELECTOR_DATA_TOGGLE$5);Button.getOrCreateInstance(t).toggle()}),defineJQueryPlugin(Button);const Manipulator={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${normalizeDataKey(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${normalizeDataKey(t)}`)},getDataAttributes(e){if(!e)return{};const t={};return Object.keys(e.dataset).filter(e=>e.startsWith("bs")).forEach(n=>{let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),t[i]=normalizeData(e.dataset[n])}),t},getDataAttribute:(e,t)=>normalizeData(e.getAttribute(`data-bs-${normalizeDataKey(t)}`)),offset(e){const t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},position:e=>({top:e.offsetTop,left:e.offsetLeft})},NODE_TEXT=3,SelectorEngine={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const n=[];let i=e.parentNode;for(;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)i.matches(t)&&n.push(i),i=i.parentNode;return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(", ");return this.find(t,e).filter(e=>!isDisabled(e)&&isVisible(e))}},NAME$b="carousel",DATA_KEY$a="bs.carousel",EVENT_KEY$a=".bs.carousel",DATA_API_KEY$6=".data-api",ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",TOUCHEVENT_COMPAT_WAIT=500,SWIPE_THRESHOLD=40,Default$a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType$a={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},ORDER_NEXT="next",ORDER_PREV="prev",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",KEY_TO_DIRECTION={ArrowLeft:DIRECTION_RIGHT,ArrowRight:DIRECTION_LEFT},EVENT_SLIDE="slide.bs.carousel",EVENT_SLID="slid.bs.carousel",EVENT_KEYDOWN="keydown.bs.carousel",EVENT_MOUSEENTER="mouseenter.bs.carousel",EVENT_MOUSELEAVE="mouseleave.bs.carousel",EVENT_TOUCHSTART="touchstart.bs.carousel",EVENT_TOUCHMOVE="touchmove.bs.carousel",EVENT_TOUCHEND="touchend.bs.carousel",EVENT_POINTERDOWN="pointerdown.bs.carousel",EVENT_POINTERUP="pointerup.bs.carousel",EVENT_DRAG_START="dragstart.bs.carousel",EVENT_LOAD_DATA_API$2="load.bs.carousel.data-api",EVENT_CLICK_DATA_API$5="click.bs.carousel.data-api",CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$2="active",CLASS_NAME_SLIDE="slide",CLASS_NAME_END="carousel-item-end",CLASS_NAME_START="carousel-item-start",CLASS_NAME_NEXT="carousel-item-next",CLASS_NAME_PREV="carousel-item-prev",CLASS_NAME_POINTER_EVENT="pointer-event",SELECTOR_ACTIVE$1=".active",SELECTOR_ACTIVE_ITEM=".active.carousel-item",SELECTOR_ITEM=".carousel-item",SELECTOR_ITEM_IMG=".carousel-item img",SELECTOR_NEXT_PREV=".carousel-item-next, .carousel-item-prev",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_INDICATOR="[data-bs-target]",SELECTOR_DATA_SLIDE="[data-bs-slide], [data-bs-slide-to]",SELECTOR_DATA_RIDE='[data-bs-ride="carousel"]',POINTER_TYPE_TOUCH="touch",POINTER_TYPE_PEN="pen";class Carousel extends BaseComponent{constructor(e,t){super(e),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return Default$a}static get NAME(){return NAME$b}next(){this._slide(ORDER_NEXT)}nextWhenVisible(){!document.hidden&&isVisible(this._element)&&this.next()}prev(){this._slide(ORDER_PREV)}pause(e){e||(this._isPaused=!0),SelectorEngine.findOne(SELECTOR_NEXT_PREV,this._element)&&(triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(e){this._activeElement=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element);const t=this._getItemIndex(this._activeElement);if(e>this._items.length-1||e<0)return;if(this._isSliding)return void EventHandler.one(this._element,EVENT_SLID,()=>this.to(e));if(t===e)return this.pause(),void this.cycle();const n=e>t?ORDER_NEXT:ORDER_PREV;this._slide(n,this._items[e])}_getConfig(e){return e={...Default$a,...Manipulator.getDataAttributes(this._element),..."object"==typeof e?e:{}},typeCheckConfig(NAME$b,e,DefaultType$a),e}_handleSwipe(){const e=Math.abs(this.touchDeltaX);if(e<=SWIPE_THRESHOLD)return;const t=e/this.touchDeltaX;this.touchDeltaX=0,t&&this._slide(t>0?DIRECTION_RIGHT:DIRECTION_LEFT)}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,EVENT_KEYDOWN,e=>this._keydown(e)),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER,e=>this.pause(e)),EventHandler.on(this._element,EVENT_MOUSELEAVE,e=>this.cycle(e))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const e=e=>this._pointerEvent&&(e.pointerType===POINTER_TYPE_PEN||e.pointerType===POINTER_TYPE_TOUCH),t=t=>{e(t)?this.touchStartX=t.clientX:this._pointerEvent||(this.touchStartX=t.touches[0].clientX)},n=e=>{this.touchDeltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this.touchStartX},i=t=>{e(t)&&(this.touchDeltaX=t.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(e=>this.cycle(e),TOUCHEVENT_COMPAT_WAIT+this._config.interval))};SelectorEngine.find(SELECTOR_ITEM_IMG,this._element).forEach(e=>{EventHandler.on(e,EVENT_DRAG_START,e=>e.preventDefault())}),this._pointerEvent?(EventHandler.on(this._element,EVENT_POINTERDOWN,e=>t(e)),EventHandler.on(this._element,EVENT_POINTERUP,e=>i(e)),this._element.classList.add(CLASS_NAME_POINTER_EVENT)):(EventHandler.on(this._element,EVENT_TOUCHSTART,e=>t(e)),EventHandler.on(this._element,EVENT_TOUCHMOVE,e=>n(e)),EventHandler.on(this._element,EVENT_TOUCHEND,e=>i(e)))}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=KEY_TO_DIRECTION[e.key];t&&(e.preventDefault(),this._slide(t))}_getItemIndex(e){return this._items=e&&e.parentNode?SelectorEngine.find(SELECTOR_ITEM,e.parentNode):[],this._items.indexOf(e)}_getItemByOrder(e,t){const n=e===ORDER_NEXT;return getNextActiveElement(this._items,t,n,this._config.wrap)}_triggerSlideEvent(e,t){const n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget:e,direction:t,from:i,to:n})}_setActiveIndicatorElement(e){if(this._indicatorsElement){const t=SelectorEngine.findOne(SELECTOR_ACTIVE$1,this._indicatorsElement);t.classList.remove(CLASS_NAME_ACTIVE$2),t.removeAttribute("aria-current");const n=SelectorEngine.find(SELECTOR_INDICATOR,this._indicatorsElement);for(let t=0;t{EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:r,direction:h,from:s,to:o})};if(this._element.classList.contains(CLASS_NAME_SLIDE)){r.classList.add(c),reflow(r),i.classList.add(u),r.classList.add(u);const e=()=>{r.classList.remove(u,c),r.classList.add(CLASS_NAME_ACTIVE$2),i.classList.remove(CLASS_NAME_ACTIVE$2,c,u),this._isSliding=!1,setTimeout(d,0)};this._queueCallback(e,i,!0)}else i.classList.remove(CLASS_NAME_ACTIVE$2),r.classList.add(CLASS_NAME_ACTIVE$2),this._isSliding=!1,d();a&&this.cycle()}_directionToOrder(e){return[DIRECTION_RIGHT,DIRECTION_LEFT].includes(e)?isRTL()?e===DIRECTION_LEFT?ORDER_PREV:ORDER_NEXT:e===DIRECTION_LEFT?ORDER_NEXT:ORDER_PREV:e}_orderToDirection(e){return[ORDER_NEXT,ORDER_PREV].includes(e)?isRTL()?e===ORDER_PREV?DIRECTION_LEFT:DIRECTION_RIGHT:e===ORDER_PREV?DIRECTION_RIGHT:DIRECTION_LEFT:e}static carouselInterface(e,t){const n=Carousel.getOrCreateInstance(e,t);let{_config:i}=n;"object"==typeof t&&(i={...i,...t});const s="string"==typeof t?t:i.slide;if("number"==typeof t)n.to(t);else if("string"==typeof s){if(void 0===n[s])throw new TypeError(`No method named "${s}"`);n[s]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}static jQueryInterface(e){return this.each(function(){Carousel.carouselInterface(this,e)})}static dataApiClickHandler(e){const t=getElementFromSelector(this);if(!t||!t.classList.contains(CLASS_NAME_CAROUSEL))return;const n={...Manipulator.getDataAttributes(t),...Manipulator.getDataAttributes(this)},i=this.getAttribute("data-bs-slide-to");i&&(n.interval=!1),Carousel.carouselInterface(t,n),i&&Carousel.getInstance(t).to(i),e.preventDefault()}}EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_SLIDE,Carousel.dataApiClickHandler),EventHandler.on(window,EVENT_LOAD_DATA_API$2,()=>{const e=SelectorEngine.find(SELECTOR_DATA_RIDE);for(let t=0,n=e.length;te===this._element);null!==i&&s.length&&(this._selector=i,this._triggerArray.push(t))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Default$9}static get NAME(){return NAME$a}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e,t=[];if(this._config.parent){const e=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);t=SelectorEngine.find(SELECTOR_ACTIVES,this._config.parent).filter(t=>!e.includes(t))}const n=SelectorEngine.findOne(this._selector);if(t.length){const i=t.find(e=>n!==e);if((e=i?Collapse.getInstance(i):null)&&e._isTransitioning)return}if(EventHandler.trigger(this._element,EVENT_SHOW$5).defaultPrevented)return;t.forEach(t=>{n!==t&&Collapse.getOrCreateInstance(t,{toggle:!1}).hide(),e||Data.set(t,DATA_KEY$9,null)});const i=this._getDimension();this._element.classList.remove(CLASS_NAME_COLLAPSE),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.style[i]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${i[0].toUpperCase()+i.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(CLASS_NAME_COLLAPSING),this._element.classList.add(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW$7),this._element.style[i]="",EventHandler.trigger(this._element,EVENT_SHOWN$5)},this._element,!0),this._element.style[i]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(EventHandler.trigger(this._element,EVENT_HIDE$5).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,reflow(this._element),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.classList.remove(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW$7);const t=this._triggerArray.length;for(let e=0;e{this._isTransitioning=!1,this._element.classList.remove(CLASS_NAME_COLLAPSING),this._element.classList.add(CLASS_NAME_COLLAPSE),EventHandler.trigger(this._element,EVENT_HIDDEN$5)},this._element,!0)}_isShown(e=this._element){return e.classList.contains(CLASS_NAME_SHOW$7)}_getConfig(e){return(e={...Default$9,...Manipulator.getDataAttributes(this._element),...e}).toggle=Boolean(e.toggle),e.parent=getElement(e.parent),typeCheckConfig(NAME$a,e,DefaultType$9),e}_getDimension(){return this._element.classList.contains(CLASS_NAME_HORIZONTAL)?WIDTH:HEIGHT}_initializeChildren(){if(!this._config.parent)return;const e=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);SelectorEngine.find(SELECTOR_DATA_TOGGLE$4,this._config.parent).filter(t=>!e.includes(t)).forEach(e=>{const t=getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))})}_addAriaAndCollapsedClass(e,t){e.length&&e.forEach(e=>{t?e.classList.remove(CLASS_NAME_COLLAPSED):e.classList.add(CLASS_NAME_COLLAPSED),e.setAttribute("aria-expanded",t)})}static jQueryInterface(e){return this.each(function(){const t={};"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1);const n=Collapse.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$4,function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();const t=getSelectorFromElement(this);SelectorEngine.find(t).forEach(e=>{Collapse.getOrCreateInstance(e,{toggle:!1}).toggle()})}),defineJQueryPlugin(Collapse);const NAME$9="dropdown",DATA_KEY$8="bs.dropdown",EVENT_KEY$8=".bs.dropdown",DATA_API_KEY$4=".data-api",ESCAPE_KEY$2="Escape",SPACE_KEY="Space",TAB_KEY$1="Tab",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",RIGHT_MOUSE_BUTTON=2,REGEXP_KEYDOWN=new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`),EVENT_HIDE$4="hide.bs.dropdown",EVENT_HIDDEN$4="hidden.bs.dropdown",EVENT_SHOW$4="show.bs.dropdown",EVENT_SHOWN$4="shown.bs.dropdown",EVENT_CLICK_DATA_API$3="click.bs.dropdown.data-api",EVENT_KEYDOWN_DATA_API="keydown.bs.dropdown.data-api",EVENT_KEYUP_DATA_API="keyup.bs.dropdown.data-api",CLASS_NAME_SHOW$6="show",CLASS_NAME_DROPUP="dropup",CLASS_NAME_DROPEND="dropend",CLASS_NAME_DROPSTART="dropstart",CLASS_NAME_NAVBAR="navbar",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="dropdown"]',SELECTOR_MENU=".dropdown-menu",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",PLACEMENT_TOP=isRTL()?"top-end":"top-start",PLACEMENT_TOPEND=isRTL()?"top-start":"top-end",PLACEMENT_BOTTOM=isRTL()?"bottom-end":"bottom-start",PLACEMENT_BOTTOMEND=isRTL()?"bottom-start":"bottom-end",PLACEMENT_RIGHT=isRTL()?"left-start":"right-start",PLACEMENT_LEFT=isRTL()?"right-start":"left-start",Default$8={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},DefaultType$8={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class Dropdown extends BaseComponent{constructor(e,t){super(e),this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar()}static get Default(){return Default$8}static get DefaultType(){return DefaultType$8}static get NAME(){return NAME$9}toggle(){return this._isShown()?this.hide():this.show()}show(){if(isDisabled(this._element)||this._isShown(this._menu))return;const e={relatedTarget:this._element};if(EventHandler.trigger(this._element,EVENT_SHOW$4,e).defaultPrevented)return;const t=Dropdown.getParentFromElement(this._element);this._inNavbar?Manipulator.setDataAttribute(this._menu,"popper","none"):this._createPopper(t),"ontouchstart"in document.documentElement&&!t.closest(SELECTOR_NAVBAR_NAV)&&[].concat(...document.body.children).forEach(e=>EventHandler.on(e,"mouseover",noop)),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(CLASS_NAME_SHOW$6),this._element.classList.add(CLASS_NAME_SHOW$6),EventHandler.trigger(this._element,EVENT_SHOWN$4,e)}hide(){if(isDisabled(this._element)||!this._isShown(this._menu))return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){EventHandler.trigger(this._element,EVENT_HIDE$4,e).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(e=>EventHandler.off(e,"mouseover",noop)),this._popper&&this._popper.destroy(),this._menu.classList.remove(CLASS_NAME_SHOW$6),this._element.classList.remove(CLASS_NAME_SHOW$6),this._element.setAttribute("aria-expanded","false"),Manipulator.removeDataAttribute(this._menu,"popper"),EventHandler.trigger(this._element,EVENT_HIDDEN$4,e))}_getConfig(e){if(e={...this.constructor.Default,...Manipulator.getDataAttributes(this._element),...e},typeCheckConfig(NAME$9,e,this.constructor.DefaultType),"object"==typeof e.reference&&!isElement(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(`${NAME$9.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(e){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=e:isElement(this._config.reference)?t=getElement(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const n=this._getPopperConfig(),i=n.modifiers.find(e=>"applyStyles"===e.name&&!1===e.enabled);this._popper=createPopper(t,this._menu,n),i&&Manipulator.setDataAttribute(this._menu,"popper","static")}_isShown(e=this._element){return e.classList.contains(CLASS_NAME_SHOW$6)}_getMenuElement(){return SelectorEngine.next(this._element,SELECTOR_MENU)[0]}_getPlacement(){const e=this._element.parentNode;if(e.classList.contains(CLASS_NAME_DROPEND))return PLACEMENT_RIGHT;if(e.classList.contains(CLASS_NAME_DROPSTART))return PLACEMENT_LEFT;const t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains(CLASS_NAME_DROPUP)?t?PLACEMENT_TOPEND:PLACEMENT_TOP:t?PLACEMENT_BOTTOMEND:PLACEMENT_BOTTOM}_detectNavbar(){return null!==this._element.closest(`.${CLASS_NAME_NAVBAR}`)}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_selectMenuItem({key:e,target:t}){const n=SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,this._menu).filter(isVisible);n.length&&getNextActiveElement(n,t,e===ARROW_DOWN_KEY,!n.includes(t)).focus()}static jQueryInterface(e){return this.each(function(){const t=Dropdown.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static clearMenus(e){if(e&&(e.button===RIGHT_MOUSE_BUTTON||"keyup"===e.type&&e.key!==TAB_KEY$1))return;const t=SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);for(let n=0,i=t.length;nt+e),this._setElementAttributes(SELECTOR_FIXED_CONTENT,"paddingRight",t=>t+e),this._setElementAttributes(SELECTOR_STICKY_CONTENT,"marginRight",t=>t-e)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,n){const i=this.getWidth();this._applyManipulationCallback(e,e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+i)return;this._saveInitialAttribute(e,t);const s=window.getComputedStyle(e)[t];e.style[t]=`${n(Number.parseFloat(s))}px`})}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(SELECTOR_FIXED_CONTENT,"paddingRight"),this._resetElementAttributes(SELECTOR_STICKY_CONTENT,"marginRight")}_saveInitialAttribute(e,t){const n=e.style[t];n&&Manipulator.setDataAttribute(e,t,n)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{const n=Manipulator.getDataAttribute(e,t);void 0===n?e.style.removeProperty(t):(Manipulator.removeDataAttribute(e,t),e.style[t]=n)})}_applyManipulationCallback(e,t){isElement(e)?t(e):SelectorEngine.find(e,this._element).forEach(t)}isOverflowing(){return this.getWidth()>0}}const Default$7={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},DefaultType$7={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},NAME$8="backdrop",CLASS_NAME_FADE$4="fade",CLASS_NAME_SHOW$5="show",EVENT_MOUSEDOWN=`mousedown.bs.${NAME$8}`;class Backdrop{constructor(e){this._config=this._getConfig(e),this._isAppended=!1,this._element=null}show(e){this._config.isVisible?(this._append(),this._config.isAnimated&&reflow(this._getElement()),this._getElement().classList.add(CLASS_NAME_SHOW$5),this._emulateAnimation(()=>{execute(e)})):execute(e)}hide(e){this._config.isVisible?(this._getElement().classList.remove(CLASS_NAME_SHOW$5),this._emulateAnimation(()=>{this.dispose(),execute(e)})):execute(e)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add(CLASS_NAME_FADE$4),this._element=e}return this._element}_getConfig(e){return(e={...Default$7,..."object"==typeof e?e:{}}).rootElement=getElement(e.rootElement),typeCheckConfig(NAME$8,e,DefaultType$7),e}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),EventHandler.on(this._getElement(),EVENT_MOUSEDOWN,()=>{execute(this._config.clickCallback)}),this._isAppended=!0)}dispose(){this._isAppended&&(EventHandler.off(this._element,EVENT_MOUSEDOWN),this._element.remove(),this._isAppended=!1)}_emulateAnimation(e){executeAfterTransition(e,this._getElement(),this._config.isAnimated)}}const Default$6={trapElement:null,autofocus:!0},DefaultType$6={trapElement:"element",autofocus:"boolean"},NAME$7="focustrap",DATA_KEY$7="bs.focustrap",EVENT_KEY$7=".bs.focustrap",EVENT_FOCUSIN$1=`focusin${EVENT_KEY$7}`,EVENT_KEYDOWN_TAB=`keydown.tab${EVENT_KEY$7}`,TAB_KEY="Tab",TAB_NAV_FORWARD="forward",TAB_NAV_BACKWARD="backward";class FocusTrap{constructor(e){this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:e,autofocus:t}=this._config;this._isActive||(t&&e.focus(),EventHandler.off(document,EVENT_KEY$7),EventHandler.on(document,EVENT_FOCUSIN$1,e=>this._handleFocusin(e)),EventHandler.on(document,EVENT_KEYDOWN_TAB,e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,EventHandler.off(document,EVENT_KEY$7))}_handleFocusin(e){const{target:t}=e,{trapElement:n}=this._config;if(t===document||t===n||n.contains(t))return;const i=SelectorEngine.focusableChildren(n);0===i.length?n.focus():this._lastTabNavDirection===TAB_NAV_BACKWARD?i[i.length-1].focus():i[0].focus()}_handleKeydown(e){e.key===TAB_KEY&&(this._lastTabNavDirection=e.shiftKey?TAB_NAV_BACKWARD:TAB_NAV_FORWARD)}_getConfig(e){return e={...Default$6,..."object"==typeof e?e:{}},typeCheckConfig(NAME$7,e,DefaultType$6),e}}const NAME$6="modal",DATA_KEY$6="bs.modal",EVENT_KEY$6=".bs.modal",DATA_API_KEY$3=".data-api",ESCAPE_KEY$1="Escape",Default$5={backdrop:!0,keyboard:!0,focus:!0},DefaultType$5={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},EVENT_HIDE$3=`hide${EVENT_KEY$6}`,EVENT_HIDE_PREVENTED=`hidePrevented${EVENT_KEY$6}`,EVENT_HIDDEN$3=`hidden${EVENT_KEY$6}`,EVENT_SHOW$3=`show${EVENT_KEY$6}`,EVENT_SHOWN$3=`shown${EVENT_KEY$6}`,EVENT_RESIZE=`resize${EVENT_KEY$6}`,EVENT_CLICK_DISMISS=`click.dismiss${EVENT_KEY$6}`,EVENT_KEYDOWN_DISMISS$1=`keydown.dismiss${EVENT_KEY$6}`,EVENT_MOUSEUP_DISMISS=`mouseup.dismiss${EVENT_KEY$6}`,EVENT_MOUSEDOWN_DISMISS=`mousedown.dismiss${EVENT_KEY$6}`,EVENT_CLICK_DATA_API$2=`click${EVENT_KEY$6}.data-api`,CLASS_NAME_OPEN="modal-open",CLASS_NAME_FADE$3="fade",CLASS_NAME_SHOW$4="show",CLASS_NAME_STATIC="modal-static",OPEN_SELECTOR$1=".modal.show",SELECTOR_DIALOG=".modal-dialog",SELECTOR_MODAL_BODY=".modal-body",SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="modal"]';class Modal extends BaseComponent{constructor(e,t){super(e),this._config=this._getConfig(t),this._dialog=SelectorEngine.findOne(SELECTOR_DIALOG,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new ScrollBarHelper}static get Default(){return Default$5}static get NAME(){return NAME$6}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown||this._isTransitioning)return;EventHandler.trigger(this._element,EVENT_SHOW$3,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(CLASS_NAME_OPEN),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._dialog,EVENT_MOUSEDOWN_DISMISS,()=>{EventHandler.one(this._element,EVENT_MOUSEUP_DISMISS,e=>{e.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(e)))}hide(){if(!this._isShown||this._isTransitioning)return;if(EventHandler.trigger(this._element,EVENT_HIDE$3).defaultPrevented)return;this._isShown=!1;const e=this._isAnimated();e&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(CLASS_NAME_SHOW$4),EventHandler.off(this._element,EVENT_CLICK_DISMISS),EventHandler.off(this._dialog,EVENT_MOUSEDOWN_DISMISS),this._queueCallback(()=>this._hideModal(),this._element,e)}dispose(){[window,this._dialog].forEach(e=>EventHandler.off(e,EVENT_KEY$6)),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Backdrop({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})}_getConfig(e){return e={...Default$5,...Manipulator.getDataAttributes(this._element),..."object"==typeof e?e:{}},typeCheckConfig(NAME$6,e,DefaultType$5),e}_showElement(e){const t=this._isAnimated(),n=SelectorEngine.findOne(SELECTOR_MODAL_BODY,this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,n&&(n.scrollTop=0),t&&reflow(this._element),this._element.classList.add(CLASS_NAME_SHOW$4);this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,EventHandler.trigger(this._element,EVENT_SHOWN$3,{relatedTarget:e})},this._dialog,t)}_setEscapeEvent(){this._isShown?EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS$1,e=>{this._config.keyboard&&e.key===ESCAPE_KEY$1?(e.preventDefault(),this.hide()):this._config.keyboard||e.key!==ESCAPE_KEY$1||this._triggerBackdropTransition()}):EventHandler.off(this._element,EVENT_KEYDOWN_DISMISS$1)}_setResizeEvent(){this._isShown?EventHandler.on(window,EVENT_RESIZE,()=>this._adjustDialog()):EventHandler.off(window,EVENT_RESIZE)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(CLASS_NAME_OPEN),this._resetAdjustments(),this._scrollBar.reset(),EventHandler.trigger(this._element,EVENT_HIDDEN$3)})}_showBackdrop(e){EventHandler.on(this._element,EVENT_CLICK_DISMISS,e=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:e.target===e.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())}),this._backdrop.show(e)}_isAnimated(){return this._element.classList.contains(CLASS_NAME_FADE$3)}_triggerBackdropTransition(){if(EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED).defaultPrevented)return;const{classList:e,scrollHeight:t,style:n}=this._element,i=t>document.documentElement.clientHeight;!i&&"hidden"===n.overflowY||e.contains(CLASS_NAME_STATIC)||(i||(n.overflowY="hidden"),e.add(CLASS_NAME_STATIC),this._queueCallback(()=>{e.remove(CLASS_NAME_STATIC),i||this._queueCallback(()=>{n.overflowY=""},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),n=t>0;(!n&&e&&!isRTL()||n&&!e&&isRTL())&&(this._element.style.paddingLeft=`${t}px`),(n&&!e&&!isRTL()||!n&&e&&isRTL())&&(this._element.style.paddingRight=`${t}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each(function(){const n=Modal.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_TOGGLE$2,function(e){const t=getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),EventHandler.one(t,EVENT_SHOW$3,e=>{e.defaultPrevented||EventHandler.one(t,EVENT_HIDDEN$3,()=>{isVisible(this)&&this.focus()})});const n=SelectorEngine.findOne(".modal.show");n&&Modal.getInstance(n).hide(),Modal.getOrCreateInstance(t).toggle(this)}),enableDismissTrigger(Modal),defineJQueryPlugin(Modal);const NAME$5="offcanvas",DATA_KEY$5="bs.offcanvas",EVENT_KEY$5=".bs.offcanvas",DATA_API_KEY$2=".data-api",EVENT_LOAD_DATA_API$1="load.bs.offcanvas.data-api",ESCAPE_KEY="Escape",Default$4={backdrop:!0,keyboard:!0,scroll:!1},DefaultType$4={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},CLASS_NAME_SHOW$3="show",CLASS_NAME_BACKDROP="offcanvas-backdrop",OPEN_SELECTOR=".offcanvas.show",EVENT_SHOW$2="show.bs.offcanvas",EVENT_SHOWN$2="shown.bs.offcanvas",EVENT_HIDE$2="hide.bs.offcanvas",EVENT_HIDDEN$2="hidden.bs.offcanvas",EVENT_CLICK_DATA_API$1="click.bs.offcanvas.data-api",EVENT_KEYDOWN_DISMISS="keydown.dismiss.bs.offcanvas",SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="offcanvas"]';class Offcanvas extends BaseComponent{constructor(e,t){super(e),this._config=this._getConfig(t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return NAME$5}static get Default(){return Default$4}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown)return;if(EventHandler.trigger(this._element,EVENT_SHOW$2,{relatedTarget:e}).defaultPrevented)return;this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new ScrollBarHelper).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(CLASS_NAME_SHOW$3);this._queueCallback(()=>{this._config.scroll||this._focustrap.activate(),EventHandler.trigger(this._element,EVENT_SHOWN$2,{relatedTarget:e})},this._element,!0)}hide(){if(!this._isShown)return;if(EventHandler.trigger(this._element,EVENT_HIDE$2).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove(CLASS_NAME_SHOW$3),this._backdrop.hide();this._queueCallback(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new ScrollBarHelper).reset(),EventHandler.trigger(this._element,EVENT_HIDDEN$2)},this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(e){return e={...Default$4,...Manipulator.getDataAttributes(this._element),..."object"==typeof e?e:{}},typeCheckConfig(NAME$5,e,DefaultType$4),e}_initializeBackDrop(){return new Backdrop({className:CLASS_NAME_BACKDROP,isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})}_addEventListeners(){EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,e=>{this._config.keyboard&&e.key===ESCAPE_KEY&&this.hide()})}static jQueryInterface(e){return this.each(function(){const t=Offcanvas.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE$1,function(e){const t=getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this))return;EventHandler.one(t,EVENT_HIDDEN$2,()=>{isVisible(this)&&this.focus()});const n=SelectorEngine.findOne(OPEN_SELECTOR);n&&n!==t&&Offcanvas.getInstance(n).hide(),Offcanvas.getOrCreateInstance(t).toggle(this)}),EventHandler.on(window,EVENT_LOAD_DATA_API$1,()=>SelectorEngine.find(OPEN_SELECTOR).forEach(e=>Offcanvas.getOrCreateInstance(e).show())),enableDismissTrigger(Offcanvas),defineJQueryPlugin(Offcanvas);const uriAttributes=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,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,allowedAttribute=(e,t)=>{const n=e.nodeName.toLowerCase();if(t.includes(n))return!uriAttributes.has(n)||Boolean(SAFE_URL_PATTERN.test(e.nodeValue)||DATA_URL_PATTERN.test(e.nodeValue));const i=t.filter(e=>e instanceof RegExp);for(let e=0,t=i.length;e{allowedAttribute(e,o)||n.removeAttribute(e.nodeName)})}return i.body.innerHTML}const NAME$4="tooltip",DATA_KEY$4="bs.tooltip",EVENT_KEY$4=".bs.tooltip",CLASS_PREFIX$1="bs-tooltip",DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),DefaultType$3={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL()?"left":"right",BOTTOM:"bottom",LEFT:isRTL()?"right":"left"},Default$3={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:DefaultAllowlist,popperConfig:null},Event$2={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},CLASS_NAME_FADE$2="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$2="show",HOVER_STATE_SHOW="show",HOVER_STATE_OUT="out",SELECTOR_TOOLTIP_INNER=".tooltip-inner",SELECTOR_MODAL=".modal",EVENT_MODAL_HIDE="hide.bs.modal",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_MANUAL="manual";class Tooltip extends BaseComponent{constructor(e,t){if(void 0===Popper)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(t),this.tip=null,this._setListeners()}static get Default(){return Default$3}static get NAME(){return NAME$4}static get Event(){return Event$2}static get DefaultType(){return DefaultType$3}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(e){if(this._isEnabled)if(e){const t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!t._activeTrigger.click,t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)}else{if(this.getTipElement().classList.contains(CLASS_NAME_SHOW$2))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),EventHandler.off(this._element.closest(SELECTOR_MODAL),EVENT_MODAL_HIDE,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const e=EventHandler.trigger(this._element,this.constructor.Event.SHOW),t=findShadowRoot(this._element),n=null===t?this._element.ownerDocument.documentElement.contains(this._element):t.contains(this._element);if(e.defaultPrevented||!n)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const i=this.getTipElement(),s=getUID(this.constructor.NAME);i.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&i.classList.add(CLASS_NAME_FADE$2);const r="function"==typeof this._config.placement?this._config.placement.call(this,i,this._element):this._config.placement,o=this._getAttachment(r);this._addAttachmentClass(o);const{container:a}=this._config;Data.set(i,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(i),EventHandler.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=createPopper(this._element,i,this._getPopperConfig(o)),i.classList.add(CLASS_NAME_SHOW$2);const l=this._resolvePossibleFunction(this._config.customClass);l&&i.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(e=>{EventHandler.on(e,"mouseover",noop)});const u=this.tip.classList.contains(CLASS_NAME_FADE$2);this._queueCallback(()=>{const e=this._hoverState;this._hoverState=null,EventHandler.trigger(this._element,this.constructor.Event.SHOWN),e===HOVER_STATE_OUT&&this._leave(null,this)},this.tip,u)}hide(){if(!this._popper)return;const e=this.getTipElement();if(EventHandler.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;e.classList.remove(CLASS_NAME_SHOW$2),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(e=>EventHandler.off(e,"mouseover",noop)),this._activeTrigger[TRIGGER_CLICK]=!1,this._activeTrigger[TRIGGER_FOCUS]=!1,this._activeTrigger[TRIGGER_HOVER]=!1;const t=this.tip.classList.contains(CLASS_NAME_FADE$2);this._queueCallback(()=>{this._isWithActiveTrigger()||(this._hoverState!==HOVER_STATE_SHOW&&e.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),EventHandler.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())},this.tip,t),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const e=document.createElement("div");e.innerHTML=this._config.template;const t=e.children[0];return this.setContent(t),t.classList.remove(CLASS_NAME_FADE$2,CLASS_NAME_SHOW$2),this.tip=t,this.tip}setContent(e){this._sanitizeAndSetContent(e,this.getTitle(),SELECTOR_TOOLTIP_INNER)}_sanitizeAndSetContent(e,t,n){const i=SelectorEngine.findOne(n,e);t||!i?this.setElementContent(i,t):i.remove()}setElementContent(e,t){if(null!==e)return isElement(t)?(t=getElement(t),void(this._config.html?t.parentNode!==e&&(e.innerHTML="",e.append(t)):e.textContent=t.textContent)):void(this._config.html?(this._config.sanitize&&(t=sanitizeHtml(t,this._config.allowList,this._config.sanitizeFn)),e.innerHTML=t):e.textContent=t)}getTitle(){const e=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(e)}updateAttachment(e){return"right"===e?"end":"left"===e?"start":e}_initializeOnDelegatedTarget(e,t){return t||this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return"function"==typeof e?e.call(this._element):e}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:e=>this._handlePopperPlacementChange(e)}],onFirstUpdate:e=>{e.options.placement!==e.placement&&this._handlePopperPlacementChange(e)}};return{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_addAttachmentClass(e){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(e)}`)}_getAttachment(e){return AttachmentMap[e.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach(e=>{if("click"===e)EventHandler.on(this._element,this.constructor.Event.CLICK,this._config.selector,e=>this.toggle(e));else if(e!==TRIGGER_MANUAL){const t=e===TRIGGER_HOVER?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,n=e===TRIGGER_HOVER?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;EventHandler.on(this._element,t,this._config.selector,e=>this._enter(e)),EventHandler.on(this._element,n,this._config.selector,e=>this._leave(e))}}),this._hideModalHandler=(()=>{this._element&&this.hide()}),EventHandler.on(this._element.closest(SELECTOR_MODAL),EVENT_MODAL_HIDE,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const e=this._element.getAttribute("title"),t=typeof this._element.getAttribute("data-bs-original-title");(e||"string"!==t)&&(this._element.setAttribute("data-bs-original-title",e||""),!e||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",e),this._element.setAttribute("title",""))}_enter(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusin"===e.type?TRIGGER_FOCUS:TRIGGER_HOVER]=!0),t.getTipElement().classList.contains(CLASS_NAME_SHOW$2)||t._hoverState===HOVER_STATE_SHOW?t._hoverState=HOVER_STATE_SHOW:(clearTimeout(t._timeout),t._hoverState=HOVER_STATE_SHOW,t._config.delay&&t._config.delay.show?t._timeout=setTimeout(()=>{t._hoverState===HOVER_STATE_SHOW&&t.show()},t._config.delay.show):t.show())}_leave(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusout"===e.type?TRIGGER_FOCUS:TRIGGER_HOVER]=t._element.contains(e.relatedTarget)),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=HOVER_STATE_OUT,t._config.delay&&t._config.delay.hide?t._timeout=setTimeout(()=>{t._hoverState===HOVER_STATE_OUT&&t.hide()},t._config.delay.hide):t.hide())}_isWithActiveTrigger(){for(const e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1}_getConfig(e){const t=Manipulator.getDataAttributes(this._element);return Object.keys(t).forEach(e=>{DISALLOWED_ATTRIBUTES.has(e)&&delete t[e]}),(e={...this.constructor.Default,...t,..."object"==typeof e&&e?e:{}}).container=!1===e.container?document.body:getElement(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),typeCheckConfig(NAME$4,e,this.constructor.DefaultType),e.sanitize&&(e.template=sanitizeHtml(e.template,e.allowList,e.sanitizeFn)),e}_getDelegateConfig(){const e={};for(const t in this._config)this.constructor.Default[t]!==this._config[t]&&(e[t]=this._config[t]);return e}_cleanTipClass(){const e=this.getTipElement(),t=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),n=e.getAttribute("class").match(t);null!==n&&n.length>0&&n.map(e=>e.trim()).forEach(t=>e.classList.remove(t))}_getBasicClassPrefix(){return CLASS_PREFIX$1}_handlePopperPlacementChange(e){const{state:t}=e;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(e){return this.each(function(){const t=Tooltip.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}defineJQueryPlugin(Tooltip);const NAME$3="popover",DATA_KEY$3="bs.popover",EVENT_KEY$3=".bs.popover",CLASS_PREFIX="bs-popover",Default$2={...Tooltip.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},DefaultType$2={...Tooltip.DefaultType,content:"(string|element|function)"},Event$1={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body";class Popover extends Tooltip{static get Default(){return Default$2}static get NAME(){return NAME$3}static get Event(){return Event$1}static get DefaultType(){return DefaultType$2}isWithContent(){return this.getTitle()||this._getContent()}setContent(e){this._sanitizeAndSetContent(e,this.getTitle(),SELECTOR_TITLE),this._sanitizeAndSetContent(e,this._getContent(),SELECTOR_CONTENT)}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return CLASS_PREFIX}static jQueryInterface(e){return this.each(function(){const t=Popover.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}defineJQueryPlugin(Popover);const NAME$2="scrollspy",DATA_KEY$2="bs.scrollspy",EVENT_KEY$2=".bs.scrollspy",DATA_API_KEY$1=".data-api",Default$1={offset:10,method:"auto",target:""},DefaultType$1={offset:"number",method:"string",target:"(string|element)"},EVENT_ACTIVATE=`activate${EVENT_KEY$2}`,EVENT_SCROLL=`scroll${EVENT_KEY$2}`,EVENT_LOAD_DATA_API=`load${EVENT_KEY$2}.data-api`,CLASS_NAME_DROPDOWN_ITEM="dropdown-item",CLASS_NAME_ACTIVE$1="active",SELECTOR_DATA_SPY='[data-bs-spy="scroll"]',SELECTOR_NAV_LIST_GROUP$1=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_LINK_ITEMS=`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`,SELECTOR_DROPDOWN$1=".dropdown",SELECTOR_DROPDOWN_TOGGLE$1=".dropdown-toggle",METHOD_OFFSET="offset",METHOD_POSITION="position";class ScrollSpy extends BaseComponent{constructor(e,t){super(e),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(t),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,EventHandler.on(this._scrollElement,EVENT_SCROLL,()=>this._process()),this.refresh(),this._process()}static get Default(){return Default$1}static get NAME(){return NAME$2}refresh(){const e=this._scrollElement===this._scrollElement.window?METHOD_OFFSET:METHOD_POSITION,t="auto"===this._config.method?e:this._config.method,n=t===METHOD_POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),SelectorEngine.find(SELECTOR_LINK_ITEMS,this._config.target).map(e=>{const i=getSelectorFromElement(e),s=i?SelectorEngine.findOne(i):null;if(s){const e=s.getBoundingClientRect();if(e.width||e.height)return[Manipulator[t](s).top+n,i]}return null}).filter(e=>e).sort((e,t)=>e[0]-t[0]).forEach(e=>{this._offsets.push(e[0]),this._targets.push(e[1])})}dispose(){EventHandler.off(this._scrollElement,EVENT_KEY$2),super.dispose()}_getConfig(e){return(e={...Default$1,...Manipulator.getDataAttributes(this._element),..."object"==typeof e&&e?e:{}}).target=getElement(e.target)||document.documentElement,typeCheckConfig(NAME$2,e,DefaultType$1),e}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){const e=this._targets[this._targets.length-1];this._activeTarget!==e&&this._activate(e)}else{if(this._activeTarget&&e0)return this._activeTarget=null,void this._clear();for(let t=this._offsets.length;t--;){this._activeTarget!==this._targets[t]&&e>=this._offsets[t]&&(void 0===this._offsets[t+1]||e`${t}[data-bs-target="${e}"],${t}[href="${e}"]`),n=SelectorEngine.findOne(t.join(","),this._config.target);n.classList.add(CLASS_NAME_ACTIVE$1),n.classList.contains(CLASS_NAME_DROPDOWN_ITEM)?SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1,n.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1):SelectorEngine.parents(n,SELECTOR_NAV_LIST_GROUP$1).forEach(e=>{SelectorEngine.prev(e,`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(e=>e.classList.add(CLASS_NAME_ACTIVE$1)),SelectorEngine.prev(e,SELECTOR_NAV_ITEMS).forEach(e=>{SelectorEngine.children(e,SELECTOR_NAV_LINKS).forEach(e=>e.classList.add(CLASS_NAME_ACTIVE$1))})}),EventHandler.trigger(this._scrollElement,EVENT_ACTIVATE,{relatedTarget:e})}_clear(){SelectorEngine.find(SELECTOR_LINK_ITEMS,this._config.target).filter(e=>e.classList.contains(CLASS_NAME_ACTIVE$1)).forEach(e=>e.classList.remove(CLASS_NAME_ACTIVE$1))}static jQueryInterface(e){return this.each(function(){const t=ScrollSpy.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}EventHandler.on(window,EVENT_LOAD_DATA_API,()=>{SelectorEngine.find(SELECTOR_DATA_SPY).forEach(e=>new ScrollSpy(e))}),defineJQueryPlugin(ScrollSpy);const NAME$1="tab",DATA_KEY$1="bs.tab",EVENT_KEY$1=".bs.tab",DATA_API_KEY=".data-api",EVENT_HIDE$1="hide.bs.tab",EVENT_HIDDEN$1="hidden.bs.tab",EVENT_SHOW$1="show.bs.tab",EVENT_SHOWN$1="shown.bs.tab",EVENT_CLICK_DATA_API="click.bs.tab.data-api",CLASS_NAME_DROPDOWN_MENU="dropdown-menu",CLASS_NAME_ACTIVE="active",CLASS_NAME_FADE$1="fade",CLASS_NAME_SHOW$1="show",SELECTOR_DROPDOWN=".dropdown",SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_ACTIVE=".active",SELECTOR_ACTIVE_UL=":scope > li > .active",SELECTOR_DATA_TOGGLE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',SELECTOR_DROPDOWN_TOGGLE=".dropdown-toggle",SELECTOR_DROPDOWN_ACTIVE_CHILD=":scope > .dropdown-menu .active";class Tab extends BaseComponent{static get NAME(){return NAME$1}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(CLASS_NAME_ACTIVE))return;let e;const t=getElementFromSelector(this._element),n=this._element.closest(SELECTOR_NAV_LIST_GROUP);if(n){const t="UL"===n.nodeName||"OL"===n.nodeName?SELECTOR_ACTIVE_UL:SELECTOR_ACTIVE;e=(e=SelectorEngine.find(t,n))[e.length-1]}const i=e?EventHandler.trigger(e,EVENT_HIDE$1,{relatedTarget:this._element}):null;if(EventHandler.trigger(this._element,EVENT_SHOW$1,{relatedTarget:e}).defaultPrevented||null!==i&&i.defaultPrevented)return;this._activate(this._element,n);const s=()=>{EventHandler.trigger(e,EVENT_HIDDEN$1,{relatedTarget:this._element}),EventHandler.trigger(this._element,EVENT_SHOWN$1,{relatedTarget:e})};t?this._activate(t,t.parentNode,s):s()}_activate(e,t,n){const i=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?SelectorEngine.children(t,SELECTOR_ACTIVE):SelectorEngine.find(SELECTOR_ACTIVE_UL,t))[0],s=n&&i&&i.classList.contains(CLASS_NAME_FADE$1),r=()=>this._transitionComplete(e,i,n);i&&s?(i.classList.remove(CLASS_NAME_SHOW$1),this._queueCallback(r,e,!0)):r()}_transitionComplete(e,t,n){if(t){t.classList.remove(CLASS_NAME_ACTIVE);const e=SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD,t.parentNode);e&&e.classList.remove(CLASS_NAME_ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}e.classList.add(CLASS_NAME_ACTIVE),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains(CLASS_NAME_FADE$1)&&e.classList.add(CLASS_NAME_SHOW$1);let i=e.parentNode;if(i&&"LI"===i.nodeName&&(i=i.parentNode),i&&i.classList.contains(CLASS_NAME_DROPDOWN_MENU)){const t=e.closest(SELECTOR_DROPDOWN);t&&SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE,t).forEach(e=>e.classList.add(CLASS_NAME_ACTIVE)),e.setAttribute("aria-expanded",!0)}n&&n()}static jQueryInterface(e){return this.each(function(){const t=Tab.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}EventHandler.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,function(e){if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this))return;Tab.getOrCreateInstance(this).show()}),defineJQueryPlugin(Tab);const NAME="toast",DATA_KEY="bs.toast",EVENT_KEY=".bs.toast",EVENT_MOUSEOVER="mouseover.bs.toast",EVENT_MOUSEOUT="mouseout.bs.toast",EVENT_FOCUSIN="focusin.bs.toast",EVENT_FOCUSOUT="focusout.bs.toast",EVENT_HIDE="hide.bs.toast",EVENT_HIDDEN="hidden.bs.toast",EVENT_SHOW="show.bs.toast",EVENT_SHOWN="shown.bs.toast",CLASS_NAME_FADE="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW="show",CLASS_NAME_SHOWING="showing",DefaultType={animation:"boolean",autohide:"boolean",delay:"number"},Default={animation:!0,autohide:!0,delay:5e3};class Toast extends BaseComponent{constructor(e,t){super(e),this._config=this._getConfig(t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return DefaultType}static get Default(){return Default}static get NAME(){return NAME}show(){if(EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(CLASS_NAME_FADE);this._element.classList.remove(CLASS_NAME_HIDE),reflow(this._element),this._element.classList.add(CLASS_NAME_SHOW),this._element.classList.add(CLASS_NAME_SHOWING),this._queueCallback(()=>{this._element.classList.remove(CLASS_NAME_SHOWING),EventHandler.trigger(this._element,EVENT_SHOWN),this._maybeScheduleHide()},this._element,this._config.animation)}hide(){if(!this._element.classList.contains(CLASS_NAME_SHOW))return;if(EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented)return;this._element.classList.add(CLASS_NAME_SHOWING),this._queueCallback(()=>{this._element.classList.add(CLASS_NAME_HIDE),this._element.classList.remove(CLASS_NAME_SHOWING),this._element.classList.remove(CLASS_NAME_SHOW),EventHandler.trigger(this._element,EVENT_HIDDEN)},this._element,this._config.animation)}dispose(){this._clearTimeout(),this._element.classList.contains(CLASS_NAME_SHOW)&&this._element.classList.remove(CLASS_NAME_SHOW),super.dispose()}_getConfig(e){return e={...Default,...Manipulator.getDataAttributes(this._element),..."object"==typeof e&&e?e:{}},typeCheckConfig(NAME,e,this.constructor.DefaultType),e}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){EventHandler.on(this._element,EVENT_MOUSEOVER,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_MOUSEOUT,e=>this._onInteraction(e,!1)),EventHandler.on(this._element,EVENT_FOCUSIN,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_FOCUSOUT,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const t=Toast.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}})}}enableDismissTrigger(Toast),defineJQueryPlugin(Toast);var dropdownTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="dropdown"]'));dropdownTriggerList.map(function(e){return new Dropdown(e)});var tooltipTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));tooltipTriggerList.map(function(e){var t,n,i={delay:{show:50,hide:50},html:null!==(t="true"===e.getAttribute("data-bs-html"))&&void 0!==t&&t,placement:null!==(n=e.getAttribute("data-bs-placement"))&&void 0!==n?n:"auto"};return new Tooltip(e,i)});var popoverTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));popoverTriggerList.map(function(e){var t,n,i={delay:{show:50,hide:50},html:null!==(t="true"===e.getAttribute("data-bs-html"))&&void 0!==t&&t,placement:null!==(n=e.getAttribute("data-bs-placement"))&&void 0!==n?n:"auto"};return new Popover(e,i)});var switchesTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="switch-icon"]'));switchesTriggerList.map(function(e){e.addEventListener("click",function(t){t.stopPropagation(),e.classList.toggle("active")})});var toastsTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="toast"]'));toastsTriggerList.map(function(e){return new Toast(e)}); \ No newline at end of file +var e,t,n="function"==typeof Map?new Map:(e=[],t=[],{has:function(t){return e.indexOf(t)>-1},get:function(n){return t[e.indexOf(n)]},set:function(n,i){-1===e.indexOf(n)&&(e.push(n),t.push(i))},delete:function(n){var i=e.indexOf(n);i>-1&&(e.splice(i,1),t.splice(i,1))}}),o=function(e){return new Event(e,{bubbles:!0})};try{new Event("test")}catch(e){o=function(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!1),t}}function r(e){var t=n.get(e);t&&t.destroy()}function i(e){var t=n.get(e);t&&t.update()}var l=null;"undefined"==typeof window||"function"!=typeof window.getComputedStyle?((l=function(e){return e}).destroy=function(e){return e},l.update=function(e){return e}):((l=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return function(e){if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!n.has(e)){var t,i=null,s=null,r=null,a=function(){e.clientWidth!==s&&h()},l=function(t){window.removeEventListener("resize",a,!1),e.removeEventListener("input",h,!1),e.removeEventListener("keyup",h,!1),e.removeEventListener("autosize:destroy",l,!1),e.removeEventListener("autosize:update",h,!1),Object.keys(t).forEach(function(n){e.style[n]=t[n]}),n.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",l,!1),"onpropertychange"in e&&"oninput"in e&&e.addEventListener("keyup",h,!1),window.addEventListener("resize",a,!1),e.addEventListener("input",h,!1),e.addEventListener("autosize:update",h,!1),e.style.overflowX="hidden",e.style.wordWrap="break-word",n.set(e,{destroy:l,update:h}),"vertical"===(t=window.getComputedStyle(e,null)).resize?e.style.resize="none":"both"===t.resize&&(e.style.resize="horizontal"),i="content-box"===t.boxSizing?-(parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)):parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth),isNaN(i)&&(i=0),h()}function u(t){var n=e.style.width;e.style.width="0px",e.style.width=n,e.style.overflowY=t}function c(){if(0!==e.scrollHeight){var t=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}(e),n=document.documentElement&&document.documentElement.scrollTop;e.style.height="",e.style.height=e.scrollHeight+i+"px",s=e.clientWidth,t.forEach(function(e){e.node.scrollTop=e.scrollTop}),n&&(document.documentElement.scrollTop=n)}}function h(){c();var t=Math.round(parseFloat(e.style.height)),n=window.getComputedStyle(e,null),i="content-box"===n.boxSizing?Math.round(parseFloat(n.height)):e.offsetHeight;if(i=0||(s[n]=e[n]);return s}function _objectWithoutProperties(e,t){if(null==e)return{};var n,i,s=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,i=_getPrototypeOf(e);if(t){var s=_getPrototypeOf(this).constructor;n=Reflect.construct(i,arguments,s)}else n=i.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _get(){return(_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var i=_superPropBase(e,t);if(i){var s=Object.getOwnPropertyDescriptor(i,t);return s.get?s.get.call(arguments.length<3?e:n):s.value}}).apply(this,arguments)}function set(e,t,n,i){return(set="undefined"!=typeof Reflect&&Reflect.set?Reflect.set:function(e,t,n,i){var s,r=_superPropBase(e,t);if(r){if((s=Object.getOwnPropertyDescriptor(r,t)).set)return s.set.call(i,n),!0;if(!s.writable)return!1}if(s=Object.getOwnPropertyDescriptor(i,t)){if(!s.writable)return!1;s.value=n,Object.defineProperty(i,t,s)}else _defineProperty(i,t,n);return!0})(e,t,n,i)}function _set(e,t,n,i,s){if(!set(e,t,n,i||e)&&s)throw new Error("failed to set property");return n}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,s,r=[],o=!0,a=!1;try{for(n=n.call(e);!(o=(i=n.next()).done)&&(r.push(i.value),!t||r.length!==t);o=!0);}catch(e){a=!0,s=e}finally{try{o||null==n.return||n.return()}finally{if(a)throw s}}return r}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2?arguments[2]:void 0;_classCallCheck(this,e),this.value=t,this.from=n,this.stop=i}return _createClass(e,[{key:"toString",value:function(){return this.value}},{key:"extend",value:function(e){this.value+=String(e)}},{key:"appendTo",value:function(e){return e.append(this.toString(),{tail:!0}).aggregate(e._appendPlaceholder())}},{key:"state",get:function(){return{value:this.value,from:this.from,stop:this.stop}},set:function(e){Object.assign(this,e)}},{key:"unshift",value:function(e){if(!this.value.length||null!=e&&this.from>=e)return"";var t=this.value[0];return this.value=this.value.slice(1),t}},{key:"shift",value:function(){if(!this.value.length)return"";var e=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),e}}]),e}();function IMask(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new IMask.InputMask(e,t)}var Masked=function(){function e(t){_classCallCheck(this,e),this._value="",this._update(Object.assign({},e.DEFAULTS,t)),this.isInitialized=!0}return _createClass(e,[{key:"updateOptions",value:function(e){Object.keys(e).length&&this.withValueRefresh(this._update.bind(this,e))}},{key:"_update",value:function(e){Object.assign(this,e)}},{key:"state",get:function(){return{_value:this.value}},set:function(e){this._value=e._value}},{key:"reset",value:function(){this._value=""}},{key:"value",get:function(){return this._value},set:function(e){this.resolve(e)}},{key:"resolve",value:function(e){return this.reset(),this.append(e,{input:!0},""),this.doCommit(),this.value}},{key:"unmaskedValue",get:function(){return this.value},set:function(e){this.reset(),this.append(e,{},""),this.doCommit()}},{key:"typedValue",get:function(){return this.doParse(this.value)},set:function(e){this.value=this.doFormat(e)}},{key:"rawInputValue",get:function(){return this.extractInput(0,this.value.length,{raw:!0})},set:function(e){this.reset(),this.append(e,{raw:!0},""),this.doCommit()}},{key:"isComplete",get:function(){return!0}},{key:"isFilled",get:function(){return this.isComplete}},{key:"nearestInputPos",value:function(e,t){return e}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.value.slice(e,t)}},{key:"extractTail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return new ContinuousTailDetails(this.extractInput(e,t),e)}},{key:"appendTail",value:function(e){return isString(e)&&(e=new ContinuousTailDetails(String(e))),e.appendTo(this)}},{key:"_appendCharRaw",value:function(e){return e?(this._value+=e,new ChangeDetails({inserted:e,rawInserted:e})):new ChangeDetails}},{key:"_appendChar",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0,s=this.state,r=_slicedToArray(normalizePrepare(this.doPrepare(e,n)),2);if(e=r[0],(t=(t=r[1]).aggregate(this._appendCharRaw(e,n))).inserted){var o,a=!1!==this.doValidate(n);if(a&&null!=i){var l=this.state;!0===this.overwrite&&(o=i.state,i.unshift(this.value.length));var u=this.appendTail(i);(a=u.rawInserted===i.toString())&&u.inserted||"shift"!==this.overwrite||(this.state=l,o=i.state,i.shift(),a=(u=this.appendTail(i)).rawInserted===i.toString()),a&&u.inserted&&(this.state=l)}a||(t=new ChangeDetails,this.state=s,i&&o&&(i.state=o))}return t}},{key:"_appendPlaceholder",value:function(){return new ChangeDetails}},{key:"_appendEager",value:function(){return new ChangeDetails}},{key:"append",value:function(e,t,n){if(!isString(e))throw new Error("value should be string");var i=new ChangeDetails,s=isString(n)?new ContinuousTailDetails(String(n)):n;t&&t.tail&&(t._beforeTailState=this.state);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this._value=this.value.slice(0,e)+this.value.slice(t),new ChangeDetails}},{key:"withValueRefresh",value:function(e){if(this._refreshing||!this.isInitialized)return e();this._refreshing=!0;var t=this.rawInputValue,n=this.value,i=e();return this.rawInputValue=t,this.value&&this.value!==n&&0===n.indexOf(this.value)&&this.append(n.slice(this.value.length),{},""),delete this._refreshing,i}},{key:"runIsolated",value:function(e){if(this._isolated||!this.isInitialized)return e(this);this._isolated=!0;var t=this.state,n=e(this);return this.state=t,delete this._isolated,n}},{key:"doPrepare",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.prepare?this.prepare(e,this,t):e}},{key:"doValidate",value:function(e){return(!this.validate||this.validate(this.value,this,e))&&(!this.parent||this.parent.doValidate(e))}},{key:"doCommit",value:function(){this.commit&&this.commit(this.value,this)}},{key:"doFormat",value:function(e){return this.format?this.format(e,this):e}},{key:"doParse",value:function(e){return this.parse?this.parse(e,this):e}},{key:"splice",value:function(e,t,n,i){var s,r=e+t,o=this.extractTail(r);this.eager&&(i=forceDirection(i),s=this.extractInput(0,r,{raw:!0}));var a=this.nearestInputPos(e,t>1&&0!==e&&!this.eager?DIRECTION.NONE:i),l=new ChangeDetails({tailShift:a-e}).aggregate(this.remove(a));if(this.eager&&i!==DIRECTION.NONE&&s===this.rawInputValue)if(i===DIRECTION.FORCE_LEFT)for(var u;s===this.rawInputValue&&(u=this.value.length);)l.aggregate(new ChangeDetails({tailShift:-1})).aggregate(this.remove(u-1));else i===DIRECTION.FORCE_RIGHT&&o.unshift();return l.aggregate(this.append(n,{input:!0},o))}},{key:"maskEquals",value:function(e){return this.mask===e}}]),e}();function maskedClass(e){if(null==e)throw new Error("mask property should be defined");return e instanceof RegExp?IMask.MaskedRegExp:isString(e)?IMask.MaskedPattern:e instanceof Date||e===Date?IMask.MaskedDate:e instanceof Number||"number"==typeof e||e===Number?IMask.MaskedNumber:Array.isArray(e)||e===Array?IMask.MaskedDynamic:IMask.Masked&&e.prototype instanceof IMask.Masked?e:e instanceof IMask.Masked?e.constructor:e instanceof Function?IMask.MaskedFunction:(console.warn("Mask not found for mask",e),IMask.Masked)}function createMask(e){if(IMask.Masked&&e instanceof IMask.Masked)return e;var t=(e=Object.assign({},e)).mask;if(IMask.Masked&&t instanceof IMask.Masked)return t;var n=maskedClass(t);if(!n)throw new Error("Masked class is not found for provided mask, appropriate module needs to be import manually before creating mask.");return new n(e)}Masked.DEFAULTS={format:function(e){return e},parse:function(e){return e}},IMask.Masked=Masked,IMask.createMask=createMask;var _excluded$4=["mask"],DEFAULT_INPUT_DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},PatternInputDefinition=function(){function e(t){_classCallCheck(this,e);var n=t.mask,i=_objectWithoutProperties(t,_excluded$4);this.masked=createMask({mask:n}),Object.assign(this,i)}return _createClass(e,[{key:"reset",value:function(){this.isFilled=!1,this.masked.reset()}},{key:"remove",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return 0===e&&t>=1?(this.isFilled=!1,this.masked.remove(e,t)):new ChangeDetails}},{key:"value",get:function(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}},{key:"unmaskedValue",get:function(){return this.masked.unmaskedValue}},{key:"isComplete",get:function(){return Boolean(this.masked.value)||this.isOptional}},{key:"_appendChar",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.isFilled)return new ChangeDetails;var n=this.masked.state,i=this.masked._appendChar(e,t);return i.inserted&&!1===this.doValidate(t)&&(i.inserted=i.rawInserted="",this.masked.state=n),i.inserted||this.isOptional||this.lazy||t.input||(i.inserted=this.placeholderChar),i.skip=!i.inserted&&!this.isOptional,this.isFilled=Boolean(i.inserted),i}},{key:"append",value:function(){var e;return(e=this.masked).append.apply(e,arguments)}},{key:"_appendPlaceholder",value:function(){var e=new ChangeDetails;return this.isFilled||this.isOptional?e:(this.isFilled=!0,e.inserted=this.placeholderChar,e)}},{key:"_appendEager",value:function(){return new ChangeDetails}},{key:"extractTail",value:function(){var e;return(e=this.masked).extractTail.apply(e,arguments)}},{key:"appendTail",value:function(){var e;return(e=this.masked).appendTail.apply(e,arguments)}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2?arguments[2]:void 0;return this.masked.extractInput(e,t,n)}},{key:"nearestInputPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.NONE,n=this.value.length,i=Math.min(Math.max(e,0),n);switch(t){case DIRECTION.LEFT:case DIRECTION.FORCE_LEFT:return this.isComplete?i:0;case DIRECTION.RIGHT:case DIRECTION.FORCE_RIGHT:return this.isComplete?i:n;case DIRECTION.NONE:default:return i}}},{key:"doValidate",value:function(){var e,t;return(e=this.masked).doValidate.apply(e,arguments)&&(!this.parent||(t=this.parent).doValidate.apply(t,arguments))}},{key:"doCommit",value:function(){this.masked.doCommit()}},{key:"state",get:function(){return{masked:this.masked.state,isFilled:this.isFilled}},set:function(e){this.masked.state=e.masked,this.isFilled=e.isFilled}}]),e}(),PatternFixedDefinition=function(){function e(t){_classCallCheck(this,e),Object.assign(this,t),this._value="",this.isFixed=!0}return _createClass(e,[{key:"value",get:function(){return this._value}},{key:"unmaskedValue",get:function(){return this.isUnmasking?this.value:""}},{key:"reset",value:function(){this._isRawInput=!1,this._value=""}},{key:"remove",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._value.length;return this._value=this._value.slice(0,e)+this._value.slice(t),this._value||(this._isRawInput=!1),new ChangeDetails}},{key:"nearestInputPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.NONE,n=this._value.length;switch(t){case DIRECTION.LEFT:case DIRECTION.FORCE_LEFT:return 0;case DIRECTION.NONE:case DIRECTION.RIGHT:case DIRECTION.FORCE_RIGHT:default:return n}}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._value.length;return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).raw&&this._isRawInput&&this._value.slice(e,t)||""}},{key:"isComplete",get:function(){return!0}},{key:"isFilled",get:function(){return Boolean(this._value)}},{key:"_appendChar",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new ChangeDetails;if(this._value)return n;var i=this.char===e&&(this.isUnmasking||t.input||t.raw)&&!this.eager&&!t.tail;return i&&(n.rawInserted=this.char),this._value=n.inserted=this.char,this._isRawInput=i&&(t.raw||t.input),n}},{key:"_appendEager",value:function(){return this._appendChar(this.char)}},{key:"_appendPlaceholder",value:function(){var e=new ChangeDetails;return this._value?e:(this._value=e.inserted=this.char,e)}},{key:"extractTail",value:function(){return arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,new ContinuousTailDetails("")}},{key:"appendTail",value:function(e){return isString(e)&&(e=new ContinuousTailDetails(String(e))),e.appendTo(this)}},{key:"append",value:function(e,t,n){var i=this._appendChar(e[0],t);return null!=n&&(i.tailShift+=this.appendTail(n).tailShift),i}},{key:"doCommit",value:function(){}},{key:"state",get:function(){return{_value:this._value,_isRawInput:this._isRawInput}},set:function(e){Object.assign(this,e)}}]),e}(),_excluded$3=["chunks"],ChunksTailDetails=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;_classCallCheck(this,e),this.chunks=t,this.from=n}return _createClass(e,[{key:"toString",value:function(){return this.chunks.map(String).join("")}},{key:"extend",value:function(t){if(String(t)){isString(t)&&(t=new ContinuousTailDetails(String(t)));var n=this.chunks[this.chunks.length-1],i=n&&(n.stop===t.stop||null==t.stop)&&t.from===n.from+n.toString().length;if(t instanceof ContinuousTailDetails)i?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof e){if(null==t.stop)for(var s;t.chunks.length&&null==t.chunks[0].stop;)(s=t.chunks.shift()).from+=t.from,this.extend(s);t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}}},{key:"appendTo",value:function(t){if(!(t instanceof IMask.MaskedPattern))return new ContinuousTailDetails(this.toString()).appendTo(t);for(var n=new ChangeDetails,i=0;i=0)&&n.aggregate(t._appendPlaceholder(o)),a=s instanceof e&&t._blocks[o]),a){var l=a.appendTail(s);l.skip=!1,n.aggregate(l),t._value+=l.inserted;var u=s.toString().slice(l.rawInserted.length);u&&n.aggregate(t.append(u,{tail:!0}))}else n.aggregate(t.append(s.toString(),{tail:!0}))}return n}},{key:"state",get:function(){return{chunks:this.chunks.map(function(e){return e.state}),from:this.from,stop:this.stop,blockIndex:this.blockIndex}},set:function(t){var n=t.chunks,i=_objectWithoutProperties(t,_excluded$3);Object.assign(this,i),this.chunks=n.map(function(t){var n="chunks"in t?new e:new ContinuousTailDetails;return n.state=t,n})}},{key:"unshift",value:function(e){if(!this.chunks.length||null!=e&&this.from>=e)return"";for(var t=null!=e?e-this.from:e,n=0;n=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.value.length))}},{key:"_pushLeft",value:function(e){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=(null===(t=this.block)||void 0===t?void 0:t.value.length)||0){var t;if(e())return this.ok=!0}return this.ok=!1}},{key:"_pushRight",value:function(e){for(this.pushState(),this.bindBlock();this.index=0}),_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e)}}]),n}();IMask.MaskedRegExp=MaskedRegExp;var _excluded$2=["_blocks"],MaskedPattern=function(e){_inherits(n,Masked);var t=_createSuper(n);function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,n),e.definitions=Object.assign({},DEFAULT_INPUT_DEFINITIONS,e.definitions),t.call(this,Object.assign({},n.DEFAULTS,e))}return _createClass(n,[{key:"_update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.definitions=Object.assign({},this.definitions,e.definitions),_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e),this._rebuildMask()}},{key:"_rebuildMask",value:function(){var e=this,t=this.definitions;this._blocks=[],this._stops=[],this._maskedBlocks={};var i=this.mask;if(i&&t)for(var s=!1,r=!1,o=0;o1&&void 0!==arguments[1]?arguments[1]:{},n=this._mapPosToBlock(this.value.length),i=new ChangeDetails;if(!n)return i;for(var s=n.index;;++s){var r,o=this._blocks[s];if(!o)break;var a=o._appendChar(e,Object.assign({},t,{_beforeTailState:null===(r=t._beforeTailState)||void 0===r?void 0:r._blocks[s]})),l=a.skip;if(i.aggregate(a),l||a.rawInserted)break}return i}},{key:"extractTail",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=new ChunksTailDetails;return t===n?i:(this._forEachBlocksInRange(t,n,function(t,n,s,r){var o=t.extractTail(s,r);o.stop=e._findStopBefore(n),o.from=e._blockStartPos(n),o instanceof ChunksTailDetails&&(o.blockIndex=n),i.extend(o)}),i)}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e===t)return"";var i="";return this._forEachBlocksInRange(e,t,function(e,t,s,r){i+=e.extractInput(s,r,n)}),i}},{key:"_findStopBefore",value:function(e){for(var t,n=0;n1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2?arguments[2]:void 0,i=this._mapPosToBlock(e);if(i){var s=this._mapPosToBlock(t),r=s&&i.index===s.index,o=i.offset,a=s&&r?s.offset:this._blocks[i.index].value.length;if(n(this._blocks[i.index],i.index,o,a),s&&!r){for(var l=i.index+1;l0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=_get(_getPrototypeOf(n.prototype),"remove",this).call(this,e,t);return this._forEachBlocksInRange(e,t,function(e,t,n,s){i.aggregate(e.remove(n,s))}),i}},{key:"nearestInputPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.NONE;if(!this._blocks.length)return 0;var n=new PatternCursor(this,e);if(t===DIRECTION.NONE)return n.pushRightBeforeInput()?n.pos:(n.popState(),n.pushLeftBeforeInput()?n.pos:this.value.length);if(t===DIRECTION.LEFT||t===DIRECTION.FORCE_LEFT){if(t===DIRECTION.LEFT){if(n.pushRightBeforeFilled(),n.ok&&n.pos===e)return e;n.popState()}if(n.pushLeftBeforeInput(),n.pushLeftBeforeRequired(),n.pushLeftBeforeFilled(),t===DIRECTION.LEFT){if(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.ok&&n.pos<=e)return n.pos;if(n.popState(),n.ok&&n.pos<=e)return n.pos;n.popState()}return n.ok?n.pos:t===DIRECTION.FORCE_LEFT?0:(n.popState(),n.ok?n.pos:(n.popState(),n.ok?n.pos:0))}return t===DIRECTION.RIGHT||t===DIRECTION.FORCE_RIGHT?(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.pushRightBeforeFilled()?n.pos:t===DIRECTION.FORCE_RIGHT?this.value.length:(n.popState(),n.ok?n.pos:(n.popState(),n.ok?n.pos:this.nearestInputPos(e,DIRECTION.LEFT)))):e}},{key:"maskedBlock",value:function(e){return this.maskedBlocks(e)[0]}},{key:"maskedBlocks",value:function(e){var t=this,n=this._maskedBlocks[e];return n?n.map(function(e){return t._blocks[e]}):[]}}]),n}();MaskedPattern.DEFAULTS={lazy:!0,placeholderChar:"_"},MaskedPattern.STOP_CHAR="`",MaskedPattern.ESCAPE_CHAR="\\",MaskedPattern.InputDefinition=PatternInputDefinition,MaskedPattern.FixedDefinition=PatternFixedDefinition,IMask.MaskedPattern=MaskedPattern;var MaskedRange=function(e){_inherits(n,MaskedPattern);var t=_createSuper(n);function n(){return _classCallCheck(this,n),t.apply(this,arguments)}return _createClass(n,[{key:"_matchFrom",get:function(){return this.maxLength-String(this.from).length}},{key:"_update",value:function(e){e=Object.assign({to:this.to||0,from:this.from||0,maxLength:this.maxLength||0},e);var t=String(e.to).length;null!=e.maxLength&&(t=Math.max(t,e.maxLength)),e.maxLength=t;for(var i=String(e.from).padStart(t,"0"),s=String(e.to).padStart(t,"0"),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},s=_slicedToArray(normalizePrepare(_get(_getPrototypeOf(n.prototype),"doPrepare",this).call(this,e.replace(/\D/g,""),i)),2);if(e=s[0],t=s[1],!this.autofix||!e)return e;var r=String(this.from).padStart(this.maxLength,"0"),o=String(this.to).padStart(this.maxLength,"0"),a=this.value+e;if(a.length>this.maxLength)return"";var l=_slicedToArray(this.boundaries(a),2),u=l[0],c=l[1];return Number(c)this.to?"pad"===this.autofix&&a.length=0}},{key:"date",get:function(){return this.typedValue},set:function(e){this.typedValue=e}},{key:"typedValue",get:function(){return this.isComplete?_get(_getPrototypeOf(n.prototype),"typedValue",this):null},set:function(e){_set(_getPrototypeOf(n.prototype),"typedValue",e,this,!0)}},{key:"maskEquals",value:function(e){return e===Date||_get(_getPrototypeOf(n.prototype),"maskEquals",this).call(this,e)}}]),n}();MaskedDate.DEFAULTS={pattern:"d{.}`m{.}`Y",format:function(e){return e?[String(e.getDate()).padStart(2,"0"),String(e.getMonth()+1).padStart(2,"0"),e.getFullYear()].join("."):""},parse:function(e){var t=_slicedToArray(e.split("."),3),n=t[0],i=t[1],s=t[2];return new Date(s,i-1,n)}},MaskedDate.GET_DEFAULT_BLOCKS=function(){return{d:{mask:MaskedRange,from:1,to:31,maxLength:2},m:{mask:MaskedRange,from:1,to:12,maxLength:2},Y:{mask:MaskedRange,from:1900,to:9999}}},IMask.MaskedDate=MaskedDate;var MaskElement=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:"selectionStart",get:function(){var e;try{e=this._unsafeSelectionStart}catch(e){}return null!=e?e:this.value.length}},{key:"selectionEnd",get:function(){var e;try{e=this._unsafeSelectionEnd}catch(e){}return null!=e?e:this.value.length}},{key:"select",value:function(e,t){if(null!=e&&null!=t&&(e!==this.selectionStart||t!==this.selectionEnd))try{this._unsafeSelect(e,t)}catch(e){}}},{key:"_unsafeSelect",value:function(e,t){}},{key:"isActive",get:function(){return!1}},{key:"bindEvents",value:function(e){}},{key:"unbindEvents",value:function(){}}]),e}();IMask.MaskElement=MaskElement;var HTMLMaskElement=function(e){_inherits(n,MaskElement);var t=_createSuper(n);function n(e){var i;return _classCallCheck(this,n),(i=t.call(this)).input=e,i._handlers={},i}return _createClass(n,[{key:"rootElement",get:function(){var e,t,n;return null!==(e=null===(t=(n=this.input).getRootNode)||void 0===t?void 0:t.call(n))&&void 0!==e?e:document}},{key:"isActive",get:function(){return this.input===this.rootElement.activeElement}},{key:"_unsafeSelectionStart",get:function(){return this.input.selectionStart}},{key:"_unsafeSelectionEnd",get:function(){return this.input.selectionEnd}},{key:"_unsafeSelect",value:function(e,t){this.input.setSelectionRange(e,t)}},{key:"value",get:function(){return this.input.value},set:function(e){this.input.value=e}},{key:"bindEvents",value:function(e){var t=this;Object.keys(e).forEach(function(i){return t._toggleEventHandler(n.EVENTS_MAP[i],e[i])})}},{key:"unbindEvents",value:function(){var e=this;Object.keys(this._handlers).forEach(function(t){return e._toggleEventHandler(t)})}},{key:"_toggleEventHandler",value:function(e,t){this._handlers[e]&&(this.input.removeEventListener(e,this._handlers[e]),delete this._handlers[e]),t&&(this.input.addEventListener(e,t),this._handlers[e]=t)}}]),n}();HTMLMaskElement.EVENTS_MAP={selectionChange:"keydown",input:"input",drop:"drop",click:"click",focus:"focus",commit:"blur"},IMask.HTMLMaskElement=HTMLMaskElement;var HTMLContenteditableMaskElement=function(e){_inherits(n,HTMLMaskElement);var t=_createSuper(n);function n(){return _classCallCheck(this,n),t.apply(this,arguments)}return _createClass(n,[{key:"_unsafeSelectionStart",get:function(){var e=this.rootElement,t=e.getSelection&&e.getSelection(),n=t&&t.anchorOffset,i=t&&t.focusOffset;return null==i||null==n||ni?n:i}},{key:"_unsafeSelect",value:function(e,t){if(this.rootElement.createRange){var n=this.rootElement.createRange();n.setStart(this.input.firstChild||this.input,e),n.setEnd(this.input.lastChild||this.input,t);var i=this.rootElement,s=i.getSelection&&i.getSelection();s&&(s.removeAllRanges(),s.addRange(n))}}},{key:"value",get:function(){return this.input.textContent},set:function(e){this.input.textContent=e}}]),n}();IMask.HTMLContenteditableMaskElement=HTMLContenteditableMaskElement;var _excluded$1=["mask"],InputMask=function(){function e(t,n){_classCallCheck(this,e),this.el=t instanceof MaskElement?t:t.isContentEditable&&"INPUT"!==t.tagName&&"TEXTAREA"!==t.tagName?new HTMLContenteditableMaskElement(t):new HTMLMaskElement(t),this.masked=createMask(n),this._listeners={},this._value="",this._unmaskedValue="",this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}return _createClass(e,[{key:"mask",get:function(){return this.masked.mask},set:function(e){if(!this.maskEquals(e))if(e instanceof IMask.Masked||this.masked.constructor!==maskedClass(e)){var t=createMask({mask:e});t.unmaskedValue=this.masked.unmaskedValue,this.masked=t}else this.masked.updateOptions({mask:e})}},{key:"maskEquals",value:function(e){var t;return null==e||(null===(t=this.masked)||void 0===t?void 0:t.maskEquals(e))}},{key:"value",get:function(){return this._value},set:function(e){this.masked.value=e,this.updateControl(),this.alignCursor()}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(e){this.masked.unmaskedValue=e,this.updateControl(),this.alignCursor()}},{key:"typedValue",get:function(){return this.masked.typedValue},set:function(e){this.masked.typedValue=e,this.updateControl(),this.alignCursor()}},{key:"_bindEvents",value:function(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange})}},{key:"_unbindEvents",value:function(){this.el&&this.el.unbindEvents()}},{key:"_fireEvent",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i=0&&this._listeners[e].splice(n,1),this}},{key:"_onInput",value:function(e){if(this._inputEvent=e,this._abortUpdateCursor(),!this._selection)return this.updateValue();var t=new ActionDetails(this.el.value,this.cursorPos,this.value,this._selection),n=this.masked.rawInputValue,i=this.masked.splice(t.startChangePos,t.removed.length,t.inserted,t.removeDirection).offset,s=n===this.masked.rawInputValue?t.removeDirection:DIRECTION.NONE,r=this.masked.nearestInputPos(t.startChangePos+i,s);s!==DIRECTION.NONE&&(r=this.masked.nearestInputPos(r,DIRECTION.NONE)),this.updateControl(),this.updateCursor(r),delete this._inputEvent}},{key:"_onChange",value:function(){this.value!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}},{key:"_onDrop",value:function(e){e.preventDefault(),e.stopPropagation()}},{key:"_onFocus",value:function(e){this.alignCursorFriendly()}},{key:"_onClick",value:function(e){this.alignCursorFriendly()}},{key:"destroy",value:function(){this._unbindEvents(),this._listeners.length=0,delete this.el}}]),e}();IMask.InputMask=InputMask;var MaskedEnum=function(e){_inherits(n,MaskedPattern);var t=_createSuper(n);function n(){return _classCallCheck(this,n),t.apply(this,arguments)}return _createClass(n,[{key:"_update",value:function(e){e.enum&&(e.mask="*".repeat(e.enum[0].length)),_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e)}},{key:"doValidate",value:function(){for(var e,t=this,i=arguments.length,s=new Array(i),r=0;r=0})&&(e=_get(_getPrototypeOf(n.prototype),"doValidate",this)).call.apply(e,[this].concat(s))}}]),n}();IMask.MaskedEnum=MaskedEnum;var MaskedNumber=function(e){_inherits(n,Masked);var t=_createSuper(n);function n(e){return _classCallCheck(this,n),t.call(this,Object.assign({},n.DEFAULTS,e))}return _createClass(n,[{key:"_update",value:function(e){_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e),this._updateRegExps()}},{key:"_updateRegExps",value:function(){var e="^"+(this.allowNegative?"[+|\\-]?":""),t=(this.scale?"("+escapeRegExp(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExpInput=new RegExp(e+"(0|([1-9]+\\d*))?"+t),this._numberRegExp=new RegExp(e+"\\d*"+t),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(escapeRegExp).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(escapeRegExp(this.thousandsSeparator),"g")}},{key:"_removeThousandsSeparators",value:function(e){return e.replace(this._thousandsSeparatorRegExp,"")}},{key:"_insertThousandsSeparators",value:function(e){var t=e.split(this.radix);return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),t.join(this.radix)}},{key:"doPrepare",value:function(e){var t;e=e.replace(this._mapToRadixRegExp,this.radix);for(var i=this._removeThousandsSeparators(e),s=arguments.length,r=new Array(s>1?s-1:0),o=1;o1&&void 0!==arguments[1]&&arguments[1],n=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:this._value;return this._separatorsCount(this._removeThousandsSeparators(e).length,!0)}},{key:"extractInput",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=arguments.length>2?arguments[2]:void 0,s=_slicedToArray(this._adjustRangeWithSeparators(e,t),2);return e=s[0],t=s[1],this._removeThousandsSeparators(_get(_getPrototypeOf(n.prototype),"extractInput",this).call(this,e,t,i))}},{key:"_appendCharRaw",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.thousandsSeparator)return _get(_getPrototypeOf(n.prototype),"_appendCharRaw",this).call(this,e,t);var i=t.tail&&t._beforeTailState?t._beforeTailState._value:this._value,s=this._separatorsCountFromSlice(i);this._value=this._removeThousandsSeparators(this.value);var r=_get(_getPrototypeOf(n.prototype),"_appendCharRaw",this).call(this,e,t);this._value=this._insertThousandsSeparators(this._value);var o=t.tail&&t._beforeTailState?t._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(o);return r.tailShift+=(a-s)*this.thousandsSeparator.length,r.skip=!r.rawInserted&&e===this.thousandsSeparator,r}},{key:"_findSeparatorAround",value:function(e){if(this.thousandsSeparator){var t=e-this.thousandsSeparator.length+1,n=this.value.indexOf(this.thousandsSeparator,t);if(n<=e)return n}return-1}},{key:"_adjustRangeWithSeparators",value:function(e,t){var n=this._findSeparatorAround(e);n>=0&&(e=n);var i=this._findSeparatorAround(t);return i>=0&&(t=i+this.thousandsSeparator.length),[e,t]}},{key:"remove",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=_slicedToArray(this._adjustRangeWithSeparators(e,t),2);e=n[0],t=n[1];var i=this.value.slice(0,e),s=this.value.slice(t),r=this._separatorsCount(i.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(i+s));var o=this._separatorsCountFromSlice(i);return new ChangeDetails({tailShift:(o-r)*this.thousandsSeparator.length})}},{key:"nearestInputPos",value:function(e,t){if(!this.thousandsSeparator)return e;switch(t){case DIRECTION.NONE:case DIRECTION.LEFT:case DIRECTION.FORCE_LEFT:var n=this._findSeparatorAround(e-1);if(n>=0){var i=n+this.thousandsSeparator.length;if(e=0)return s+this.thousandsSeparator.length}return e}},{key:"doValidate",value:function(e){var t=(e.input?this._numberRegExpInput:this._numberRegExp).test(this._removeThousandsSeparators(this.value));if(t){var i=this.number;t=t&&!isNaN(i)&&(null==this.min||this.min>=0||this.min<=this.number)&&(null==this.max||this.max<=0||this.number<=this.max)}return t&&_get(_getPrototypeOf(n.prototype),"doValidate",this).call(this,e)}},{key:"doCommit",value:function(){if(this.value){var e=this.number,t=e;null!=this.min&&(t=Math.max(t,this.min)),null!=this.max&&(t=Math.min(t,this.max)),t!==e&&(this.unmaskedValue=String(t));var i=this.value;this.normalizeZeros&&(i=this._normalizeZeros(i)),this.padFractionalZeros&&this.scale>0&&(i=this._padFractionalZeros(i)),this._value=i}_get(_getPrototypeOf(n.prototype),"doCommit",this).call(this)}},{key:"_normalizeZeros",value:function(e){var t=this._removeThousandsSeparators(e).split(this.radix);return t[0]=t[0].replace(/^(\D*)(0*)(\d*)/,function(e,t,n,i){return t+i}),e.length&&!/\d$/.test(t[0])&&(t[0]=t[0]+"0"),t.length>1&&(t[1]=t[1].replace(/0*$/,""),t[1].length||(t.length=1)),this._insertThousandsSeparators(t.join(this.radix))}},{key:"_padFractionalZeros",value:function(e){if(!e)return e;var t=e.split(this.radix);return t.length<2&&t.push(""),t[1]=t[1].padEnd(this.scale,"0"),t.join(this.radix)}},{key:"unmaskedValue",get:function(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,".")},set:function(e){_set(_getPrototypeOf(n.prototype),"unmaskedValue",e.replace(".",this.radix),this,!0)}},{key:"typedValue",get:function(){return Number(this.unmaskedValue)},set:function(e){_set(_getPrototypeOf(n.prototype),"unmaskedValue",String(e),this,!0)}},{key:"number",get:function(){return this.typedValue},set:function(e){this.typedValue=e}},{key:"allowNegative",get:function(){return this.signed||null!=this.min&&this.min<0||null!=this.max&&this.max<0}}]),n}();MaskedNumber.DEFAULTS={radix:",",thousandsSeparator:"",mapToRadix:["."],scale:2,signed:!1,normalizeZeros:!0,padFractionalZeros:!1},IMask.MaskedNumber=MaskedNumber;var MaskedFunction=function(e){_inherits(n,Masked);var t=_createSuper(n);function n(){return _classCallCheck(this,n),t.apply(this,arguments)}return _createClass(n,[{key:"_update",value:function(e){e.mask&&(e.validate=e.mask),_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e)}}]),n}();IMask.MaskedFunction=MaskedFunction;var _excluded=["compiledMasks","currentMaskRef","currentMask"],MaskedDynamic=function(e){_inherits(n,Masked);var t=_createSuper(n);function n(e){var i;return _classCallCheck(this,n),(i=t.call(this,Object.assign({},n.DEFAULTS,e))).currentMask=null,i}return _createClass(n,[{key:"_update",value:function(e){_get(_getPrototypeOf(n.prototype),"_update",this).call(this,e),"mask"in e&&(this.compiledMasks=Array.isArray(e.mask)?e.mask.map(function(e){return createMask(e)}):[])}},{key:"_appendCharRaw",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this._applyDispatch(e,t);return this.currentMask&&n.aggregate(this.currentMask._appendChar(e,t)),n}},{key:"_applyDispatch",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.tail&&null!=t._beforeTailState?t._beforeTailState._value:this.value,i=this.rawInputValue,s=t.tail&&null!=t._beforeTailState?t._beforeTailState._rawInputValue:i,r=i.slice(s.length),o=this.currentMask,a=new ChangeDetails,l=o&&o.state;if(this.currentMask=this.doDispatch(e,Object.assign({},t)),this.currentMask)if(this.currentMask!==o){if(this.currentMask.reset(),s){var u=this.currentMask.append(s,{raw:!0});a.tailShift=u.inserted.length-n.length}r&&(a.tailShift+=this.currentMask.append(r,{raw:!0,tail:!0}).tailShift)}else this.currentMask.state=l;return a}},{key:"_appendPlaceholder",value:function(){var e=this._applyDispatch.apply(this,arguments);return this.currentMask&&e.aggregate(this.currentMask._appendPlaceholder()),e}},{key:"_appendEager",value:function(){var e=this._applyDispatch.apply(this,arguments);return this.currentMask&&e.aggregate(this.currentMask._appendEager()),e}},{key:"doDispatch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.dispatch(e,this,t)}},{key:"doValidate",value:function(){for(var e,t,i=arguments.length,s=new Array(i),r=0;r1&&void 0!==arguments[1]?arguments[1]:PIPE_TYPE.MASKED,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:PIPE_TYPE.MASKED,i=createMask(e);return function(e){return i.runIsolated(function(i){return i[t]=e,i[n]})}}function pipe(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i0&&(i=round(n.width)/o||1),r>0&&(s=round(n.height)/r||1)}return{width:n.width/i,height:n.height/s,top:n.top/s,right:n.right/i,bottom:n.bottom/s,left:n.left/i,x:n.left/i,y:n.top/s}}function getLayoutRect(e){var t=getBoundingClientRect(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function contains(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&isShadowRoot(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function isTableElement(e){return["table","td","th"].indexOf(getNodeName(e))>=0}function getDocumentElement(e){return((isElement$1(e)?e.ownerDocument:e.document)||window.document).documentElement}function getParentNode(e){return"html"===getNodeName(e)?e:e.assignedSlot||e.parentNode||(isShadowRoot(e)?e.host:null)||getDocumentElement(e)}function getTrueOffsetParent(e){return isHTMLElement(e)&&"fixed"!==getComputedStyle$1(e).position?e.offsetParent:null}function getContainingBlock(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&isHTMLElement(e)&&"fixed"===getComputedStyle$1(e).position)return null;var n=getParentNode(e);for(isShadowRoot(n)&&(n=n.host);isHTMLElement(n)&&["html","body"].indexOf(getNodeName(n))<0;){var i=getComputedStyle$1(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}function getOffsetParent(e){for(var t=getWindow(e),n=getTrueOffsetParent(e);n&&isTableElement(n)&&"static"===getComputedStyle$1(n).position;)n=getTrueOffsetParent(n);return n&&("html"===getNodeName(n)||"body"===getNodeName(n)&&"static"===getComputedStyle$1(n).position)?t:n||getContainingBlock(e)||t}function getMainAxisFromPlacement(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function within(e,t,n){return max(e,min(t,n))}function withinMaxClamp(e,t,n){var i=within(e,t,n);return i>n?n:i}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(e){return Object.assign({},getFreshSideObject(),e)}function expandToHashMap(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var toPaddingObject=function(e,t){return mergePaddingObject("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:expandToHashMap(e,basePlacements))};function arrow(e){var t,n=e.state,i=e.name,s=e.options,r=n.elements.arrow,o=n.modifiersData.popperOffsets,a=getBasePlacement(n.placement),l=getMainAxisFromPlacement(a),u=[left,right].indexOf(a)>=0?"height":"width";if(r&&o){var c=toPaddingObject(s.padding,n),h=getLayoutRect(r),d="y"===l?top:left,f="y"===l?bottom:right,p=n.rects.reference[u]+n.rects.reference[l]-o[l]-n.rects.popper[u],_=o[l]-n.rects.reference[l],E=getOffsetParent(r),g=E?"y"===l?E.clientHeight||0:E.clientWidth||0:0,m=p/2-_/2,v=c[d],A=g-h[u]-c[f],T=g/2-h[u]/2+m,C=within(v,T,A),y=l;n.modifiersData[i]=((t={})[y]=C,t.centerOffset=C-T,t)}}function effect$1(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&contains(t.elements.popper,i)&&(t.elements.arrow=i)}var arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(e){return e.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(e){var t=e.x,n=e.y,i=window.devicePixelRatio||1;return{x:round(t*i)/i||0,y:round(n*i)/i||0}}function mapToStyles(e){var t,n=e.popper,i=e.popperRect,s=e.placement,r=e.variation,o=e.offsets,a=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,h=e.isFixed,d=o.x,f=void 0===d?0:d,p=o.y,_=void 0===p?0:p,E="function"==typeof c?c({x:f,y:_}):{x:f,y:_};f=E.x,_=E.y;var g=o.hasOwnProperty("x"),m=o.hasOwnProperty("y"),v=left,A=top,T=window;if(u){var C=getOffsetParent(n),y="clientHeight",S="clientWidth";if(C===getWindow(n)&&"static"!==getComputedStyle$1(C=getDocumentElement(n)).position&&"absolute"===a&&(y="scrollHeight",S="scrollWidth"),C=C,s===top||(s===left||s===right)&&r===end)A=bottom,_-=(h&&C===T&&T.visualViewport?T.visualViewport.height:C[y])-i.height,_*=l?1:-1;if(s===left||(s===top||s===bottom)&&r===end)v=right,f-=(h&&C===T&&T.visualViewport?T.visualViewport.width:C[S])-i.width,f*=l?1:-1}var b,O=Object.assign({position:a},u&&unsetSides),k=!0===c?roundOffsetsByDPR({x:f,y:_}):{x:f,y:_};return f=k.x,_=k.y,l?Object.assign({},O,((b={})[A]=m?"0":"",b[v]=g?"0":"",b.transform=(T.devicePixelRatio||1)<=1?"translate("+f+"px, "+_+"px)":"translate3d("+f+"px, "+_+"px, 0)",b)):Object.assign({},O,((t={})[A]=m?_+"px":"",t[v]=g?f+"px":"",t.transform="",t))}function computeStyles(e){var t=e.state,n=e.options,i=n.gpuAcceleration,s=void 0===i||i,r=n.adaptive,o=void 0===r||r,a=n.roundOffsets,l=void 0===a||a,u={placement:getBasePlacement(t.placement),variation:getVariation(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:s,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,mapToStyles(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,mapToStyles(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}},passive={passive:!0};function effect(e){var t=e.state,n=e.instance,i=e.options,s=i.scroll,r=void 0===s||s,o=i.resize,a=void 0===o||o,l=getWindow(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&u.forEach(function(e){e.addEventListener("scroll",n.update,passive)}),a&&l.addEventListener("resize",n.update,passive),function(){r&&u.forEach(function(e){e.removeEventListener("scroll",n.update,passive)}),a&&l.removeEventListener("resize",n.update,passive)}}var eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:effect,data:{}},hash$1={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,function(e){return hash$1[e]})}var hash={start:"end",end:"start"};function getOppositeVariationPlacement(e){return e.replace(/start|end/g,function(e){return hash[e]})}function getWindowScroll(e){var t=getWindow(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function getWindowScrollBarX(e){return getBoundingClientRect(getDocumentElement(e)).left+getWindowScroll(e).scrollLeft}function getViewportRect(e){var t=getWindow(e),n=getDocumentElement(e),i=t.visualViewport,s=n.clientWidth,r=n.clientHeight,o=0,a=0;return i&&(s=i.width,r=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=i.offsetLeft,a=i.offsetTop)),{width:s,height:r,x:o+getWindowScrollBarX(e),y:a}}function getDocumentRect(e){var t,n=getDocumentElement(e),i=getWindowScroll(e),s=null==(t=e.ownerDocument)?void 0:t.body,r=max(n.scrollWidth,n.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),o=max(n.scrollHeight,n.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-i.scrollLeft+getWindowScrollBarX(e),l=-i.scrollTop;return"rtl"===getComputedStyle$1(s||n).direction&&(a+=max(n.clientWidth,s?s.clientWidth:0)-r),{width:r,height:o,x:a,y:l}}function isScrollParent(e){var t=getComputedStyle$1(e),n=t.overflow,i=t.overflowX,s=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function getScrollParent(e){return["html","body","#document"].indexOf(getNodeName(e))>=0?e.ownerDocument.body:isHTMLElement(e)&&isScrollParent(e)?e:getScrollParent(getParentNode(e))}function listScrollParents(e,t){var n;void 0===t&&(t=[]);var i=getScrollParent(e),s=i===(null==(n=e.ownerDocument)?void 0:n.body),r=getWindow(i),o=s?[r].concat(r.visualViewport||[],isScrollParent(i)?i:[]):i,a=t.concat(o);return s?a:a.concat(listScrollParents(getParentNode(o)))}function rectToClientRect(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function getInnerBoundingClientRect(e){var t=getBoundingClientRect(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function getClientRectFromMixedType(e,t){return t===viewport?rectToClientRect(getViewportRect(e)):isElement$1(t)?getInnerBoundingClientRect(t):rectToClientRect(getDocumentRect(getDocumentElement(e)))}function getClippingParents(e){var t=listScrollParents(getParentNode(e)),n=["absolute","fixed"].indexOf(getComputedStyle$1(e).position)>=0&&isHTMLElement(e)?getOffsetParent(e):e;return isElement$1(n)?t.filter(function(e){return isElement$1(e)&&contains(e,n)&&"body"!==getNodeName(e)}):[]}function getClippingRect(e,t,n){var i="clippingParents"===t?getClippingParents(e):[].concat(t),s=[].concat(i,[n]),r=s[0],o=s.reduce(function(t,n){var i=getClientRectFromMixedType(e,n);return t.top=max(i.top,t.top),t.right=min(i.right,t.right),t.bottom=min(i.bottom,t.bottom),t.left=max(i.left,t.left),t},getClientRectFromMixedType(e,r));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function computeOffsets(e){var t,n=e.reference,i=e.element,s=e.placement,r=s?getBasePlacement(s):null,o=s?getVariation(s):null,a=n.x+n.width/2-i.width/2,l=n.y+n.height/2-i.height/2;switch(r){case top:t={x:a,y:n.y-i.height};break;case bottom:t={x:a,y:n.y+n.height};break;case right:t={x:n.x+n.width,y:l};break;case left:t={x:n.x-i.width,y:l};break;default:t={x:n.x,y:n.y}}var u=r?getMainAxisFromPlacement(r):null;if(null!=u){var c="y"===u?"height":"width";switch(o){case start:t[u]=t[u]-(n[c]/2-i[c]/2);break;case end:t[u]=t[u]+(n[c]/2-i[c]/2)}}return t}function detectOverflow(e,t){void 0===t&&(t={});var n=t,i=n.placement,s=void 0===i?e.placement:i,r=n.boundary,o=void 0===r?clippingParents:r,a=n.rootBoundary,l=void 0===a?viewport:a,u=n.elementContext,c=void 0===u?popper:u,h=n.altBoundary,d=void 0!==h&&h,f=n.padding,p=void 0===f?0:f,_=mergePaddingObject("number"!=typeof p?p:expandToHashMap(p,basePlacements)),E=c===popper?reference:popper,g=e.rects.popper,m=e.elements[d?E:c],v=getClippingRect(isElement$1(m)?m:m.contextElement||getDocumentElement(e.elements.popper),o,l),A=getBoundingClientRect(e.elements.reference),T=computeOffsets({reference:A,element:g,strategy:"absolute",placement:s}),C=rectToClientRect(Object.assign({},g,T)),y=c===popper?C:A,S={top:v.top-y.top+_.top,bottom:y.bottom-v.bottom+_.bottom,left:v.left-y.left+_.left,right:y.right-v.right+_.right},b=e.modifiersData.offset;if(c===popper&&b){var O=b[s];Object.keys(S).forEach(function(e){var t=[right,bottom].indexOf(e)>=0?1:-1,n=[top,bottom].indexOf(e)>=0?"y":"x";S[e]+=O[n]*t})}return S}function computeAutoPlacement(e,t){void 0===t&&(t={});var n=t,i=n.placement,s=n.boundary,r=n.rootBoundary,o=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?placements:l,c=getVariation(i),h=c?a?variationPlacements:variationPlacements.filter(function(e){return getVariation(e)===c}):basePlacements,d=h.filter(function(e){return u.indexOf(e)>=0});0===d.length&&(d=h);var f=d.reduce(function(t,n){return t[n]=detectOverflow(e,{placement:n,boundary:s,rootBoundary:r,padding:o})[getBasePlacement(n)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}function getExpandedFallbackPlacements(e){if(getBasePlacement(e)===auto)return[];var t=getOppositePlacement(e);return[getOppositeVariationPlacement(e),t,getOppositeVariationPlacement(t)]}function flip(e){var t=e.state,n=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var s=n.mainAxis,r=void 0===s||s,o=n.altAxis,a=void 0===o||o,l=n.fallbackPlacements,u=n.padding,c=n.boundary,h=n.rootBoundary,d=n.altBoundary,f=n.flipVariations,p=void 0===f||f,_=n.allowedAutoPlacements,E=t.options.placement,g=getBasePlacement(E),m=l||(g===E||!p?[getOppositePlacement(E)]:getExpandedFallbackPlacements(E)),v=[E].concat(m).reduce(function(e,n){return e.concat(getBasePlacement(n)===auto?computeAutoPlacement(t,{placement:n,boundary:c,rootBoundary:h,padding:u,flipVariations:p,allowedAutoPlacements:_}):n)},[]),A=t.rects.reference,T=t.rects.popper,C=new Map,y=!0,S=v[0],b=0;b=0,I=D?"width":"height",L=detectOverflow(t,{placement:O,boundary:c,rootBoundary:h,altBoundary:d,padding:u}),w=D?N?right:left:N?bottom:top;A[I]>T[I]&&(w=getOppositePlacement(w));var R=getOppositePlacement(w),M=[];if(r&&M.push(L[k]<=0),a&&M.push(L[w]<=0,L[R]<=0),M.every(function(e){return e})){S=O,y=!1;break}C.set(O,M)}if(y)for(var P=function(e){var t=v.find(function(t){var n=C.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return S=t,"break"},$=p?3:1;$>0;$--){if("break"===P($))break}t.placement!==S&&(t.modifiersData[i]._skip=!0,t.placement=S,t.reset=!0)}}var flip$1={name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function isAnySideFullyClipped(e){return[top,right,bottom,left].some(function(t){return e[t]>=0})}function hide(e){var t=e.state,n=e.name,i=t.rects.reference,s=t.rects.popper,r=t.modifiersData.preventOverflow,o=detectOverflow(t,{elementContext:"reference"}),a=detectOverflow(t,{altBoundary:!0}),l=getSideOffsets(o,i),u=getSideOffsets(a,s,r),c=isAnySideFullyClipped(l),h=isAnySideFullyClipped(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:h},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":h})}var hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(e,t,n){var i=getBasePlacement(e),s=[left,top].indexOf(i)>=0?-1:1,r="function"==typeof n?n(Object.assign({},t,{placement:e})):n,o=r[0],a=r[1];return o=o||0,a=(a||0)*s,[left,right].indexOf(i)>=0?{x:a,y:o}:{x:o,y:a}}function offset(e){var t=e.state,n=e.options,i=e.name,s=n.offset,r=void 0===s?[0,0]:s,o=placements.reduce(function(e,n){return e[n]=distanceAndSkiddingToXY(n,t.rects,r),e},{}),a=o[t.placement],l=a.x,u=a.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[i]=o}var offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};function popperOffsets(e){var t=e.state,n=e.name;t.modifiersData[n]=computeOffsets({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(e){return"x"===e?"y":"x"}function preventOverflow(e){var t=e.state,n=e.options,i=e.name,s=n.mainAxis,r=void 0===s||s,o=n.altAxis,a=void 0!==o&&o,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,h=n.padding,d=n.tether,f=void 0===d||d,p=n.tetherOffset,_=void 0===p?0:p,E=detectOverflow(t,{boundary:l,rootBoundary:u,padding:h,altBoundary:c}),g=getBasePlacement(t.placement),m=getVariation(t.placement),v=!m,A=getMainAxisFromPlacement(g),T=getAltAxis(A),C=t.modifiersData.popperOffsets,y=t.rects.reference,S=t.rects.popper,b="function"==typeof _?_(Object.assign({},t.rects,{placement:t.placement})):_,O="number"==typeof b?{mainAxis:b,altAxis:b}:Object.assign({mainAxis:0,altAxis:0},b),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(C){if(r){var D,I="y"===A?top:left,L="y"===A?bottom:right,w="y"===A?"height":"width",R=C[A],M=R+E[I],P=R-E[L],$=f?-S[w]/2:0,F=m===start?y[w]:S[w],x=m===start?-S[w]:-y[w],V=t.elements.arrow,H=f&&V?getLayoutRect(V):{width:0,height:0},B=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:getFreshSideObject(),W=B[I],j=B[L],G=within(0,y[w],H[w]),K=v?y[w]/2-$-G-W-O.mainAxis:F-G-W-O.mainAxis,Y=v?-y[w]/2+$+G+j+O.mainAxis:x+G+j+O.mainAxis,U=t.elements.arrow&&getOffsetParent(t.elements.arrow),z=U?"y"===A?U.clientTop||0:U.clientLeft||0:0,q=null!=(D=null==k?void 0:k[A])?D:0,X=R+Y-q,Q=within(f?min(M,R+K-q-z):M,R,f?max(P,X):P);C[A]=Q,N[A]=Q-R}if(a){var Z,J="x"===A?top:left,ee="x"===A?bottom:right,te=C[T],ne="y"===T?"height":"width",ie=te+E[J],se=te-E[ee],re=-1!==[top,left].indexOf(g),oe=null!=(Z=null==k?void 0:k[T])?Z:0,ae=re?ie:te-y[ne]-S[ne]-oe+O.altAxis,le=re?te+y[ne]+S[ne]-oe-O.altAxis:se,ue=f&&re?withinMaxClamp(ae,te,le):within(f?ae:ie,te,f?le:se);C[T]=ue,N[T]=ue-te}t.modifiersData[i]=N}}var preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function getNodeScroll(e){return e!==getWindow(e)&&isHTMLElement(e)?getHTMLElementScroll(e):getWindowScroll(e)}function isElementScaled(e){var t=e.getBoundingClientRect(),n=round(t.width)/e.offsetWidth||1,i=round(t.height)/e.offsetHeight||1;return 1!==n||1!==i}function getCompositeRect(e,t,n){void 0===n&&(n=!1);var i=isHTMLElement(t),s=isHTMLElement(t)&&isElementScaled(t),r=getDocumentElement(t),o=getBoundingClientRect(e,s),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!n)&&(("body"!==getNodeName(t)||isScrollParent(r))&&(a=getNodeScroll(t)),isHTMLElement(t)?((l=getBoundingClientRect(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):r&&(l.x=getWindowScrollBarX(r))),{x:o.left+a.scrollLeft-l.x,y:o.top+a.scrollTop-l.y,width:o.width,height:o.height}}function order(e){var t=new Map,n=new Set,i=[];return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||function e(s){n.add(s.name),[].concat(s.requires||[],s.requiresIfExists||[]).forEach(function(i){if(!n.has(i)){var s=t.get(i);s&&e(s)}}),i.push(s)}(e)}),i}function orderModifiers(e){var t=order(e);return modifierPhases.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function debounce(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function mergeByName(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var e=arguments.length,t=new Array(e),n=0;nnull==e?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),getUID=e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e},getSelector=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t},getSelectorFromElement=e=>{const t=getSelector(e);return t&&document.querySelector(t)?t:null},getElementFromSelector=e=>{const t=getSelector(e);return t?document.querySelector(t):null},getTransitionDurationFromElement=e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),s=Number.parseFloat(n);return i||s?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0},triggerTransitionEnd=e=>{e.dispatchEvent(new Event(TRANSITION_END))},isElement=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),getElement=e=>isElement(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(e):null,isVisible=e=>{if(!isElement(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t},isDisabled=e=>!e||e.nodeType!==Node.ELEMENT_NODE||(!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled"))),findShadowRoot=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?findShadowRoot(e.parentNode):null},noop=()=>{},reflow=e=>{e.offsetHeight},getjQuery=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,DOMContentLoadedCallbacks=[],onDOMContentLoaded=e=>{"loading"===document.readyState?(DOMContentLoadedCallbacks.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of DOMContentLoadedCallbacks)e()}),DOMContentLoadedCallbacks.push(e)):e()},isRTL=()=>"rtl"===document.documentElement.dir,defineJQueryPlugin=e=>{onDOMContentLoaded(()=>{const t=getjQuery();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=(()=>(t.fn[n]=i,e.jQueryInterface))}})},execute=e=>{"function"==typeof e&&e()},executeAfterTransition=(e,t,n=!0)=>{if(!n)return void execute(e);const i=getTransitionDurationFromElement(t)+5;let s=!1;const r=({target:n})=>{n===t&&(s=!0,t.removeEventListener(TRANSITION_END,r),execute(e))};t.addEventListener(TRANSITION_END,r),setTimeout(()=>{s||triggerTransitionEnd(t)},i)},getNextActiveElement=(e,t,n,i)=>{const s=e.length;let r=e.indexOf(t);return-1===r?!n&&i?e[s-1]:e[0]:(r+=n?1:-1,i&&(r=(r+s)%s),e[Math.max(0,Math.min(r,s-1))])},namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function makeEventUid(e,t){return t&&`${t}::${uidEvent++}`||e.uidEvent||uidEvent++}function getElementEvents(e){const t=makeEventUid(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function bootstrapHandler(e,t){return function n(i){return hydrateObj(i,{delegateTarget:e}),n.oneOff&&EventHandler.off(e,i.type,t),t.apply(e,[i])}}function bootstrapDelegationHandler(e,t,n){return function i(s){const r=e.querySelectorAll(t);for(let{target:o}=s;o&&o!==this;o=o.parentNode)for(const a of r)if(a===o)return hydrateObj(s,{delegateTarget:o}),i.oneOff&&EventHandler.off(e,s.type,t,n),n.apply(o,[s])}}function findHandler(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function normalizeParameters(e,t,n){const i="string"==typeof t,s=i?n:t||n;let r=getTypeEvent(e);return nativeEvents.has(r)||(r=e),[i,s,r]}function addHandler(e,t,n,i,s){if("string"!=typeof t||!e)return;let[r,o,a]=normalizeParameters(t,n,i);if(t in customEvents){o=(e=>(function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)}))(o)}const l=getElementEvents(e),u=l[a]||(l[a]={}),c=findHandler(u,o,r?n:null);if(c)return void(c.oneOff=c.oneOff&&s);const h=makeEventUid(o,t.replace(namespaceRegex,"")),d=r?bootstrapDelegationHandler(e,n,o):bootstrapHandler(e,o);d.delegationSelector=r?n:null,d.callable=o,d.oneOff=s,d.uidEvent=h,u[h]=d,e.addEventListener(a,d,r)}function removeHandler(e,t,n,i,s){const r=findHandler(t[n],i,s);r&&(e.removeEventListener(n,r,Boolean(s)),delete t[n][r.uidEvent])}function removeNamespacedHandlers(e,t,n,i){const s=t[n]||{};for(const r of Object.keys(s))if(r.includes(i)){const i=s[r];removeHandler(e,t,n,i.callable,i.delegationSelector)}}function getTypeEvent(e){return e=e.replace(stripNameRegex,""),customEvents[e]||e}const EventHandler={on(e,t,n,i){addHandler(e,t,n,i,!1)},one(e,t,n,i){addHandler(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[s,r,o]=normalizeParameters(t,n,i),a=o!==t,l=getElementEvents(e),u=l[o]||{},c=t.startsWith(".");if(void 0===r){if(c)for(const n of Object.keys(l))removeNamespacedHandlers(e,l,n,t.slice(1));for(const n of Object.keys(u)){const i=n.replace(stripUidRegex,"");if(!a||t.includes(i)){const t=u[n];removeHandler(e,l,o,t.callable,t.delegationSelector)}}}else{if(!Object.keys(u).length)return;removeHandler(e,l,o,r,s?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=getjQuery();let s=null,r=!0,o=!0,a=!1;t!==getTypeEvent(t)&&i&&(s=i.Event(t,n),i(e).trigger(s),r=!s.isPropagationStopped(),o=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());let l=new Event(t,{bubbles:r,cancelable:!0});return l=hydrateObj(l,n),a&&l.preventDefault(),o&&e.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function hydrateObj(e,t){for(const[n,i]of Object.entries(t||{}))try{e[n]=i}catch(t){Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}const elementMap=new Map,Data={set(e,t,n){elementMap.has(e)||elementMap.set(e,new Map);const i=elementMap.get(e);i.has(t)||0===i.size?i.set(t,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`)},get:(e,t)=>elementMap.has(e)&&elementMap.get(e).get(t)||null,remove(e,t){if(!elementMap.has(e))return;const n=elementMap.get(e);n.delete(t),0===n.size&&elementMap.delete(e)}};function normalizeData(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch(t){return e}}function normalizeDataKey(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}const Manipulator={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${normalizeDataKey(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${normalizeDataKey(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const i of n){let n=i.replace(/^bs/,"");t[n=n.charAt(0).toLowerCase()+n.slice(1,n.length)]=normalizeData(e.dataset[i])}return t},getDataAttribute:(e,t)=>normalizeData(e.getAttribute(`data-bs-${normalizeDataKey(t)}`))};class Config{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=isElement(t)?Manipulator.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...isElement(t)?Manipulator.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(const n of Object.keys(t)){const i=t[n],s=e[n],r=isElement(s)?"element":toType(s);if(!new RegExp(i).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${i}".`)}}}const VERSION="5.2.0";class BaseComponent extends Config{constructor(e,t){super(),(e=getElement(e))&&(this._element=e,this._config=this._getConfig(t),Data.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Data.remove(this._element,this.constructor.DATA_KEY),EventHandler.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){executeAfterTransition(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Data.get(getElement(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return VERSION}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const enableDismissTrigger=(e,t="hide")=>{const n=`click.dismiss${e.EVENT_KEY}`,i=e.NAME;EventHandler.on(document,n,`[data-bs-dismiss="${i}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),isDisabled(this))return;const s=getElementFromSelector(this)||this.closest(`.${i}`);e.getOrCreateInstance(s)[t]()})},NAME$f="alert",DATA_KEY$a="bs.alert",EVENT_KEY$b=".bs.alert",EVENT_CLOSE="close.bs.alert",EVENT_CLOSED="closed.bs.alert",CLASS_NAME_FADE$5="fade",CLASS_NAME_SHOW$8="show";class Alert extends BaseComponent{static get NAME(){return NAME$f}close(){if(EventHandler.trigger(this._element,EVENT_CLOSE).defaultPrevented)return;this._element.classList.remove(CLASS_NAME_SHOW$8);const e=this._element.classList.contains(CLASS_NAME_FADE$5);this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),EventHandler.trigger(this._element,EVENT_CLOSED),this.dispose()}static jQueryInterface(e){return this.each(function(){const t=Alert.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}enableDismissTrigger(Alert,"close"),defineJQueryPlugin(Alert);const NAME$e="button",DATA_KEY$9="bs.button",EVENT_KEY$a=".bs.button",DATA_API_KEY$6=".data-api",CLASS_NAME_ACTIVE$3="active",SELECTOR_DATA_TOGGLE$5='[data-bs-toggle="button"]',EVENT_CLICK_DATA_API$6="click.bs.button.data-api";class Button extends BaseComponent{static get NAME(){return NAME$e}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(CLASS_NAME_ACTIVE$3))}static jQueryInterface(e){return this.each(function(){const t=Button.getOrCreateInstance(this);"toggle"===e&&t[e]()})}}EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$5,e=>{e.preventDefault();const t=e.target.closest(SELECTOR_DATA_TOGGLE$5);Button.getOrCreateInstance(t).toggle()}),defineJQueryPlugin(Button);const SelectorEngine={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(",");return this.find(t,e).filter(e=>!isDisabled(e)&&isVisible(e))}},NAME$d="swipe",EVENT_KEY$9=".bs.swipe",EVENT_TOUCHSTART=`touchstart${EVENT_KEY$9}`,EVENT_TOUCHMOVE=`touchmove${EVENT_KEY$9}`,EVENT_TOUCHEND=`touchend${EVENT_KEY$9}`,EVENT_POINTERDOWN=`pointerdown${EVENT_KEY$9}`,EVENT_POINTERUP=`pointerup${EVENT_KEY$9}`,POINTER_TYPE_TOUCH="touch",POINTER_TYPE_PEN="pen",CLASS_NAME_POINTER_EVENT="pointer-event",SWIPE_THRESHOLD=40,Default$c={endCallback:null,leftCallback:null,rightCallback:null},DefaultType$c={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class Swipe extends Config{constructor(e,t){super(),this._element=e,e&&Swipe.isSupported()&&(this._config=this._getConfig(t),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Default$c}static get DefaultType(){return DefaultType$c}static get NAME(){return NAME$d}dispose(){EventHandler.off(this._element,EVENT_KEY$9)}_start(e){this._supportPointerEvents?this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX):this._deltaX=e.touches[0].clientX}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),execute(this._config.endCallback)}_move(e){this._deltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this._deltaX}_handleSwipe(){const e=Math.abs(this._deltaX);if(e<=SWIPE_THRESHOLD)return;const t=e/this._deltaX;this._deltaX=0,t&&execute(t>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(EventHandler.on(this._element,EVENT_POINTERDOWN,e=>this._start(e)),EventHandler.on(this._element,EVENT_POINTERUP,e=>this._end(e)),this._element.classList.add(CLASS_NAME_POINTER_EVENT)):(EventHandler.on(this._element,EVENT_TOUCHSTART,e=>this._start(e)),EventHandler.on(this._element,EVENT_TOUCHMOVE,e=>this._move(e)),EventHandler.on(this._element,EVENT_TOUCHEND,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&(e.pointerType===POINTER_TYPE_PEN||e.pointerType===POINTER_TYPE_TOUCH)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const NAME$c="carousel",DATA_KEY$8="bs.carousel",EVENT_KEY$8=".bs.carousel",DATA_API_KEY$5=".data-api",ARROW_LEFT_KEY$1="ArrowLeft",ARROW_RIGHT_KEY$1="ArrowRight",TOUCHEVENT_COMPAT_WAIT=500,ORDER_NEXT="next",ORDER_PREV="prev",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",EVENT_SLIDE="slide.bs.carousel",EVENT_SLID="slid.bs.carousel",EVENT_KEYDOWN$1="keydown.bs.carousel",EVENT_MOUSEENTER$1="mouseenter.bs.carousel",EVENT_MOUSELEAVE$1="mouseleave.bs.carousel",EVENT_DRAG_START="dragstart.bs.carousel",EVENT_LOAD_DATA_API$3="load.bs.carousel.data-api",EVENT_CLICK_DATA_API$5="click.bs.carousel.data-api",CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$2="active",CLASS_NAME_SLIDE="slide",CLASS_NAME_END="carousel-item-end",CLASS_NAME_START="carousel-item-start",CLASS_NAME_NEXT="carousel-item-next",CLASS_NAME_PREV="carousel-item-prev",SELECTOR_ACTIVE=".active",SELECTOR_ITEM=".carousel-item",SELECTOR_ACTIVE_ITEM=SELECTOR_ACTIVE+SELECTOR_ITEM,SELECTOR_ITEM_IMG=".carousel-item img",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_DATA_SLIDE="[data-bs-slide], [data-bs-slide-to]",SELECTOR_DATA_RIDE='[data-bs-ride="carousel"]',KEY_TO_DIRECTION={ArrowLeft:DIRECTION_RIGHT,ArrowRight:DIRECTION_LEFT},Default$b={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},DefaultType$b={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Carousel extends BaseComponent{constructor(e,t){super(e,t),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS,this._element),this._addEventListeners(),this._config.ride===CLASS_NAME_CAROUSEL&&this.cycle()}static get Default(){return Default$b}static get DefaultType(){return DefaultType$b}static get NAME(){return NAME$c}next(){this._slide(ORDER_NEXT)}nextWhenVisible(){!document.hidden&&isVisible(this._element)&&this.next()}prev(){this._slide(ORDER_PREV)}pause(){this._isSliding&&triggerTransitionEnd(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?EventHandler.one(this._element,EVENT_SLID,()=>this.cycle()):this.cycle())}to(e){const t=this._getItems();if(e>t.length-1||e<0)return;if(this._isSliding)return void EventHandler.one(this._element,EVENT_SLID,()=>this.to(e));const n=this._getItemIndex(this._getActive());if(n===e)return;const i=e>n?ORDER_NEXT:ORDER_PREV;this._slide(i,t[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,EVENT_KEYDOWN$1,e=>this._keydown(e)),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER$1,()=>this.pause()),EventHandler.on(this._element,EVENT_MOUSELEAVE$1,()=>this._maybeEnableCycle())),this._config.touch&&Swipe.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const e of SelectorEngine.find(SELECTOR_ITEM_IMG,this._element))EventHandler.on(e,EVENT_DRAG_START,e=>e.preventDefault());const e={leftCallback:()=>this._slide(this._directionToOrder(DIRECTION_LEFT)),rightCallback:()=>this._slide(this._directionToOrder(DIRECTION_RIGHT)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),TOUCHEVENT_COMPAT_WAIT+this._config.interval))}};this._swipeHelper=new Swipe(this._element,e)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=KEY_TO_DIRECTION[e.key];t&&(e.preventDefault(),this._slide(this._directionToOrder(t)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const t=SelectorEngine.findOne(SELECTOR_ACTIVE,this._indicatorsElement);t.classList.remove(CLASS_NAME_ACTIVE$2),t.removeAttribute("aria-current");const n=SelectorEngine.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add(CLASS_NAME_ACTIVE$2),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const t=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=t||this._config.defaultInterval}_slide(e,t=null){if(this._isSliding)return;const n=this._getActive(),i=e===ORDER_NEXT,s=t||getNextActiveElement(this._getItems(),n,i,this._config.wrap);if(s===n)return;const r=this._getItemIndex(s),o=t=>EventHandler.trigger(this._element,t,{relatedTarget:s,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:r});if(o(EVENT_SLIDE).defaultPrevented)return;if(!n||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(r),this._activeElement=s;const l=i?CLASS_NAME_START:CLASS_NAME_END,u=i?CLASS_NAME_NEXT:CLASS_NAME_PREV;s.classList.add(u),reflow(s),n.classList.add(l),s.classList.add(l);this._queueCallback(()=>{s.classList.remove(l,u),s.classList.add(CLASS_NAME_ACTIVE$2),n.classList.remove(CLASS_NAME_ACTIVE$2,u,l),this._isSliding=!1,o(EVENT_SLID)},n,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains(CLASS_NAME_SLIDE)}_getActive(){return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element)}_getItems(){return SelectorEngine.find(SELECTOR_ITEM,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return isRTL()?e===DIRECTION_LEFT?ORDER_PREV:ORDER_NEXT:e===DIRECTION_LEFT?ORDER_NEXT:ORDER_PREV}_orderToDirection(e){return isRTL()?e===ORDER_PREV?DIRECTION_LEFT:DIRECTION_RIGHT:e===ORDER_PREV?DIRECTION_RIGHT:DIRECTION_LEFT}static jQueryInterface(e){return this.each(function(){const t=Carousel.getOrCreateInstance(this,e);if("number"!=typeof e){if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}}else t.to(e)})}}EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_SLIDE,function(e){const t=getElementFromSelector(this);if(!t||!t.classList.contains(CLASS_NAME_CAROUSEL))return;e.preventDefault();const n=Carousel.getOrCreateInstance(t),i=this.getAttribute("data-bs-slide-to");return i?(n.to(i),void n._maybeEnableCycle()):"next"===Manipulator.getDataAttribute(this,"slide")?(n.next(),void n._maybeEnableCycle()):(n.prev(),void n._maybeEnableCycle())}),EventHandler.on(window,EVENT_LOAD_DATA_API$3,()=>{const e=SelectorEngine.find(SELECTOR_DATA_RIDE);for(const t of e)Carousel.getOrCreateInstance(t)}),defineJQueryPlugin(Carousel);const NAME$b="collapse",DATA_KEY$7="bs.collapse",EVENT_KEY$7=".bs.collapse",DATA_API_KEY$4=".data-api",EVENT_SHOW$6="show.bs.collapse",EVENT_SHOWN$6="shown.bs.collapse",EVENT_HIDE$6="hide.bs.collapse",EVENT_HIDDEN$6="hidden.bs.collapse",EVENT_CLICK_DATA_API$4="click.bs.collapse.data-api",CLASS_NAME_SHOW$7="show",CLASS_NAME_COLLAPSE="collapse",CLASS_NAME_COLLAPSING="collapsing",CLASS_NAME_COLLAPSED="collapsed",CLASS_NAME_DEEPER_CHILDREN=`:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`,CLASS_NAME_HORIZONTAL="collapse-horizontal",WIDTH="width",HEIGHT="height",SELECTOR_ACTIVES=".collapse.show, .collapse.collapsing",SELECTOR_DATA_TOGGLE$4='[data-bs-toggle="collapse"]',Default$a={parent:null,toggle:!0},DefaultType$a={parent:"(null|element)",toggle:"boolean"};class Collapse extends BaseComponent{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);for(const e of n){const t=getSelectorFromElement(e),n=SelectorEngine.find(t).filter(e=>e===this._element);null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Default$a}static get DefaultType(){return DefaultType$a}static get NAME(){return NAME$b}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(e=>e!==this._element).map(e=>Collapse.getOrCreateInstance(e,{toggle:!1}))),e.length&&e[0]._isTransitioning)return;if(EventHandler.trigger(this._element,EVENT_SHOW$6).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(CLASS_NAME_COLLAPSE),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(CLASS_NAME_COLLAPSING),this._element.classList.add(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW$7),this._element.style[t]="",EventHandler.trigger(this._element,EVENT_SHOWN$6)},this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(EventHandler.trigger(this._element,EVENT_HIDE$6).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,reflow(this._element),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.classList.remove(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW$7);for(const e of this._triggerArray){const t=getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0;this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(CLASS_NAME_COLLAPSING),this._element.classList.add(CLASS_NAME_COLLAPSE),EventHandler.trigger(this._element,EVENT_HIDDEN$6)},this._element,!0)}_isShown(e=this._element){return e.classList.contains(CLASS_NAME_SHOW$7)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=getElement(e.parent),e}_getDimension(){return this._element.classList.contains(CLASS_NAME_HORIZONTAL)?WIDTH:HEIGHT}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);for(const t of e){const e=getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);return SelectorEngine.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle(CLASS_NAME_COLLAPSED,!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each(function(){const n=Collapse.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$4,function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();const t=getSelectorFromElement(this),n=SelectorEngine.find(t);for(const e of n)Collapse.getOrCreateInstance(e,{toggle:!1}).toggle()}),defineJQueryPlugin(Collapse);const NAME$a="dropdown",DATA_KEY$6="bs.dropdown",EVENT_KEY$6=".bs.dropdown",DATA_API_KEY$3=".data-api",ESCAPE_KEY$2="Escape",TAB_KEY$1="Tab",ARROW_UP_KEY$1="ArrowUp",ARROW_DOWN_KEY$1="ArrowDown",RIGHT_MOUSE_BUTTON=2,EVENT_HIDE$5="hide.bs.dropdown",EVENT_HIDDEN$5="hidden.bs.dropdown",EVENT_SHOW$5="show.bs.dropdown",EVENT_SHOWN$5="shown.bs.dropdown",EVENT_CLICK_DATA_API$3="click.bs.dropdown.data-api",EVENT_KEYDOWN_DATA_API="keydown.bs.dropdown.data-api",EVENT_KEYUP_DATA_API="keyup.bs.dropdown.data-api",CLASS_NAME_SHOW$6="show",CLASS_NAME_DROPUP="dropup",CLASS_NAME_DROPEND="dropend",CLASS_NAME_DROPSTART="dropstart",CLASS_NAME_DROPUP_CENTER="dropup-center",CLASS_NAME_DROPDOWN_CENTER="dropdown-center",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',SELECTOR_DATA_TOGGLE_SHOWN=`${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`,SELECTOR_MENU=".dropdown-menu",SELECTOR_NAVBAR=".navbar",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",PLACEMENT_TOP=isRTL()?"top-end":"top-start",PLACEMENT_TOPEND=isRTL()?"top-start":"top-end",PLACEMENT_BOTTOM=isRTL()?"bottom-end":"bottom-start",PLACEMENT_BOTTOMEND=isRTL()?"bottom-start":"bottom-end",PLACEMENT_RIGHT=isRTL()?"left-start":"right-start",PLACEMENT_LEFT=isRTL()?"right-start":"left-start",PLACEMENT_TOPCENTER="top",PLACEMENT_BOTTOMCENTER="bottom",Default$9={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},DefaultType$9={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Dropdown extends BaseComponent{constructor(e,t){super(e,t),this._popper=null,this._parent=this._element.parentNode,this._menu=SelectorEngine.findOne(SELECTOR_MENU,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Default$9}static get DefaultType(){return DefaultType$9}static get NAME(){return NAME$a}toggle(){return this._isShown()?this.hide():this.show()}show(){if(isDisabled(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!EventHandler.trigger(this._element,EVENT_SHOW$5,e).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(SELECTOR_NAVBAR_NAV))for(const e of[].concat(...document.body.children))EventHandler.on(e,"mouseover",noop);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(CLASS_NAME_SHOW$6),this._element.classList.add(CLASS_NAME_SHOW$6),EventHandler.trigger(this._element,EVENT_SHOWN$5,e)}}hide(){if(isDisabled(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){if(!EventHandler.trigger(this._element,EVENT_HIDE$5,e).defaultPrevented){if("ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))EventHandler.off(e,"mouseover",noop);this._popper&&this._popper.destroy(),this._menu.classList.remove(CLASS_NAME_SHOW$6),this._element.classList.remove(CLASS_NAME_SHOW$6),this._element.setAttribute("aria-expanded","false"),Manipulator.removeDataAttribute(this._menu,"popper"),EventHandler.trigger(this._element,EVENT_HIDDEN$5,e)}}_getConfig(e){if("object"==typeof(e=super._getConfig(e)).reference&&!isElement(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=this._parent:isElement(this._config.reference)?e=getElement(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const t=this._getPopperConfig();this._popper=createPopper(e,this._menu,t)}_isShown(){return this._menu.classList.contains(CLASS_NAME_SHOW$6)}_getPlacement(){const e=this._parent;if(e.classList.contains(CLASS_NAME_DROPEND))return PLACEMENT_RIGHT;if(e.classList.contains(CLASS_NAME_DROPSTART))return PLACEMENT_LEFT;if(e.classList.contains(CLASS_NAME_DROPUP_CENTER))return PLACEMENT_TOPCENTER;if(e.classList.contains(CLASS_NAME_DROPDOWN_CENTER))return PLACEMENT_BOTTOMCENTER;const t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains(CLASS_NAME_DROPUP)?t?PLACEMENT_TOPEND:PLACEMENT_TOP:t?PLACEMENT_BOTTOMEND:PLACEMENT_BOTTOM}_detectNavbar(){return null!==this._element.closest(SELECTOR_NAVBAR)}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(Manipulator.setDataAttribute(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_selectMenuItem({key:e,target:t}){const n=SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,this._menu).filter(e=>isVisible(e));n.length&&getNextActiveElement(n,t,e===ARROW_DOWN_KEY$1,!n.includes(t)).focus()}static jQueryInterface(e){return this.each(function(){const t=Dropdown.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static clearMenus(e){if(e.button===RIGHT_MOUSE_BUTTON||"keyup"===e.type&&e.key!==TAB_KEY$1)return;const t=SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);for(const n of t){const t=Dropdown.getInstance(n);if(!t||!1===t._config.autoClose)continue;const i=e.composedPath(),s=i.includes(t._menu);if(i.includes(t._element)||"inside"===t._config.autoClose&&!s||"outside"===t._config.autoClose&&s)continue;if(t._menu.contains(e.target)&&("keyup"===e.type&&e.key===TAB_KEY$1||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const r={relatedTarget:t._element};"click"===e.type&&(r.clickEvent=e),t._completeHide(r)}}static dataApiKeydownHandler(e){const t=/input|textarea/i.test(e.target.tagName),n=e.key===ESCAPE_KEY$2,i=[ARROW_UP_KEY$1,ARROW_DOWN_KEY$1].includes(e.key);if(!i&&!n)return;if(t&&!n)return;e.preventDefault();const s=SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3,e.delegateTarget.parentNode),r=Dropdown.getOrCreateInstance(s);if(i)return e.stopPropagation(),r.show(),void r._selectMenuItem(e);r._isShown()&&(e.stopPropagation(),r.hide(),s.focus())}}EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$3,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_MENU,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_CLICK_DATA_API$3,Dropdown.clearMenus),EventHandler.on(document,EVENT_KEYUP_DATA_API,Dropdown.clearMenus),EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$3,function(e){e.preventDefault(),Dropdown.getOrCreateInstance(this).toggle()}),defineJQueryPlugin(Dropdown);const SELECTOR_FIXED_CONTENT=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",SELECTOR_STICKY_CONTENT=".sticky-top",PROPERTY_PADDING="padding-right",PROPERTY_MARGIN="margin-right";class ScrollBarHelper{constructor(){this._element=document.body}getWidth(){const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){const e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,PROPERTY_PADDING,t=>t+e),this._setElementAttributes(SELECTOR_FIXED_CONTENT,PROPERTY_PADDING,t=>t+e),this._setElementAttributes(SELECTOR_STICKY_CONTENT,PROPERTY_MARGIN,t=>t-e)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,PROPERTY_PADDING),this._resetElementAttributes(SELECTOR_FIXED_CONTENT,PROPERTY_PADDING),this._resetElementAttributes(SELECTOR_STICKY_CONTENT,PROPERTY_MARGIN)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,n){const i=this.getWidth();this._applyManipulationCallback(e,e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+i)return;this._saveInitialAttribute(e,t);const s=window.getComputedStyle(e).getPropertyValue(t);e.style.setProperty(t,`${n(Number.parseFloat(s))}px`)})}_saveInitialAttribute(e,t){const n=e.style.getPropertyValue(t);n&&Manipulator.setDataAttribute(e,t,n)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{const n=Manipulator.getDataAttribute(e,t);null!==n?(Manipulator.removeDataAttribute(e,t),e.style.setProperty(t,n)):e.style.removeProperty(t)})}_applyManipulationCallback(e,t){if(isElement(e))t(e);else for(const n of SelectorEngine.find(e,this._element))t(n)}}const NAME$9="backdrop",CLASS_NAME_FADE$4="fade",CLASS_NAME_SHOW$5="show",EVENT_MOUSEDOWN=`mousedown.bs.${NAME$9}`,Default$8={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},DefaultType$8={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Backdrop extends Config{constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return Default$8}static get DefaultType(){return DefaultType$8}static get NAME(){return NAME$9}show(e){if(!this._config.isVisible)return void execute(e);this._append();const t=this._getElement();this._config.isAnimated&&reflow(t),t.classList.add(CLASS_NAME_SHOW$5),this._emulateAnimation(()=>{execute(e)})}hide(e){this._config.isVisible?(this._getElement().classList.remove(CLASS_NAME_SHOW$5),this._emulateAnimation(()=>{this.dispose(),execute(e)})):execute(e)}dispose(){this._isAppended&&(EventHandler.off(this._element,EVENT_MOUSEDOWN),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add(CLASS_NAME_FADE$4),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=getElement(e.rootElement),e}_append(){if(this._isAppended)return;const e=this._getElement();this._config.rootElement.append(e),EventHandler.on(e,EVENT_MOUSEDOWN,()=>{execute(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){executeAfterTransition(e,this._getElement(),this._config.isAnimated)}}const NAME$8="focustrap",DATA_KEY$5="bs.focustrap",EVENT_KEY$5=".bs.focustrap",EVENT_FOCUSIN$2=`focusin${EVENT_KEY$5}`,EVENT_KEYDOWN_TAB=`keydown.tab${EVENT_KEY$5}`,TAB_KEY="Tab",TAB_NAV_FORWARD="forward",TAB_NAV_BACKWARD="backward",Default$7={autofocus:!0,trapElement:null},DefaultType$7={autofocus:"boolean",trapElement:"element"};class FocusTrap extends Config{constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Default$7}static get DefaultType(){return DefaultType$7}static get NAME(){return NAME$8}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),EventHandler.off(document,EVENT_KEY$5),EventHandler.on(document,EVENT_FOCUSIN$2,e=>this._handleFocusin(e)),EventHandler.on(document,EVENT_KEYDOWN_TAB,e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,EventHandler.off(document,EVENT_KEY$5))}_handleFocusin(e){const{trapElement:t}=this._config;if(e.target===document||e.target===t||t.contains(e.target))return;const n=SelectorEngine.focusableChildren(t);0===n.length?t.focus():this._lastTabNavDirection===TAB_NAV_BACKWARD?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){e.key===TAB_KEY&&(this._lastTabNavDirection=e.shiftKey?TAB_NAV_BACKWARD:TAB_NAV_FORWARD)}}const NAME$7="modal",DATA_KEY$4="bs.modal",EVENT_KEY$4=".bs.modal",DATA_API_KEY$2=".data-api",ESCAPE_KEY$1="Escape",EVENT_HIDE$4=`hide${EVENT_KEY$4}`,EVENT_HIDE_PREVENTED$1=`hidePrevented${EVENT_KEY$4}`,EVENT_HIDDEN$4=`hidden${EVENT_KEY$4}`,EVENT_SHOW$4=`show${EVENT_KEY$4}`,EVENT_SHOWN$4=`shown${EVENT_KEY$4}`,EVENT_RESIZE$1=`resize${EVENT_KEY$4}`,EVENT_MOUSEDOWN_DISMISS=`mousedown.dismiss${EVENT_KEY$4}`,EVENT_KEYDOWN_DISMISS$1=`keydown.dismiss${EVENT_KEY$4}`,EVENT_CLICK_DATA_API$2=`click${EVENT_KEY$4}.data-api`,CLASS_NAME_OPEN="modal-open",CLASS_NAME_FADE$3="fade",CLASS_NAME_SHOW$4="show",CLASS_NAME_STATIC="modal-static",OPEN_SELECTOR$1=".modal.show",SELECTOR_DIALOG=".modal-dialog",SELECTOR_MODAL_BODY=".modal-body",SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="modal"]',Default$6={backdrop:!0,focus:!0,keyboard:!0},DefaultType$6={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Modal extends BaseComponent{constructor(e,t){super(e,t),this._dialog=SelectorEngine.findOne(SELECTOR_DIALOG,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new ScrollBarHelper,this._addEventListeners()}static get Default(){return Default$6}static get DefaultType(){return DefaultType$6}static get NAME(){return NAME$7}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown||this._isTransitioning)return;EventHandler.trigger(this._element,EVENT_SHOW$4,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(CLASS_NAME_OPEN),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){if(!this._isShown||this._isTransitioning)return;EventHandler.trigger(this._element,EVENT_HIDE$4).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(CLASS_NAME_SHOW$4),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){for(const e of[window,this._dialog])EventHandler.off(e,EVENT_KEY$4);this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Backdrop({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const t=SelectorEngine.findOne(SELECTOR_MODAL_BODY,this._dialog);t&&(t.scrollTop=0),reflow(this._element),this._element.classList.add(CLASS_NAME_SHOW$4);this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,EventHandler.trigger(this._element,EVENT_SHOWN$4,{relatedTarget:e})},this._dialog,this._isAnimated())}_addEventListeners(){EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS$1,e=>{if(e.key===ESCAPE_KEY$1)return this._config.keyboard?(e.preventDefault(),void this.hide()):void this._triggerBackdropTransition()}),EventHandler.on(window,EVENT_RESIZE$1,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),EventHandler.on(this._element,EVENT_MOUSEDOWN_DISMISS,e=>{e.target===e.currentTarget&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(CLASS_NAME_OPEN),this._resetAdjustments(),this._scrollBar.reset(),EventHandler.trigger(this._element,EVENT_HIDDEN$4)})}_isAnimated(){return this._element.classList.contains(CLASS_NAME_FADE$3)}_triggerBackdropTransition(){if(EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED$1).defaultPrevented)return;const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._element.style.overflowY;"hidden"===t||this._element.classList.contains(CLASS_NAME_STATIC)||(e||(this._element.style.overflowY="hidden"),this._element.classList.add(CLASS_NAME_STATIC),this._queueCallback(()=>{this._element.classList.remove(CLASS_NAME_STATIC),this._queueCallback(()=>{this._element.style.overflowY=t},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),n=t>0;if(n&&!e){const e=isRTL()?"paddingLeft":"paddingRight";this._element.style[e]=`${t}px`}if(!n&&e){const e=isRTL()?"paddingRight":"paddingLeft";this._element.style[e]=`${t}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each(function(){const n=Modal.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_TOGGLE$2,function(e){const t=getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),EventHandler.one(t,EVENT_SHOW$4,e=>{e.defaultPrevented||EventHandler.one(t,EVENT_HIDDEN$4,()=>{isVisible(this)&&this.focus()})});const n=SelectorEngine.findOne(".modal.show");n&&Modal.getInstance(n).hide(),Modal.getOrCreateInstance(t).toggle(this)}),enableDismissTrigger(Modal),defineJQueryPlugin(Modal);const NAME$6="offcanvas",DATA_KEY$3="bs.offcanvas",EVENT_KEY$3=".bs.offcanvas",DATA_API_KEY$1=".data-api",EVENT_LOAD_DATA_API$2="load.bs.offcanvas.data-api",ESCAPE_KEY="Escape",CLASS_NAME_SHOW$3="show",CLASS_NAME_SHOWING$1="showing",CLASS_NAME_HIDING="hiding",CLASS_NAME_BACKDROP="offcanvas-backdrop",OPEN_SELECTOR=".offcanvas.show",EVENT_SHOW$3="show.bs.offcanvas",EVENT_SHOWN$3="shown.bs.offcanvas",EVENT_HIDE$3="hide.bs.offcanvas",EVENT_HIDE_PREVENTED="hidePrevented.bs.offcanvas",EVENT_HIDDEN$3="hidden.bs.offcanvas",EVENT_RESIZE="resize.bs.offcanvas",EVENT_CLICK_DATA_API$1="click.bs.offcanvas.data-api",EVENT_KEYDOWN_DISMISS="keydown.dismiss.bs.offcanvas",SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="offcanvas"]',Default$5={backdrop:!0,keyboard:!0,scroll:!1},DefaultType$5={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Offcanvas extends BaseComponent{constructor(e,t){super(e,t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Default$5}static get DefaultType(){return DefaultType$5}static get NAME(){return NAME$6}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown)return;if(EventHandler.trigger(this._element,EVENT_SHOW$3,{relatedTarget:e}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||(new ScrollBarHelper).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(CLASS_NAME_SHOWING$1);this._queueCallback(()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(CLASS_NAME_SHOW$3),this._element.classList.remove(CLASS_NAME_SHOWING$1),EventHandler.trigger(this._element,EVENT_SHOWN$3,{relatedTarget:e})},this._element,!0)}hide(){if(!this._isShown)return;if(EventHandler.trigger(this._element,EVENT_HIDE$3).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(CLASS_NAME_HIDING),this._backdrop.hide();this._queueCallback(()=>{this._element.classList.remove(CLASS_NAME_SHOW$3,CLASS_NAME_HIDING),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new ScrollBarHelper).reset(),EventHandler.trigger(this._element,EVENT_HIDDEN$3)},this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=Boolean(this._config.backdrop);return new Backdrop({className:CLASS_NAME_BACKDROP,isVisible:e,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:e?()=>{"static"!==this._config.backdrop?this.hide():EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED)}:null})}_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})}_addEventListeners(){EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,e=>{e.key===ESCAPE_KEY&&(this._config.keyboard?this.hide():EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED))})}static jQueryInterface(e){return this.each(function(){const t=Offcanvas.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE$1,function(e){const t=getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this))return;EventHandler.one(t,EVENT_HIDDEN$3,()=>{isVisible(this)&&this.focus()});const n=SelectorEngine.findOne(OPEN_SELECTOR);n&&n!==t&&Offcanvas.getInstance(n).hide(),Offcanvas.getOrCreateInstance(t).toggle(this)}),EventHandler.on(window,EVENT_LOAD_DATA_API$2,()=>{for(const e of SelectorEngine.find(OPEN_SELECTOR))Offcanvas.getOrCreateInstance(e).show()}),EventHandler.on(window,EVENT_RESIZE,()=>{for(const e of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(e).position&&Offcanvas.getOrCreateInstance(e).hide()}),enableDismissTrigger(Offcanvas),defineJQueryPlugin(Offcanvas);const uriAttributes=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,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,allowedAttribute=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!uriAttributes.has(n)||Boolean(SAFE_URL_PATTERN.test(e.nodeValue)||DATA_URL_PATTERN.test(e.nodeValue)):t.filter(e=>e instanceof RegExp).some(e=>e.test(n))},DefaultAllowlist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),s=[].concat(...i.body.querySelectorAll("*"));for(const e of s){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),s=[].concat(t["*"]||[],t[n]||[]);for(const t of i)allowedAttribute(t,s)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}const NAME$5="TemplateFactory",Default$4={allowList:DefaultAllowlist,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
    "},DefaultType$4={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},DefaultContentType={entry:"(string|element|function|null)",selector:"(string|element)"};class TemplateFactory extends Config{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Default$4}static get DefaultType(){return DefaultType$4}static get NAME(){return NAME$5}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},DefaultContentType)}_setContent(e,t,n){const i=SelectorEngine.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?isElement(t)?this._putElementInTemplate(getElement(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?sanitizeHtml(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return"function"==typeof e?e(this):e}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const NAME$4="tooltip",DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),CLASS_NAME_FADE$2="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$2="show",SELECTOR_TOOLTIP_INNER=".tooltip-inner",SELECTOR_MODAL=".modal",EVENT_MODAL_HIDE="hide.bs.modal",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_MANUAL="manual",EVENT_HIDE$2="hide",EVENT_HIDDEN$2="hidden",EVENT_SHOW$2="show",EVENT_SHOWN$2="shown",EVENT_INSERTED="inserted",EVENT_CLICK$1="click",EVENT_FOCUSIN$1="focusin",EVENT_FOCUSOUT$1="focusout",EVENT_MOUSEENTER="mouseenter",EVENT_MOUSELEAVE="mouseleave",AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL()?"left":"right",BOTTOM:"bottom",LEFT:isRTL()?"right":"left"},Default$3={allowList:DefaultAllowlist,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,0],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},DefaultType$3={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Tooltip extends BaseComponent{constructor(e,t){if(void 0===Popper)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=!1,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners()}static get Default(){return Default$3}static get DefaultType(){return DefaultType$3}static get NAME(){return NAME$4}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(e){if(this._isEnabled){if(e){const t=this._initializeOnDelegatedTarget(e);return t._activeTrigger.click=!t._activeTrigger.click,void(t._isWithActiveTrigger()?t._enter():t._leave())}this._isShown()?this._leave():this._enter()}}dispose(){clearTimeout(this._timeout),EventHandler.off(this._element.closest(SELECTOR_MODAL),EVENT_MODAL_HIDE,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=EventHandler.trigger(this._element,this.constructor.eventName(EVENT_SHOW$2)),t=(findShadowRoot(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this.tip&&(this.tip.remove(),this.tip=null);const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),EventHandler.trigger(this._element,this.constructor.eventName(EVENT_INSERTED))),this._popper?this._popper.update():this._popper=this._createPopper(n),n.classList.add(CLASS_NAME_SHOW$2),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))EventHandler.on(e,"mouseover",noop);this._queueCallback(()=>{const e=this._isHovered;this._isHovered=!1,EventHandler.trigger(this._element,this.constructor.eventName(EVENT_SHOWN$2)),e&&this._leave()},this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(EventHandler.trigger(this._element,this.constructor.eventName(EVENT_HIDE$2)).defaultPrevented)return;const e=this._getTipElement();if(e.classList.remove(CLASS_NAME_SHOW$2),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))EventHandler.off(e,"mouseover",noop);this._activeTrigger[TRIGGER_CLICK]=!1,this._activeTrigger[TRIGGER_FOCUS]=!1,this._activeTrigger[TRIGGER_HOVER]=!1,this._isHovered=!1;this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||e.remove(),this._element.removeAttribute("aria-describedby"),EventHandler.trigger(this._element,this.constructor.eventName(EVENT_HIDDEN$2)),this._disposePopper())},this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(CLASS_NAME_FADE$2,CLASS_NAME_SHOW$2),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=getUID(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(CLASS_NAME_FADE$2),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new TemplateFactory({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[SELECTOR_TOOLTIP_INNER]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._config.originalTitle}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(CLASS_NAME_FADE$2)}_isShown(){return this.tip&&this.tip.classList.contains(CLASS_NAME_SHOW$2)}_createPopper(e){const t="function"==typeof this._config.placement?this._config.placement.call(this,e,this._element):this._config.placement,n=AttachmentMap[t.toUpperCase()];return createPopper(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return"function"==typeof e?e.call(this._element):e}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)EventHandler.on(this._element,this.constructor.eventName(EVENT_CLICK$1),this._config.selector,e=>this.toggle(e));else if(t!==TRIGGER_MANUAL){const e=t===TRIGGER_HOVER?this.constructor.eventName(EVENT_MOUSEENTER):this.constructor.eventName(EVENT_FOCUSIN$1),n=t===TRIGGER_HOVER?this.constructor.eventName(EVENT_MOUSELEAVE):this.constructor.eventName(EVENT_FOCUSOUT$1);EventHandler.on(this._element,e,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?TRIGGER_FOCUS:TRIGGER_HOVER]=!0,t._enter()}),EventHandler.on(this._element,n,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?TRIGGER_FOCUS:TRIGGER_HOVER]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=(()=>{this._element&&this.hide()}),EventHandler.on(this._element.closest(SELECTOR_MODAL),EVENT_MODAL_HIDE,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const e=this._config.originalTitle;e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=Manipulator.getDataAttributes(this._element);for(const e of Object.keys(t))DISALLOWED_ATTRIBUTES.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:getElement(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e.originalTitle=this._element.getAttribute("title")||"","number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const t in this._config)this.constructor.Default[t]!==this._config[t]&&(e[t]=this._config[t]);return e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(e){return this.each(function(){const t=Tooltip.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}defineJQueryPlugin(Tooltip);const NAME$3="popover",SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body",Default$2={...Tooltip.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},DefaultType$2={...Tooltip.DefaultType,content:"(null|string|element|function)"};class Popover extends Tooltip{static get Default(){return Default$2}static get DefaultType(){return DefaultType$2}static get NAME(){return NAME$3}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[SELECTOR_TITLE]:this._getTitle(),[SELECTOR_CONTENT]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(e){return this.each(function(){const t=Popover.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}defineJQueryPlugin(Popover);const NAME$2="scrollspy",DATA_KEY$2="bs.scrollspy",EVENT_KEY$2=".bs.scrollspy",DATA_API_KEY=".data-api",EVENT_ACTIVATE="activate.bs.scrollspy",EVENT_CLICK="click.bs.scrollspy",EVENT_LOAD_DATA_API$1="load.bs.scrollspy.data-api",CLASS_NAME_DROPDOWN_ITEM="dropdown-item",CLASS_NAME_ACTIVE$1="active",SELECTOR_DATA_SPY='[data-bs-spy="scroll"]',SELECTOR_TARGET_LINKS="[href]",SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_LINK_ITEMS=".nav-link, .nav-item > .nav-link, .list-group-item",SELECTOR_DROPDOWN=".dropdown",SELECTOR_DROPDOWN_TOGGLE$1=".dropdown-toggle",Default$1={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null},DefaultType$1={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element"};class ScrollSpy extends BaseComponent{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Default$1}static get DefaultType(){return DefaultType$1}static get NAME(){return NAME$2}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=getElement(e.target)||document.body,e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(EventHandler.off(this._config.target,EVENT_CLICK),EventHandler.on(this._config.target,EVENT_CLICK,SELECTOR_TARGET_LINKS,e=>{const t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();const n=this._rootElement||window,i=t.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:i,behavior:"smooth"});n.scrollTop=i}}))}_getNewObserver(){const e={root:this._rootElement,threshold:[.1,.5,1],rootMargin:this._getRootMargin()};return new IntersectionObserver(e=>this._observerCallback(e),e)}_observerCallback(e){const t=e=>this._targetLinks.get(`#${e.target.id}`),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},i=(this._rootElement||document.documentElement).scrollTop,s=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const r of e){if(!r.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(r));continue}const e=r.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&e){if(n(r),!i)return}else s||e||n(r)}}_getRootMargin(){return this._config.offset?`${this._config.offset}px 0px -30%`:this._config.rootMargin}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=SelectorEngine.find(SELECTOR_TARGET_LINKS,this._config.target);for(const t of e){if(!t.hash||isDisabled(t))continue;const e=SelectorEngine.findOne(t.hash,this._element);isVisible(e)&&(this._targetLinks.set(t.hash,t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(CLASS_NAME_ACTIVE$1),this._activateParents(e),EventHandler.trigger(this._element,EVENT_ACTIVATE,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains(CLASS_NAME_DROPDOWN_ITEM))SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1,e.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);else for(const t of SelectorEngine.parents(e,SELECTOR_NAV_LIST_GROUP))for(const e of SelectorEngine.prev(t,SELECTOR_LINK_ITEMS))e.classList.add(CLASS_NAME_ACTIVE$1)}_clearActiveClass(e){e.classList.remove(CLASS_NAME_ACTIVE$1);const t=SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`,e);for(const e of t)e.classList.remove(CLASS_NAME_ACTIVE$1)}static jQueryInterface(e){return this.each(function(){const t=ScrollSpy.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}})}}EventHandler.on(window,EVENT_LOAD_DATA_API$1,()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_SPY))ScrollSpy.getOrCreateInstance(e)}),defineJQueryPlugin(ScrollSpy);const NAME$1="tab",DATA_KEY$1="bs.tab",EVENT_KEY$1=".bs.tab",EVENT_HIDE$1="hide.bs.tab",EVENT_HIDDEN$1="hidden.bs.tab",EVENT_SHOW$1="show.bs.tab",EVENT_SHOWN$1="shown.bs.tab",EVENT_CLICK_DATA_API="click.bs.tab",EVENT_KEYDOWN="keydown.bs.tab",EVENT_LOAD_DATA_API="load.bs.tab",ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",CLASS_NAME_ACTIVE="active",CLASS_NAME_FADE$1="fade",CLASS_NAME_SHOW$1="show",CLASS_DROPDOWN="dropdown",SELECTOR_DROPDOWN_TOGGLE=".dropdown-toggle",SELECTOR_DROPDOWN_MENU=".dropdown-menu",SELECTOR_DROPDOWN_ITEM=".dropdown-item",NOT_SELECTOR_DROPDOWN_TOGGLE=":not(.dropdown-toggle)",SELECTOR_TAB_PANEL='.list-group, .nav, [role="tablist"]',SELECTOR_OUTER=".nav-item, .list-group-item",SELECTOR_INNER='.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle)',SELECTOR_DATA_TOGGLE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',SELECTOR_INNER_ELEM=`${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`,SELECTOR_DATA_TOGGLE_ACTIVE=`.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;class Tab extends BaseComponent{constructor(e){super(e),this._parent=this._element.closest(SELECTOR_TAB_PANEL),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),EventHandler.on(this._element,EVENT_KEYDOWN,e=>this._keydown(e)))}static get NAME(){return NAME$1}show(){const e=this._element;if(this._elemIsActive(e))return;const t=this._getActiveElem(),n=t?EventHandler.trigger(t,EVENT_HIDE$1,{relatedTarget:e}):null;EventHandler.trigger(e,EVENT_SHOW$1,{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){if(!e)return;e.classList.add(CLASS_NAME_ACTIVE),this._activate(getElementFromSelector(e));this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.focus(),e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleDropDown(e,!0),EventHandler.trigger(e,EVENT_SHOWN$1,{relatedTarget:t})):e.classList.add(CLASS_NAME_SHOW$1)},e,e.classList.contains(CLASS_NAME_FADE$1))}_deactivate(e,t){if(!e)return;e.classList.remove(CLASS_NAME_ACTIVE),e.blur(),this._deactivate(getElementFromSelector(e));this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleDropDown(e,!1),EventHandler.trigger(e,EVENT_HIDDEN$1,{relatedTarget:t})):e.classList.remove(CLASS_NAME_SHOW$1)},e,e.classList.contains(CLASS_NAME_FADE$1))}_keydown(e){if(![ARROW_LEFT_KEY,ARROW_RIGHT_KEY,ARROW_UP_KEY,ARROW_DOWN_KEY].includes(e.key))return;e.stopPropagation(),e.preventDefault();const t=[ARROW_RIGHT_KEY,ARROW_DOWN_KEY].includes(e.key),n=getNextActiveElement(this._getChildren().filter(e=>!isDisabled(e)),e.target,t,!0);n&&Tab.getOrCreateInstance(n).show()}_getChildren(){return SelectorEngine.find(SELECTOR_INNER_ELEM,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,"role","tablist");for(const e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const t=getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(t,"aria-labelledby",`#${e.id}`))}_toggleDropDown(e,t){const n=this._getOuterElement(e);if(!n.classList.contains(CLASS_DROPDOWN))return;const i=(e,i)=>{const s=SelectorEngine.findOne(e,n);s&&s.classList.toggle(i,t)};i(SELECTOR_DROPDOWN_TOGGLE,CLASS_NAME_ACTIVE),i(SELECTOR_DROPDOWN_MENU,CLASS_NAME_SHOW$1),i(SELECTOR_DROPDOWN_ITEM,CLASS_NAME_ACTIVE),n.setAttribute("aria-expanded",t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains(CLASS_NAME_ACTIVE)}_getInnerElement(e){return e.matches(SELECTOR_INNER_ELEM)?e:SelectorEngine.findOne(SELECTOR_INNER_ELEM,e)}_getOuterElement(e){return e.closest(SELECTOR_OUTER)||e}static jQueryInterface(e){return this.each(function(){const t=Tab.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}})}}EventHandler.on(document,"click.bs.tab",SELECTOR_DATA_TOGGLE,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this)||Tab.getOrCreateInstance(this).show()}),EventHandler.on(window,"load.bs.tab",()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE))Tab.getOrCreateInstance(e)}),defineJQueryPlugin(Tab);const NAME="toast",DATA_KEY="bs.toast",EVENT_KEY=".bs.toast",EVENT_MOUSEOVER="mouseover.bs.toast",EVENT_MOUSEOUT="mouseout.bs.toast",EVENT_FOCUSIN="focusin.bs.toast",EVENT_FOCUSOUT="focusout.bs.toast",EVENT_HIDE="hide.bs.toast",EVENT_HIDDEN="hidden.bs.toast",EVENT_SHOW="show.bs.toast",EVENT_SHOWN="shown.bs.toast",CLASS_NAME_FADE="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW="show",CLASS_NAME_SHOWING="showing",DefaultType={animation:"boolean",autohide:"boolean",delay:"number"},Default={animation:!0,autohide:!0,delay:5e3};class Toast extends BaseComponent{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Default}static get DefaultType(){return DefaultType}static get NAME(){return NAME}show(){if(EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(CLASS_NAME_FADE);this._element.classList.remove(CLASS_NAME_HIDE),reflow(this._element),this._element.classList.add(CLASS_NAME_SHOW,CLASS_NAME_SHOWING),this._queueCallback(()=>{this._element.classList.remove(CLASS_NAME_SHOWING),EventHandler.trigger(this._element,EVENT_SHOWN),this._maybeScheduleHide()},this._element,this._config.animation)}hide(){if(!this.isShown())return;if(EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented)return;this._element.classList.add(CLASS_NAME_SHOWING),this._queueCallback(()=>{this._element.classList.add(CLASS_NAME_HIDE),this._element.classList.remove(CLASS_NAME_SHOWING,CLASS_NAME_SHOW),EventHandler.trigger(this._element,EVENT_HIDDEN)},this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(CLASS_NAME_SHOW),super.dispose()}isShown(){return this._element.classList.contains(CLASS_NAME_SHOW)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){EventHandler.on(this._element,EVENT_MOUSEOVER,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_MOUSEOUT,e=>this._onInteraction(e,!1)),EventHandler.on(this._element,EVENT_FOCUSIN,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_FOCUSOUT,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const t=Toast.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}})}}enableDismissTrigger(Toast),defineJQueryPlugin(Toast);var dropdownTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="dropdown"]'));dropdownTriggerList.map(function(e){return new Dropdown(e)});var tooltipTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));tooltipTriggerList.map(function(e){var t,n,i={delay:{show:50,hide:50},html:null!==(t="true"===e.getAttribute("data-bs-html"))&&void 0!==t&&t,placement:null!==(n=e.getAttribute("data-bs-placement"))&&void 0!==n?n:"auto"};return new Tooltip(e,i)});var popoverTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));popoverTriggerList.map(function(e){var t,n,i={delay:{show:50,hide:50},html:null!==(t="true"===e.getAttribute("data-bs-html"))&&void 0!==t&&t,placement:null!==(n=e.getAttribute("data-bs-placement"))&&void 0!==n?n:"auto"};return new Popover(e,i)});var switchesTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="switch-icon"]'));switchesTriggerList.map(function(e){e.addEventListener("click",function(t){t.stopPropagation(),e.classList.toggle("active")})});var toastsTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="toast"]'));toastsTriggerList.map(function(e){return new Toast(e)}); \ No newline at end of file diff --git a/demo/dist/js/tabler.js b/demo/dist/js/tabler.js index a9990c54d..a73e4f673 100644 --- a/demo/dist/js/tabler.js +++ b/demo/dist/js/tabler.js @@ -1,6 +1,6 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna @@ -4637,18 +4637,18 @@ }); /*! - * Bootstrap v5.1.3 (https://getbootstrap.com/) - * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Bootstrap v5.2.0 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ const MAX_UID = 1000000; const MILLISECONDS_MULTIPLIER = 1000; const TRANSITION_END = 'transitionend'; - const toType = obj => { - if (obj === null || obj === undefined) { - return `${obj}`; + const toType = object => { + if (object === null || object === undefined) { + return `${object}`; } - return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); + return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); }; const getUID = prefix => { do { @@ -4659,14 +4659,14 @@ const getSelector = element => { let selector = element.getAttribute('data-bs-target'); if (!selector || selector === '#') { - let hrefAttr = element.getAttribute('href'); - if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + let hrefAttribute = element.getAttribute('href'); + if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) { return null; } - if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { - hrefAttr = `#${hrefAttr.split('#')[1]}`; + if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) { + hrefAttribute = `#${hrefAttribute.split('#')[1]}`; } - selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; + selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; } return selector; }; @@ -4701,39 +4701,43 @@ const triggerTransitionEnd = element => { element.dispatchEvent(new Event(TRANSITION_END)); }; - const isElement = obj => { - if (!obj || typeof obj !== 'object') { + const isElement = object => { + if (!object || typeof object !== 'object') { return false; } - if (typeof obj.jquery !== 'undefined') { - obj = obj[0]; + if (typeof object.jquery !== 'undefined') { + object = object[0]; } - return typeof obj.nodeType !== 'undefined'; + return typeof object.nodeType !== 'undefined'; }; - const getElement = obj => { - if (isElement(obj)) { - return obj.jquery ? obj[0] : obj; + const getElement = object => { + if (isElement(object)) { + return object.jquery ? object[0] : object; } - if (typeof obj === 'string' && obj.length > 0) { - return document.querySelector(obj); + if (typeof object === 'string' && object.length > 0) { + return document.querySelector(object); } return null; }; - const typeCheckConfig = (componentName, config, configTypes) => { - Object.keys(configTypes).forEach(property => { - const expectedTypes = configTypes[property]; - const value = config[property]; - const valueType = value && isElement(value) ? 'element' : toType(value); - if (!new RegExp(expectedTypes).test(valueType)) { - throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); - } - }); - }; const isVisible = element => { if (!isElement(element) || element.getClientRects().length === 0) { return false; } - return getComputedStyle(element).getPropertyValue('visibility') === 'visible'; + const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; + const closedDetails = element.closest('details:not([open])'); + if (!closedDetails) { + return elementIsVisible; + } + if (closedDetails !== element) { + const summary = element.closest('summary'); + if (summary && summary.parentNode !== closedDetails) { + return false; + } + if (summary === null) { + return false; + } + } + return elementIsVisible; }; const isDisabled = element => { if (!element || element.nodeType !== Node.ELEMENT_NODE) { @@ -4768,11 +4772,8 @@ element.offsetHeight; }; const getjQuery = () => { - const { - jQuery - } = window; - if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { - return jQuery; + if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return window.jQuery; } return null; }; @@ -4781,7 +4782,9 @@ if (document.readyState === 'loading') { if (!DOMContentLoadedCallbacks.length) { document.addEventListener('DOMContentLoaded', () => { - DOMContentLoadedCallbacks.forEach(callback => callback()); + for (const callback of DOMContentLoadedCallbacks) { + callback(); + } }); } DOMContentLoadedCallbacks.push(callback); @@ -4836,11 +4839,11 @@ }, emulatedDuration); }; const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { + const listLength = list.length; let index = list.indexOf(activeElement); if (index === -1) { - return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]; + return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; } - const listLength = list.length; index += shouldGetNext ? 1 : -1; if (isCycleAllowed) { index = (index + listLength) % listLength; @@ -4856,20 +4859,21 @@ mouseenter: 'mouseover', mouseleave: 'mouseout' }; - const customEventsRegex = /^(mouseenter|mouseleave)/i; const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); - function getUidEvent(element, uid) { + function makeEventUid(element, uid) { return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; } - function getEvent(element) { - const uid = getUidEvent(element); + function getElementEvents(element) { + const uid = makeEventUid(element); element.uidEvent = uid; eventRegistry[uid] = eventRegistry[uid] || {}; return eventRegistry[uid]; } function bootstrapHandler(element, fn) { return function handler(event) { - event.delegateTarget = element; + hydrateObj(event, { + delegateTarget: element + }); if (handler.oneOff) { EventHandler.off(element, event.type, fn); } @@ -4882,77 +4886,63 @@ for (let { target } = event; target && target !== this; target = target.parentNode) { - for (let i = domElements.length; i--;) { - if (domElements[i] === target) { - event.delegateTarget = target; - if (handler.oneOff) { - EventHandler.off(element, event.type, selector, fn); - } - return fn.apply(target, [event]); + for (const domElement of domElements) { + if (domElement !== target) { + continue; } + hydrateObj(event, { + delegateTarget: target + }); + if (handler.oneOff) { + EventHandler.off(element, event.type, selector, fn); + } + return fn.apply(target, [event]); } } - return null; }; } - function findHandler(events, handler, delegationSelector = null) { - const uidEventList = Object.keys(events); - for (let i = 0, len = uidEventList.length; i < len; i++) { - const event = events[uidEventList[i]]; - if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { - return event; - } - } - return null; + function findHandler(events, callable, delegationSelector = null) { + return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector); } - function normalizeParams(originalTypeEvent, handler, delegationFn) { - const delegation = typeof handler === 'string'; - const originalHandler = delegation ? delegationFn : handler; + function normalizeParameters(originalTypeEvent, handler, delegationFunction) { + const isDelegated = typeof handler === 'string'; + const callable = isDelegated ? delegationFunction : handler || delegationFunction; let typeEvent = getTypeEvent(originalTypeEvent); - const isNative = nativeEvents.has(typeEvent); - if (!isNative) { + if (!nativeEvents.has(typeEvent)) { typeEvent = originalTypeEvent; } - return [delegation, originalHandler, typeEvent]; + return [isDelegated, callable, typeEvent]; } - function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) { + function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { if (typeof originalTypeEvent !== 'string' || !element) { return; } - if (!handler) { - handler = delegationFn; - delegationFn = null; - } - if (customEventsRegex.test(originalTypeEvent)) { - const wrapFn = fn => { + let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); + if (originalTypeEvent in customEvents) { + const wrapFunction = fn => { return function (event) { if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { return fn.call(this, event); } }; }; - if (delegationFn) { - delegationFn = wrapFn(delegationFn); - } else { - handler = wrapFn(handler); - } + callable = wrapFunction(callable); } - const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); - const events = getEvent(element); + const events = getElementEvents(element); const handlers = events[typeEvent] || (events[typeEvent] = {}); - const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); - if (previousFn) { - previousFn.oneOff = previousFn.oneOff && oneOff; + const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); + if (previousFunction) { + previousFunction.oneOff = previousFunction.oneOff && oneOff; return; } - const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); - const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); - fn.delegationSelector = delegation ? handler : null; - fn.originalHandler = originalHandler; + const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, '')); + const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); + fn.delegationSelector = isDelegated ? handler : null; + fn.callable = callable; fn.oneOff = oneOff; fn.uidEvent = uid; handlers[uid] = fn; - element.addEventListener(typeEvent, fn, delegation); + element.addEventListener(typeEvent, fn, isDelegated); } function removeHandler(element, events, typeEvent, handler, delegationSelector) { const fn = findHandler(events[typeEvent], handler, delegationSelector); @@ -4964,52 +4954,52 @@ } function removeNamespacedHandlers(element, events, typeEvent, namespace) { const storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(handlerKey => { + for (const handlerKey of Object.keys(storeElementEvent)) { if (handlerKey.includes(namespace)) { const event = storeElementEvent[handlerKey]; - removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); } - }); + } } function getTypeEvent(event) { event = event.replace(stripNameRegex, ''); return customEvents[event] || event; } const EventHandler = { - on(element, event, handler, delegationFn) { - addHandler(element, event, handler, delegationFn, false); + on(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, false); }, - one(element, event, handler, delegationFn) { - addHandler(element, event, handler, delegationFn, true); + one(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, true); }, - off(element, originalTypeEvent, handler, delegationFn) { + off(element, originalTypeEvent, handler, delegationFunction) { if (typeof originalTypeEvent !== 'string' || !element) { return; } - const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn); + const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); const inNamespace = typeEvent !== originalTypeEvent; - const events = getEvent(element); + const events = getElementEvents(element); + const storeElementEvent = events[typeEvent] || {}; const isNamespace = originalTypeEvent.startsWith('.'); - if (typeof originalHandler !== 'undefined') { - if (!events || !events[typeEvent]) { + if (typeof callable !== 'undefined') { + if (!Object.keys(storeElementEvent).length) { return; } - removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null); + removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); return; } if (isNamespace) { - Object.keys(events).forEach(elementEvent => { + for (const elementEvent of Object.keys(events)) { removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); - }); + } } - const storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(keyHandlers => { + for (const keyHandlers of Object.keys(storeElementEvent)) { const handlerKey = keyHandlers.replace(stripUidRegex, ''); if (!inNamespace || originalTypeEvent.includes(handlerKey)) { const event = storeElementEvent[keyHandlers]; - removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); } - }); + } }, trigger(element, event, args) { if (typeof event !== 'string' || !element) { @@ -5018,12 +5008,10 @@ const $ = getjQuery(); const typeEvent = getTypeEvent(event); const inNamespace = event !== typeEvent; - const isNative = nativeEvents.has(typeEvent); - let jQueryEvent; + let jQueryEvent = null; let bubbles = true; let nativeDispatch = true; let defaultPrevented = false; - let evt = null; if (inNamespace && $) { jQueryEvent = $.Event(event, args); $(element).trigger(jQueryEvent); @@ -5031,36 +5019,38 @@ nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); defaultPrevented = jQueryEvent.isDefaultPrevented(); } - if (isNative) { - evt = document.createEvent('HTMLEvents'); - evt.initEvent(typeEvent, bubbles, true); - } else { - evt = new CustomEvent(event, { - bubbles, - cancelable: true - }); - } - if (typeof args !== 'undefined') { - Object.keys(args).forEach(key => { - Object.defineProperty(evt, key, { - get() { - return args[key]; - } - }); - }); - } + let evt = new Event(event, { + bubbles, + cancelable: true + }); + evt = hydrateObj(evt, args); if (defaultPrevented) { evt.preventDefault(); } if (nativeDispatch) { element.dispatchEvent(evt); } - if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') { + if (evt.defaultPrevented && jQueryEvent) { jQueryEvent.preventDefault(); } return evt; } }; + function hydrateObj(obj, meta) { + for (const [key, value] of Object.entries(meta || {})) { + try { + obj[key] = value; + } catch (_unused) { + Object.defineProperty(obj, key, { + configurable: true, + get() { + return value; + } + }); + } + } + return obj; + } const elementMap = new Map(); const Data = { set(element, key, instance) { @@ -5091,26 +5081,121 @@ } } }; - const VERSION = '5.1.3'; - class BaseComponent { - constructor(element) { + function normalizeData(value) { + if (value === 'true') { + return true; + } + if (value === 'false') { + return false; + } + if (value === Number(value).toString()) { + return Number(value); + } + if (value === '' || value === 'null') { + return null; + } + if (typeof value !== 'string') { + return value; + } + try { + return JSON.parse(decodeURIComponent(value)); + } catch (_unused) { + return value; + } + } + function normalizeDataKey(key) { + return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); + } + const Manipulator = { + setDataAttribute(element, key, value) { + element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); + }, + removeDataAttribute(element, key) { + element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); + }, + getDataAttributes(element) { + if (!element) { + return {}; + } + const attributes = {}; + const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig')); + for (const key of bsKeys) { + let pureKey = key.replace(/^bs/, ''); + pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); + attributes[pureKey] = normalizeData(element.dataset[key]); + } + return attributes; + }, + getDataAttribute(element, key) { + return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); + } + }; + class Config { + static get Default() { + return {}; + } + static get DefaultType() { + return {}; + } + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!'); + } + _getConfig(config) { + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { + return config; + } + _mergeConfigObj(config, element) { + const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; + return { ...this.constructor.Default, + ...(typeof jsonConfig === 'object' ? jsonConfig : {}), + ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), + ...(typeof config === 'object' ? config : {}) + }; + } + _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { + for (const property of Object.keys(configTypes)) { + const expectedTypes = configTypes[property]; + const value = config[property]; + const valueType = isElement(value) ? 'element' : toType(value); + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); + } + } + } + } + const VERSION = '5.2.0'; + class BaseComponent extends Config { + constructor(element, config) { + super(); element = getElement(element); if (!element) { return; } this._element = element; + this._config = this._getConfig(config); Data.set(this._element, this.constructor.DATA_KEY, this); } dispose() { Data.remove(this._element, this.constructor.DATA_KEY); EventHandler.off(this._element, this.constructor.EVENT_KEY); - Object.getOwnPropertyNames(this).forEach(propertyName => { + for (const propertyName of Object.getOwnPropertyNames(this)) { this[propertyName] = null; - }); + } } _queueCallback(callback, element, isAnimated = true) { executeAfterTransition(callback, element, isAnimated); } + _getConfig(config) { + config = this._mergeConfigObj(config, this._element); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } static getInstance(element) { return Data.get(getElement(element), this.DATA_KEY); } @@ -5120,15 +5205,15 @@ static get VERSION() { return VERSION; } - static get NAME() { - throw new Error('You have to implement the static method "NAME", for each component!'); - } static get DATA_KEY() { return `bs.${this.NAME}`; } static get EVENT_KEY() { return `.${this.DATA_KEY}`; } + static eventName(name) { + return `${name}${this.EVENT_KEY}`; + } } const enableDismissTrigger = (component, method = 'hide') => { const clickEvent = `click.dismiss${component.EVENT_KEY}`; @@ -5145,16 +5230,16 @@ instance[method](); }); }; - const NAME$d = 'alert'; - const DATA_KEY$c = 'bs.alert'; - const EVENT_KEY$c = `.${DATA_KEY$c}`; - const EVENT_CLOSE = `close${EVENT_KEY$c}`; - const EVENT_CLOSED = `closed${EVENT_KEY$c}`; + const NAME$f = 'alert'; + const DATA_KEY$a = 'bs.alert'; + const EVENT_KEY$b = `.${DATA_KEY$a}`; + const EVENT_CLOSE = `close${EVENT_KEY$b}`; + const EVENT_CLOSED = `closed${EVENT_KEY$b}`; const CLASS_NAME_FADE$5 = 'fade'; const CLASS_NAME_SHOW$8 = 'show'; class Alert extends BaseComponent { static get NAME() { - return NAME$d; + return NAME$f; } close() { const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); @@ -5185,16 +5270,16 @@ } enableDismissTrigger(Alert, 'close'); defineJQueryPlugin(Alert); - const NAME$c = 'button'; - const DATA_KEY$b = 'bs.button'; - const EVENT_KEY$b = `.${DATA_KEY$b}`; - const DATA_API_KEY$7 = '.data-api'; + const NAME$e = 'button'; + const DATA_KEY$9 = 'bs.button'; + const EVENT_KEY$a = `.${DATA_KEY$9}`; + const DATA_API_KEY$6 = '.data-api'; const CLASS_NAME_ACTIVE$3 = 'active'; const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; - const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$b}${DATA_API_KEY$7}`; + const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; class Button extends BaseComponent { static get NAME() { - return NAME$c; + return NAME$e; } toggle() { this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); @@ -5215,61 +5300,6 @@ data.toggle(); }); defineJQueryPlugin(Button); - function normalizeData(val) { - if (val === 'true') { - return true; - } - if (val === 'false') { - return false; - } - if (val === Number(val).toString()) { - return Number(val); - } - if (val === '' || val === 'null') { - return null; - } - return val; - } - function normalizeDataKey(key) { - return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); - } - const Manipulator = { - setDataAttribute(element, key, value) { - element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); - }, - removeDataAttribute(element, key) { - element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); - }, - getDataAttributes(element) { - if (!element) { - return {}; - } - const attributes = {}; - Object.keys(element.dataset).filter(key => key.startsWith('bs')).forEach(key => { - let pureKey = key.replace(/^bs/, ''); - pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); - attributes[pureKey] = normalizeData(element.dataset[key]); - }); - return attributes; - }, - getDataAttribute(element, key) { - return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); - }, - offset(element) { - const rect = element.getBoundingClientRect(); - return { - top: rect.top + window.pageYOffset, - left: rect.left + window.pageXOffset - }; - }, - position(element) { - return { - top: element.offsetTop, - left: element.offsetLeft - }; - } - }; - const NODE_TEXT = 3; const SelectorEngine = { find(selector, element = document.documentElement) { return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); @@ -5282,12 +5312,10 @@ }, parents(element, selector) { const parents = []; - let ancestor = element.parentNode; - while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { - if (ancestor.matches(selector)) { - parents.push(ancestor); - } - ancestor = ancestor.parentNode; + let ancestor = element.parentNode.closest(selector); + while (ancestor) { + parents.push(ancestor); + ancestor = ancestor.parentNode.closest(selector); } return parents; }, @@ -5312,55 +5340,123 @@ return []; }, focusableChildren(element) { - const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(', '); + const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(','); return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el)); } }; - const NAME$b = 'carousel'; - const DATA_KEY$a = 'bs.carousel'; - const EVENT_KEY$a = `.${DATA_KEY$a}`; - const DATA_API_KEY$6 = '.data-api'; - const ARROW_LEFT_KEY = 'ArrowLeft'; - const ARROW_RIGHT_KEY = 'ArrowRight'; - const TOUCHEVENT_COMPAT_WAIT = 500; + const NAME$d = 'swipe'; + const EVENT_KEY$9 = '.bs.swipe'; + const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; + const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; + const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; + const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; + const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; + const POINTER_TYPE_TOUCH = 'touch'; + const POINTER_TYPE_PEN = 'pen'; + const CLASS_NAME_POINTER_EVENT = 'pointer-event'; const SWIPE_THRESHOLD = 40; - const Default$a = { - interval: 5000, - keyboard: true, - slide: false, - pause: 'hover', - wrap: true, - touch: true + const Default$c = { + endCallback: null, + leftCallback: null, + rightCallback: null }; - const DefaultType$a = { - interval: '(number|boolean)', - keyboard: 'boolean', - slide: '(boolean|string)', - pause: '(string|boolean)', - wrap: 'boolean', - touch: 'boolean' + const DefaultType$c = { + endCallback: '(function|null)', + leftCallback: '(function|null)', + rightCallback: '(function|null)' }; + class Swipe extends Config { + constructor(element, config) { + super(); + this._element = element; + if (!element || !Swipe.isSupported()) { + return; + } + this._config = this._getConfig(config); + this._deltaX = 0; + this._supportPointerEvents = Boolean(window.PointerEvent); + this._initEvents(); + } + static get Default() { + return Default$c; + } + static get DefaultType() { + return DefaultType$c; + } + static get NAME() { + return NAME$d; + } + dispose() { + EventHandler.off(this._element, EVENT_KEY$9); + } + _start(event) { + if (!this._supportPointerEvents) { + this._deltaX = event.touches[0].clientX; + return; + } + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX; + } + } + _end(event) { + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX - this._deltaX; + } + this._handleSwipe(); + execute(this._config.endCallback); + } + _move(event) { + this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; + } + _handleSwipe() { + const absDeltaX = Math.abs(this._deltaX); + if (absDeltaX <= SWIPE_THRESHOLD) { + return; + } + const direction = absDeltaX / this._deltaX; + this._deltaX = 0; + if (!direction) { + return; + } + execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); + } + _initEvents() { + if (this._supportPointerEvents) { + EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event)); + this._element.classList.add(CLASS_NAME_POINTER_EVENT); + } else { + EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event)); + } + } + _eventIsPointerPenTouch(event) { + return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); + } + static isSupported() { + return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + } + } + const NAME$c = 'carousel'; + const DATA_KEY$8 = 'bs.carousel'; + const EVENT_KEY$8 = `.${DATA_KEY$8}`; + const DATA_API_KEY$5 = '.data-api'; + const ARROW_LEFT_KEY$1 = 'ArrowLeft'; + const ARROW_RIGHT_KEY$1 = 'ArrowRight'; + const TOUCHEVENT_COMPAT_WAIT = 500; const ORDER_NEXT = 'next'; const ORDER_PREV = 'prev'; const DIRECTION_LEFT = 'left'; const DIRECTION_RIGHT = 'right'; - const KEY_TO_DIRECTION = { - [ARROW_LEFT_KEY]: DIRECTION_RIGHT, - [ARROW_RIGHT_KEY]: DIRECTION_LEFT - }; - const EVENT_SLIDE = `slide${EVENT_KEY$a}`; - const EVENT_SLID = `slid${EVENT_KEY$a}`; - const EVENT_KEYDOWN = `keydown${EVENT_KEY$a}`; - const EVENT_MOUSEENTER = `mouseenter${EVENT_KEY$a}`; - const EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY$a}`; - const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$a}`; - const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$a}`; - const EVENT_TOUCHEND = `touchend${EVENT_KEY$a}`; - const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$a}`; - const EVENT_POINTERUP = `pointerup${EVENT_KEY$a}`; - const EVENT_DRAG_START = `dragstart${EVENT_KEY$a}`; - const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$a}${DATA_API_KEY$6}`; - const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; + const EVENT_SLIDE = `slide${EVENT_KEY$8}`; + const EVENT_SLID = `slid${EVENT_KEY$8}`; + const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`; + const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`; + const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`; + const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`; + const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`; + const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; const CLASS_NAME_CAROUSEL = 'carousel'; const CLASS_NAME_ACTIVE$2 = 'active'; const CLASS_NAME_SLIDE = 'slide'; @@ -5368,40 +5464,55 @@ const CLASS_NAME_START = 'carousel-item-start'; const CLASS_NAME_NEXT = 'carousel-item-next'; const CLASS_NAME_PREV = 'carousel-item-prev'; - const CLASS_NAME_POINTER_EVENT = 'pointer-event'; - const SELECTOR_ACTIVE$1 = '.active'; - const SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; + const SELECTOR_ACTIVE = '.active'; const SELECTOR_ITEM = '.carousel-item'; + const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM; const SELECTOR_ITEM_IMG = '.carousel-item img'; - const SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; const SELECTOR_INDICATORS = '.carousel-indicators'; - const SELECTOR_INDICATOR = '[data-bs-target]'; const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; - const POINTER_TYPE_TOUCH = 'touch'; - const POINTER_TYPE_PEN = 'pen'; + const KEY_TO_DIRECTION = { + [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, + [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT + }; + const Default$b = { + interval: 5000, + keyboard: true, + pause: 'hover', + ride: false, + touch: true, + wrap: true + }; + const DefaultType$b = { + interval: '(number|boolean)', + keyboard: 'boolean', + pause: '(string|boolean)', + ride: '(boolean|string)', + touch: 'boolean', + wrap: 'boolean' + }; class Carousel extends BaseComponent { constructor(element, config) { - super(element); - this._items = null; + super(element, config); this._interval = null; this._activeElement = null; - this._isPaused = false; this._isSliding = false; this.touchTimeout = null; - this.touchStartX = 0; - this.touchDeltaX = 0; - this._config = this._getConfig(config); + this._swipeHelper = null; this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); - this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; - this._pointerEvent = Boolean(window.PointerEvent); this._addEventListeners(); + if (this._config.ride === CLASS_NAME_CAROUSEL) { + this.cycle(); + } } static get Default() { - return Default$a; + return Default$b; + } + static get DefaultType() { + return DefaultType$b; } static get NAME() { - return NAME$b; + return NAME$c; } next() { this._slide(ORDER_NEXT); @@ -5414,119 +5525,85 @@ prev() { this._slide(ORDER_PREV); } - pause(event) { - if (!event) { - this._isPaused = true; - } - if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) { + pause() { + if (this._isSliding) { triggerTransitionEnd(this._element); - this.cycle(true); } - clearInterval(this._interval); - this._interval = null; + this._clearInterval(); } - cycle(event) { - if (!event) { - this._isPaused = false; + cycle() { + this._clearInterval(); + this._updateInterval(); + this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); + } + _maybeEnableCycle() { + if (!this._config.ride) { + return; } - if (this._interval) { - clearInterval(this._interval); - this._interval = null; - } - if (this._config && this._config.interval && !this._isPaused) { - this._updateInterval(); - this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); + return; } + this.cycle(); } to(index) { - this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - const activeIndex = this._getItemIndex(this._activeElement); - if (index > this._items.length - 1 || index < 0) { + const items = this._getItems(); + if (index > items.length - 1 || index < 0) { return; } if (this._isSliding) { EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); return; } + const activeIndex = this._getItemIndex(this._getActive()); if (activeIndex === index) { - this.pause(); - this.cycle(); return; } const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; - this._slide(order, this._items[index]); + this._slide(order, items[index]); } - _getConfig(config) { - config = { ...Default$a, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' ? config : {}) - }; - typeCheckConfig(NAME$b, config, DefaultType$a); + dispose() { + if (this._swipeHelper) { + this._swipeHelper.dispose(); + } + super.dispose(); + } + _configAfterMerge(config) { + config.defaultInterval = config.interval; return config; } - _handleSwipe() { - const absDeltax = Math.abs(this.touchDeltaX); - if (absDeltax <= SWIPE_THRESHOLD) { - return; - } - const direction = absDeltax / this.touchDeltaX; - this.touchDeltaX = 0; - if (!direction) { - return; - } - this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT); - } _addEventListeners() { if (this._config.keyboard) { - EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); + EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event)); } if (this._config.pause === 'hover') { - EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event)); - EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event)); + EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); + EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); } - if (this._config.touch && this._touchSupported) { + if (this._config.touch && Swipe.isSupported()) { this._addTouchEventListeners(); } } _addTouchEventListeners() { - const hasPointerPenTouch = event => { - return this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); - }; - const start = event => { - if (hasPointerPenTouch(event)) { - this.touchStartX = event.clientX; - } else if (!this._pointerEvent) { - this.touchStartX = event.touches[0].clientX; - } - }; - const move = event => { - this.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this.touchStartX; - }; - const end = event => { - if (hasPointerPenTouch(event)) { - this.touchDeltaX = event.clientX - this.touchStartX; - } - this._handleSwipe(); - if (this._config.pause === 'hover') { - this.pause(); - if (this.touchTimeout) { - clearTimeout(this.touchTimeout); - } - this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval); - } - }; - SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => { - EventHandler.on(itemImg, EVENT_DRAG_START, event => event.preventDefault()); - }); - if (this._pointerEvent) { - EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event)); - EventHandler.on(this._element, EVENT_POINTERUP, event => end(event)); - this._element.classList.add(CLASS_NAME_POINTER_EVENT); - } else { - EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event)); - EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event)); - EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event)); + for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { + EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault()); } + const endCallBack = () => { + if (this._config.pause !== 'hover') { + return; + } + this.pause(); + if (this.touchTimeout) { + clearTimeout(this.touchTimeout); + } + this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval); + }; + const swipeConfig = { + leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), + rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), + endCallback: endCallBack + }; + this._swipeHelper = new Swipe(this._element, swipeConfig); } _keydown(event) { if (/input|textarea/i.test(event.target.tagName)) { @@ -5535,207 +5612,162 @@ const direction = KEY_TO_DIRECTION[event.key]; if (direction) { event.preventDefault(); - this._slide(direction); + this._slide(this._directionToOrder(direction)); } } _getItemIndex(element) { - this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : []; - return this._items.indexOf(element); + return this._getItems().indexOf(element); } - _getItemByOrder(order, activeElement) { - const isNext = order === ORDER_NEXT; - return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap); - } - _triggerSlideEvent(relatedTarget, eventDirectionName) { - const targetIndex = this._getItemIndex(relatedTarget); - const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)); - return EventHandler.trigger(this._element, EVENT_SLIDE, { - relatedTarget, - direction: eventDirectionName, - from: fromIndex, - to: targetIndex - }); - } - _setActiveIndicatorElement(element) { - if (this._indicatorsElement) { - const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement); - activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); - activeIndicator.removeAttribute('aria-current'); - const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement); - for (let i = 0; i < indicators.length; i++) { - if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) { - indicators[i].classList.add(CLASS_NAME_ACTIVE$2); - indicators[i].setAttribute('aria-current', 'true'); - break; - } - } + _setActiveIndicatorElement(index) { + if (!this._indicatorsElement) { + return; + } + const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); + activeIndicator.removeAttribute('aria-current'); + const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement); + if (newActiveIndicator) { + newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2); + newActiveIndicator.setAttribute('aria-current', 'true'); } } _updateInterval() { - const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + const element = this._activeElement || this._getActive(); if (!element) { return; } const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); - if (elementInterval) { - this._config.defaultInterval = this._config.defaultInterval || this._config.interval; - this._config.interval = elementInterval; - } else { - this._config.interval = this._config.defaultInterval || this._config.interval; - } + this._config.interval = elementInterval || this._config.defaultInterval; } - _slide(directionOrOrder, element) { - const order = this._directionToOrder(directionOrOrder); - const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); - const activeElementIndex = this._getItemIndex(activeElement); - const nextElement = element || this._getItemByOrder(order, activeElement); - const nextElementIndex = this._getItemIndex(nextElement); - const isCycling = Boolean(this._interval); - const isNext = order === ORDER_NEXT; - const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; - const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; - const eventDirectionName = this._orderToDirection(order); - if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) { - this._isSliding = false; - return; - } + _slide(order, element = null) { if (this._isSliding) { return; } - const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); + const activeElement = this._getActive(); + const isNext = order === ORDER_NEXT; + const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); + if (nextElement === activeElement) { + return; + } + const nextElementIndex = this._getItemIndex(nextElement); + const triggerEvent = eventName => { + return EventHandler.trigger(this._element, eventName, { + relatedTarget: nextElement, + direction: this._orderToDirection(order), + from: this._getItemIndex(activeElement), + to: nextElementIndex + }); + }; + const slideEvent = triggerEvent(EVENT_SLIDE); if (slideEvent.defaultPrevented) { return; } if (!activeElement || !nextElement) { return; } + const isCycling = Boolean(this._interval); + this.pause(); this._isSliding = true; - if (isCycling) { - this.pause(); - } - this._setActiveIndicatorElement(nextElement); + this._setActiveIndicatorElement(nextElementIndex); this._activeElement = nextElement; - const triggerSlidEvent = () => { - EventHandler.trigger(this._element, EVENT_SLID, { - relatedTarget: nextElement, - direction: eventDirectionName, - from: activeElementIndex, - to: nextElementIndex - }); - }; - if (this._element.classList.contains(CLASS_NAME_SLIDE)) { - nextElement.classList.add(orderClassName); - reflow(nextElement); - activeElement.classList.add(directionalClassName); - nextElement.classList.add(directionalClassName); - const completeCallBack = () => { - nextElement.classList.remove(directionalClassName, orderClassName); - nextElement.classList.add(CLASS_NAME_ACTIVE$2); - activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); - this._isSliding = false; - setTimeout(triggerSlidEvent, 0); - }; - this._queueCallback(completeCallBack, activeElement, true); - } else { - activeElement.classList.remove(CLASS_NAME_ACTIVE$2); + const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; + const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; + nextElement.classList.add(orderClassName); + reflow(nextElement); + activeElement.classList.add(directionalClassName); + nextElement.classList.add(directionalClassName); + const completeCallBack = () => { + nextElement.classList.remove(directionalClassName, orderClassName); nextElement.classList.add(CLASS_NAME_ACTIVE$2); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); this._isSliding = false; - triggerSlidEvent(); - } + triggerEvent(EVENT_SLID); + }; + this._queueCallback(completeCallBack, activeElement, this._isAnimated()); if (isCycling) { this.cycle(); } } - _directionToOrder(direction) { - if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) { - return direction; + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_SLIDE); + } + _getActive() { + return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + } + _getItems() { + return SelectorEngine.find(SELECTOR_ITEM, this._element); + } + _clearInterval() { + if (this._interval) { + clearInterval(this._interval); + this._interval = null; } + } + _directionToOrder(direction) { if (isRTL()) { return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; } return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; } _orderToDirection(order) { - if (![ORDER_NEXT, ORDER_PREV].includes(order)) { - return order; - } if (isRTL()) { return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; } return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; } - static carouselInterface(element, config) { - const data = Carousel.getOrCreateInstance(element, config); - let { - _config - } = data; - if (typeof config === 'object') { - _config = { ..._config, - ...config - }; - } - const action = typeof config === 'string' ? config : _config.slide; - if (typeof config === 'number') { - data.to(config); - } else if (typeof action === 'string') { - if (typeof data[action] === 'undefined') { - throw new TypeError(`No method named "${action}"`); - } - data[action](); - } else if (_config.interval && _config.ride) { - data.pause(); - data.cycle(); - } - } static jQueryInterface(config) { return this.each(function () { - Carousel.carouselInterface(this, config); + const data = Carousel.getOrCreateInstance(this, config); + if (typeof config === 'number') { + data.to(config); + return; + } + if (typeof config === 'string') { + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + } }); } - static dataApiClickHandler(event) { - const target = getElementFromSelector(this); - if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { - return; - } - const config = { ...Manipulator.getDataAttributes(target), - ...Manipulator.getDataAttributes(this) - }; - const slideIndex = this.getAttribute('data-bs-slide-to'); - if (slideIndex) { - config.interval = false; - } - Carousel.carouselInterface(target, config); - if (slideIndex) { - Carousel.getInstance(target).to(slideIndex); - } - event.preventDefault(); - } } - EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); - EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { + EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) { + const target = getElementFromSelector(this); + if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { + return; + } + event.preventDefault(); + const carousel = Carousel.getOrCreateInstance(target); + const slideIndex = this.getAttribute('data-bs-slide-to'); + if (slideIndex) { + carousel.to(slideIndex); + carousel._maybeEnableCycle(); + return; + } + if (Manipulator.getDataAttribute(this, 'slide') === 'next') { + carousel.next(); + carousel._maybeEnableCycle(); + return; + } + carousel.prev(); + carousel._maybeEnableCycle(); + }); + EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => { const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); - for (let i = 0, len = carousels.length; i < len; i++) { - Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i])); + for (const carousel of carousels) { + Carousel.getOrCreateInstance(carousel); } }); defineJQueryPlugin(Carousel); - const NAME$a = 'collapse'; - const DATA_KEY$9 = 'bs.collapse'; - const EVENT_KEY$9 = `.${DATA_KEY$9}`; - const DATA_API_KEY$5 = '.data-api'; - const Default$9 = { - toggle: true, - parent: null - }; - const DefaultType$9 = { - toggle: 'boolean', - parent: '(null|element)' - }; - const EVENT_SHOW$5 = `show${EVENT_KEY$9}`; - const EVENT_SHOWN$5 = `shown${EVENT_KEY$9}`; - const EVENT_HIDE$5 = `hide${EVENT_KEY$9}`; - const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$9}`; - const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$9}${DATA_API_KEY$5}`; + const NAME$b = 'collapse'; + const DATA_KEY$7 = 'bs.collapse'; + const EVENT_KEY$7 = `.${DATA_KEY$7}`; + const DATA_API_KEY$4 = '.data-api'; + const EVENT_SHOW$6 = `show${EVENT_KEY$7}`; + const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`; + const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`; + const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`; + const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; const CLASS_NAME_SHOW$7 = 'show'; const CLASS_NAME_COLLAPSE = 'collapse'; const CLASS_NAME_COLLAPSING = 'collapsing'; @@ -5746,19 +5778,24 @@ const HEIGHT = 'height'; const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; + const Default$a = { + parent: null, + toggle: true + }; + const DefaultType$a = { + parent: '(null|element)', + toggle: 'boolean' + }; class Collapse extends BaseComponent { constructor(element, config) { - super(element); + super(element, config); this._isTransitioning = false; - this._config = this._getConfig(config); this._triggerArray = []; const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); - for (let i = 0, len = toggleList.length; i < len; i++) { - const elem = toggleList[i]; + for (const elem of toggleList) { const selector = getSelectorFromElement(elem); - const filterElement = SelectorEngine.find(selector).filter(foundElem => foundElem === this._element); + const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element); if (selector !== null && filterElement.length) { - this._selector = selector; this._triggerArray.push(elem); } } @@ -5771,10 +5808,13 @@ } } static get Default() { - return Default$9; + return Default$a; + } + static get DefaultType() { + return DefaultType$a; } static get NAME() { - return NAME$a; + return NAME$b; } toggle() { if (this._isShown()) { @@ -5787,34 +5827,22 @@ if (this._isTransitioning || this._isShown()) { return; } - let actives = []; - let activesData; + let activeChildren = []; if (this._config.parent) { - const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); - actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(elem => !children.includes(elem)); + activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, { + toggle: false + })); } - const container = SelectorEngine.findOne(this._selector); - if (actives.length) { - const tempActiveData = actives.find(elem => container !== elem); - activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null; - if (activesData && activesData._isTransitioning) { - return; - } + if (activeChildren.length && activeChildren[0]._isTransitioning) { + return; } - const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5); + const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6); if (startEvent.defaultPrevented) { return; } - actives.forEach(elemActive => { - if (container !== elemActive) { - Collapse.getOrCreateInstance(elemActive, { - toggle: false - }).hide(); - } - if (!activesData) { - Data.set(elemActive, DATA_KEY$9, null); - } - }); + for (const activeInstance of activeChildren) { + activeInstance.hide(); + } const dimension = this._getDimension(); this._element.classList.remove(CLASS_NAME_COLLAPSE); this._element.classList.add(CLASS_NAME_COLLAPSING); @@ -5826,7 +5854,7 @@ this._element.classList.remove(CLASS_NAME_COLLAPSING); this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); this._element.style[dimension] = ''; - EventHandler.trigger(this._element, EVENT_SHOWN$5); + EventHandler.trigger(this._element, EVENT_SHOWN$6); }; const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); const scrollSize = `scroll${capitalizedDimension}`; @@ -5837,7 +5865,7 @@ if (this._isTransitioning || !this._isShown()) { return; } - const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5); + const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6); if (startEvent.defaultPrevented) { return; } @@ -5846,11 +5874,9 @@ reflow(this._element); this._element.classList.add(CLASS_NAME_COLLAPSING); this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); - const triggerArrayLength = this._triggerArray.length; - for (let i = 0; i < triggerArrayLength; i++) { - const trigger = this._triggerArray[i]; - const elem = getElementFromSelector(trigger); - if (elem && !this._isShown(elem)) { + for (const trigger of this._triggerArray) { + const element = getElementFromSelector(trigger); + if (element && !this._isShown(element)) { this._addAriaAndCollapsedClass([trigger], false); } } @@ -5859,7 +5885,7 @@ this._isTransitioning = false; this._element.classList.remove(CLASS_NAME_COLLAPSING); this._element.classList.add(CLASS_NAME_COLLAPSE); - EventHandler.trigger(this._element, EVENT_HIDDEN$5); + EventHandler.trigger(this._element, EVENT_HIDDEN$6); }; this._element.style[dimension] = ''; this._queueCallback(complete, this._element, true); @@ -5867,14 +5893,9 @@ _isShown(element = this._element) { return element.classList.contains(CLASS_NAME_SHOW$7); } - _getConfig(config) { - config = { ...Default$9, - ...Manipulator.getDataAttributes(this._element), - ...config - }; + _configAfterMerge(config) { config.toggle = Boolean(config.toggle); config.parent = getElement(config.parent); - typeCheckConfig(NAME$a, config, DefaultType$9); return config; } _getDimension() { @@ -5884,33 +5905,33 @@ if (!this._config.parent) { return; } - const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); - SelectorEngine.find(SELECTOR_DATA_TOGGLE$4, this._config.parent).filter(elem => !children.includes(elem)).forEach(element => { + const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4); + for (const element of children) { const selected = getElementFromSelector(element); if (selected) { this._addAriaAndCollapsedClass([element], this._isShown(selected)); } - }); + } + } + _getFirstLevelChildren(selector) { + const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); + return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element)); } _addAriaAndCollapsedClass(triggerArray, isOpen) { if (!triggerArray.length) { return; } - triggerArray.forEach(elem => { - if (isOpen) { - elem.classList.remove(CLASS_NAME_COLLAPSED); - } else { - elem.classList.add(CLASS_NAME_COLLAPSED); - } - elem.setAttribute('aria-expanded', isOpen); - }); + for (const element of triggerArray) { + element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); + element.setAttribute('aria-expanded', isOpen); + } } static jQueryInterface(config) { + const _config = {}; + if (typeof config === 'string' && /show|hide/.test(config)) { + _config.toggle = false; + } return this.each(function () { - const _config = {}; - if (typeof config === 'string' && /show|hide/.test(config)) { - _config.toggle = false; - } const data = Collapse.getOrCreateInstance(this, _config); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { @@ -5927,38 +5948,39 @@ } const selector = getSelectorFromElement(this); const selectorElements = SelectorEngine.find(selector); - selectorElements.forEach(element => { + for (const element of selectorElements) { Collapse.getOrCreateInstance(element, { toggle: false }).toggle(); - }); + } }); defineJQueryPlugin(Collapse); - const NAME$9 = 'dropdown'; - const DATA_KEY$8 = 'bs.dropdown'; - const EVENT_KEY$8 = `.${DATA_KEY$8}`; - const DATA_API_KEY$4 = '.data-api'; + const NAME$a = 'dropdown'; + const DATA_KEY$6 = 'bs.dropdown'; + const EVENT_KEY$6 = `.${DATA_KEY$6}`; + const DATA_API_KEY$3 = '.data-api'; const ESCAPE_KEY$2 = 'Escape'; - const SPACE_KEY = 'Space'; const TAB_KEY$1 = 'Tab'; - const ARROW_UP_KEY = 'ArrowUp'; - const ARROW_DOWN_KEY = 'ArrowDown'; + const ARROW_UP_KEY$1 = 'ArrowUp'; + const ARROW_DOWN_KEY$1 = 'ArrowDown'; const RIGHT_MOUSE_BUTTON = 2; - const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`); - const EVENT_HIDE$4 = `hide${EVENT_KEY$8}`; - const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$8}`; - const EVENT_SHOW$4 = `show${EVENT_KEY$8}`; - const EVENT_SHOWN$4 = `shown${EVENT_KEY$8}`; - const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$8}${DATA_API_KEY$4}`; - const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$8}${DATA_API_KEY$4}`; - const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$8}${DATA_API_KEY$4}`; + const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`; + const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`; + const EVENT_SHOW$5 = `show${EVENT_KEY$6}`; + const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`; + const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; + const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`; + const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`; const CLASS_NAME_SHOW$6 = 'show'; const CLASS_NAME_DROPUP = 'dropup'; const CLASS_NAME_DROPEND = 'dropend'; const CLASS_NAME_DROPSTART = 'dropstart'; - const CLASS_NAME_NAVBAR = 'navbar'; - const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]'; + const CLASS_NAME_DROPUP_CENTER = 'dropup-center'; + const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'; + const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'; + const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`; const SELECTOR_MENU = '.dropdown-menu'; + const SELECTOR_NAVBAR = '.navbar'; const SELECTOR_NAVBAR_NAV = '.navbar-nav'; const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; @@ -5967,70 +5989,69 @@ const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; - const Default$8 = { - offset: [0, 2], + const PLACEMENT_TOPCENTER = 'top'; + const PLACEMENT_BOTTOMCENTER = 'bottom'; + const Default$9 = { + autoClose: true, boundary: 'clippingParents', - reference: 'toggle', display: 'dynamic', + offset: [0, 2], popperConfig: null, - autoClose: true + reference: 'toggle' }; - const DefaultType$8 = { - offset: '(array|string|function)', + const DefaultType$9 = { + autoClose: '(boolean|string)', boundary: '(string|element)', - reference: '(string|element|object)', display: 'string', + offset: '(array|string|function)', popperConfig: '(null|object|function)', - autoClose: '(boolean|string)' + reference: '(string|element|object)' }; class Dropdown extends BaseComponent { constructor(element, config) { - super(element); + super(element, config); this._popper = null; - this._config = this._getConfig(config); - this._menu = this._getMenuElement(); + this._parent = this._element.parentNode; + this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._inNavbar = this._detectNavbar(); } static get Default() { - return Default$8; + return Default$9; } static get DefaultType() { - return DefaultType$8; + return DefaultType$9; } static get NAME() { - return NAME$9; + return NAME$a; } toggle() { return this._isShown() ? this.hide() : this.show(); } show() { - if (isDisabled(this._element) || this._isShown(this._menu)) { + if (isDisabled(this._element) || this._isShown()) { return; } const relatedTarget = { relatedTarget: this._element }; - const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget); + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget); if (showEvent.defaultPrevented) { return; } - const parent = Dropdown.getParentFromElement(this._element); - if (this._inNavbar) { - Manipulator.setDataAttribute(this._menu, 'popper', 'none'); - } else { - this._createPopper(parent); - } - if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) { - [].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', noop)); + this._createPopper(); + if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { + for (const element of [].concat(...document.body.children)) { + EventHandler.on(element, 'mouseover', noop); + } } this._element.focus(); this._element.setAttribute('aria-expanded', true); this._menu.classList.add(CLASS_NAME_SHOW$6); this._element.classList.add(CLASS_NAME_SHOW$6); - EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget); + EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget); } hide() { - if (isDisabled(this._element) || !this._isShown(this._menu)) { + if (isDisabled(this._element) || !this._isShown()) { return; } const relatedTarget = { @@ -6051,12 +6072,14 @@ } } _completeHide(relatedTarget) { - const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget); if (hideEvent.defaultPrevented) { return; } if ('ontouchstart' in document.documentElement) { - [].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', noop)); + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, 'mouseover', noop); + } } if (this._popper) { this._popper.destroy(); @@ -6065,52 +6088,47 @@ this._element.classList.remove(CLASS_NAME_SHOW$6); this._element.setAttribute('aria-expanded', 'false'); Manipulator.removeDataAttribute(this._menu, 'popper'); - EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget); + EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget); } _getConfig(config) { - config = { ...this.constructor.Default, - ...Manipulator.getDataAttributes(this._element), - ...config - }; - typeCheckConfig(NAME$9, config, this.constructor.DefaultType); + config = super._getConfig(config); if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { - throw new TypeError(`${NAME$9.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); + throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); } return config; } - _createPopper(parent) { + _createPopper() { if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); } let referenceElement = this._element; if (this._config.reference === 'parent') { - referenceElement = parent; + referenceElement = this._parent; } else if (isElement(this._config.reference)) { referenceElement = getElement(this._config.reference); } else if (typeof this._config.reference === 'object') { referenceElement = this._config.reference; } const popperConfig = this._getPopperConfig(); - const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false); this._popper = createPopper(referenceElement, this._menu, popperConfig); - if (isDisplayStatic) { - Manipulator.setDataAttribute(this._menu, 'popper', 'static'); - } } - _isShown(element = this._element) { - return element.classList.contains(CLASS_NAME_SHOW$6); - } - _getMenuElement() { - return SelectorEngine.next(this._element, SELECTOR_MENU)[0]; + _isShown() { + return this._menu.classList.contains(CLASS_NAME_SHOW$6); } _getPlacement() { - const parentDropdown = this._element.parentNode; + const parentDropdown = this._parent; if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { return PLACEMENT_RIGHT; } if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { return PLACEMENT_LEFT; } + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { + return PLACEMENT_TOPCENTER; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) { + return PLACEMENT_BOTTOMCENTER; + } const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; @@ -6118,14 +6136,14 @@ return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; } _detectNavbar() { - return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null; + return this._element.closest(SELECTOR_NAVBAR) !== null; } _getOffset() { const { offset } = this._config; if (typeof offset === 'string') { - return offset.split(',').map(val => Number.parseInt(val, 10)); + return offset.split(',').map(value => Number.parseInt(value, 10)); } if (typeof offset === 'function') { return popperData => offset(popperData, this._element); @@ -6147,7 +6165,8 @@ } }] }; - if (this._config.display === 'static') { + if (this._inNavbar || this._config.display === 'static') { + Manipulator.setDataAttribute(this._menu, 'popper', 'static'); defaultBsPopperConfig.modifiers = [{ name: 'applyStyles', enabled: false @@ -6161,11 +6180,11 @@ key, target }) { - const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible); + const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element)); if (!items.length) { return; } - getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus(); + getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus(); } static jQueryInterface(config) { return this.each(function () { @@ -6180,68 +6199,55 @@ }); } static clearMenus(event) { - if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1)) { + if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) { return; } - const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3); - for (let i = 0, len = toggles.length; i < len; i++) { - const context = Dropdown.getInstance(toggles[i]); + const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); + for (const toggle of openToggles) { + const context = Dropdown.getInstance(toggle); if (!context || context._config.autoClose === false) { continue; } - if (!context._isShown()) { + const composedPath = event.composedPath(); + const isMenuTarget = composedPath.includes(context._menu); + if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) { + continue; + } + if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { continue; } const relatedTarget = { relatedTarget: context._element }; - if (event) { - const composedPath = event.composedPath(); - const isMenuTarget = composedPath.includes(context._menu); - if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) { - continue; - } - if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { - continue; - } - if (event.type === 'click') { - relatedTarget.clickEvent = event; - } + if (event.type === 'click') { + relatedTarget.clickEvent = event; } context._completeHide(relatedTarget); } } - static getParentFromElement(element) { - return getElementFromSelector(element) || element.parentNode; - } static dataApiKeydownHandler(event) { - if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { + const isInput = /input|textarea/i.test(event.target.tagName); + const isEscapeEvent = event.key === ESCAPE_KEY$2; + const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key); + if (!isUpOrDownEvent && !isEscapeEvent) { return; } - const isActive = this.classList.contains(CLASS_NAME_SHOW$6); - if (!isActive && event.key === ESCAPE_KEY$2) { + if (isInput && !isEscapeEvent) { return; } event.preventDefault(); - event.stopPropagation(); - if (isDisabled(this)) { - return; - } - const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0]; + const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); const instance = Dropdown.getOrCreateInstance(getToggleButton); - if (event.key === ESCAPE_KEY$2) { - instance.hide(); - return; - } - if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) { - if (!isActive) { - instance.show(); - } + if (isUpOrDownEvent) { + event.stopPropagation(); + instance.show(); instance._selectMenuItem(event); return; } - if (!isActive || event.key === SPACE_KEY) { - Dropdown.clearMenus(); + if (instance._isShown()) { + event.stopPropagation(); + instance.hide(); + getToggleButton.focus(); } } } @@ -6256,6 +6262,8 @@ defineJQueryPlugin(Dropdown); const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; const SELECTOR_STICKY_CONTENT = '.sticky-top'; + const PROPERTY_PADDING = 'padding-right'; + const PROPERTY_MARGIN = 'margin-right'; class ScrollBarHelper { constructor() { this._element = document.body; @@ -6267,95 +6275,108 @@ hide() { const width = this.getWidth(); this._disableOverFlow(); - this._setElementAttributes(this._element, 'paddingRight', calculatedValue => calculatedValue + width); - this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width); - this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width); + this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); + this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width); + this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width); + } + reset() { + this._resetElementAttributes(this._element, 'overflow'); + this._resetElementAttributes(this._element, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); + } + isOverflowing() { + return this.getWidth() > 0; } _disableOverFlow() { this._saveInitialAttribute(this._element, 'overflow'); this._element.style.overflow = 'hidden'; } - _setElementAttributes(selector, styleProp, callback) { + _setElementAttributes(selector, styleProperty, callback) { const scrollbarWidth = this.getWidth(); const manipulationCallBack = element => { if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) { return; } - this._saveInitialAttribute(element, styleProp); - const calculatedValue = window.getComputedStyle(element)[styleProp]; - element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`; + this._saveInitialAttribute(element, styleProperty); + const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty); + element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); }; this._applyManipulationCallback(selector, manipulationCallBack); } - reset() { - this._resetElementAttributes(this._element, 'overflow'); - this._resetElementAttributes(this._element, 'paddingRight'); - this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight'); - this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight'); - } - _saveInitialAttribute(element, styleProp) { - const actualValue = element.style[styleProp]; + _saveInitialAttribute(element, styleProperty) { + const actualValue = element.style.getPropertyValue(styleProperty); if (actualValue) { - Manipulator.setDataAttribute(element, styleProp, actualValue); + Manipulator.setDataAttribute(element, styleProperty, actualValue); } } - _resetElementAttributes(selector, styleProp) { + _resetElementAttributes(selector, styleProperty) { const manipulationCallBack = element => { - const value = Manipulator.getDataAttribute(element, styleProp); - if (typeof value === 'undefined') { - element.style.removeProperty(styleProp); - } else { - Manipulator.removeDataAttribute(element, styleProp); - element.style[styleProp] = value; + const value = Manipulator.getDataAttribute(element, styleProperty); + if (value === null) { + element.style.removeProperty(styleProperty); + return; } + Manipulator.removeDataAttribute(element, styleProperty); + element.style.setProperty(styleProperty, value); }; this._applyManipulationCallback(selector, manipulationCallBack); } _applyManipulationCallback(selector, callBack) { if (isElement(selector)) { callBack(selector); - } else { - SelectorEngine.find(selector, this._element).forEach(callBack); + return; + } + for (const sel of SelectorEngine.find(selector, this._element)) { + callBack(sel); } } - isOverflowing() { - return this.getWidth() > 0; - } } - const Default$7 = { - className: 'modal-backdrop', - isVisible: true, - isAnimated: false, - rootElement: 'body', - clickCallback: null - }; - const DefaultType$7 = { - className: 'string', - isVisible: 'boolean', - isAnimated: 'boolean', - rootElement: '(element|string)', - clickCallback: '(function|null)' - }; - const NAME$8 = 'backdrop'; + const NAME$9 = 'backdrop'; const CLASS_NAME_FADE$4 = 'fade'; const CLASS_NAME_SHOW$5 = 'show'; - const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$8}`; - class Backdrop { + const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`; + const Default$8 = { + className: 'modal-backdrop', + clickCallback: null, + isAnimated: false, + isVisible: true, + rootElement: 'body' + }; + const DefaultType$8 = { + className: 'string', + clickCallback: '(function|null)', + isAnimated: 'boolean', + isVisible: 'boolean', + rootElement: '(element|string)' + }; + class Backdrop extends Config { constructor(config) { + super(); this._config = this._getConfig(config); this._isAppended = false; this._element = null; } + static get Default() { + return Default$8; + } + static get DefaultType() { + return DefaultType$8; + } + static get NAME() { + return NAME$9; + } show(callback) { if (!this._config.isVisible) { execute(callback); return; } this._append(); + const element = this._getElement(); if (this._config.isAnimated) { - reflow(this._getElement()); + reflow(element); } - this._getElement().classList.add(CLASS_NAME_SHOW$5); + element.classList.add(CLASS_NAME_SHOW$5); this._emulateAnimation(() => { execute(callback); }); @@ -6371,6 +6392,14 @@ execute(callback); }); } + dispose() { + if (!this._isAppended) { + return; + } + EventHandler.off(this._element, EVENT_MOUSEDOWN); + this._element.remove(); + this._isAppended = false; + } _getElement() { if (!this._element) { const backdrop = document.createElement('div'); @@ -6382,71 +6411,66 @@ } return this._element; } - _getConfig(config) { - config = { ...Default$7, - ...(typeof config === 'object' ? config : {}) - }; + _configAfterMerge(config) { config.rootElement = getElement(config.rootElement); - typeCheckConfig(NAME$8, config, DefaultType$7); return config; } _append() { if (this._isAppended) { return; } - this._config.rootElement.append(this._getElement()); - EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => { + const element = this._getElement(); + this._config.rootElement.append(element); + EventHandler.on(element, EVENT_MOUSEDOWN, () => { execute(this._config.clickCallback); }); this._isAppended = true; } - dispose() { - if (!this._isAppended) { - return; - } - EventHandler.off(this._element, EVENT_MOUSEDOWN); - this._element.remove(); - this._isAppended = false; - } _emulateAnimation(callback) { executeAfterTransition(callback, this._getElement(), this._config.isAnimated); } } - const Default$6 = { - trapElement: null, - autofocus: true - }; - const DefaultType$6 = { - trapElement: 'element', - autofocus: 'boolean' - }; - const NAME$7 = 'focustrap'; - const DATA_KEY$7 = 'bs.focustrap'; - const EVENT_KEY$7 = `.${DATA_KEY$7}`; - const EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$7}`; - const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$7}`; + const NAME$8 = 'focustrap'; + const DATA_KEY$5 = 'bs.focustrap'; + const EVENT_KEY$5 = `.${DATA_KEY$5}`; + const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`; + const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`; const TAB_KEY = 'Tab'; const TAB_NAV_FORWARD = 'forward'; const TAB_NAV_BACKWARD = 'backward'; - class FocusTrap { + const Default$7 = { + autofocus: true, + trapElement: null + }; + const DefaultType$7 = { + autofocus: 'boolean', + trapElement: 'element' + }; + class FocusTrap extends Config { constructor(config) { + super(); this._config = this._getConfig(config); this._isActive = false; this._lastTabNavDirection = null; } + static get Default() { + return Default$7; + } + static get DefaultType() { + return DefaultType$7; + } + static get NAME() { + return NAME$8; + } activate() { - const { - trapElement, - autofocus - } = this._config; if (this._isActive) { return; } - if (autofocus) { - trapElement.focus(); + if (this._config.autofocus) { + this._config.trapElement.focus(); } - EventHandler.off(document, EVENT_KEY$7); - EventHandler.on(document, EVENT_FOCUSIN$1, event => this._handleFocusin(event)); + EventHandler.off(document, EVENT_KEY$5); + EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event)); EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event)); this._isActive = true; } @@ -6455,16 +6479,13 @@ return; } this._isActive = false; - EventHandler.off(document, EVENT_KEY$7); + EventHandler.off(document, EVENT_KEY$5); } _handleFocusin(event) { - const { - target - } = event; const { trapElement } = this._config; - if (target === document || target === trapElement || trapElement.contains(target)) { + if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { return; } const elements = SelectorEngine.focusableChildren(trapElement); @@ -6482,40 +6503,21 @@ } this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; } - _getConfig(config) { - config = { ...Default$6, - ...(typeof config === 'object' ? config : {}) - }; - typeCheckConfig(NAME$7, config, DefaultType$6); - return config; - } } - const NAME$6 = 'modal'; - const DATA_KEY$6 = 'bs.modal'; - const EVENT_KEY$6 = `.${DATA_KEY$6}`; - const DATA_API_KEY$3 = '.data-api'; + const NAME$7 = 'modal'; + const DATA_KEY$4 = 'bs.modal'; + const EVENT_KEY$4 = `.${DATA_KEY$4}`; + const DATA_API_KEY$2 = '.data-api'; const ESCAPE_KEY$1 = 'Escape'; - const Default$5 = { - backdrop: true, - keyboard: true, - focus: true - }; - const DefaultType$5 = { - backdrop: '(boolean|string)', - keyboard: 'boolean', - focus: 'boolean' - }; - const EVENT_HIDE$3 = `hide${EVENT_KEY$6}`; - const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$6}`; - const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$6}`; - const EVENT_SHOW$3 = `show${EVENT_KEY$6}`; - const EVENT_SHOWN$3 = `shown${EVENT_KEY$6}`; - const EVENT_RESIZE = `resize${EVENT_KEY$6}`; - const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$6}`; - const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$6}`; - const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$6}`; - const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`; - const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; + const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; + const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`; + const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; + const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; + const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; + const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; + const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; + const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; + const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; const CLASS_NAME_OPEN = 'modal-open'; const CLASS_NAME_FADE$3 = 'fade'; const CLASS_NAME_SHOW$4 = 'show'; @@ -6524,23 +6526,35 @@ const SELECTOR_DIALOG = '.modal-dialog'; const SELECTOR_MODAL_BODY = '.modal-body'; const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; + const Default$6 = { + backdrop: true, + focus: true, + keyboard: true + }; + const DefaultType$6 = { + backdrop: '(boolean|string)', + focus: 'boolean', + keyboard: 'boolean' + }; class Modal extends BaseComponent { constructor(element, config) { - super(element); - this._config = this._getConfig(config); + super(element, config); this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); this._backdrop = this._initializeBackDrop(); this._focustrap = this._initializeFocusTrap(); this._isShown = false; - this._ignoreBackdropClick = false; this._isTransitioning = false; this._scrollBar = new ScrollBarHelper(); + this._addEventListeners(); } static get Default() { - return Default$5; + return Default$6; + } + static get DefaultType() { + return DefaultType$6; } static get NAME() { - return NAME$6; + return NAME$7; } toggle(relatedTarget) { return this._isShown ? this.hide() : this.show(relatedTarget); @@ -6549,53 +6563,37 @@ if (this._isShown || this._isTransitioning) { return; } - const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, { relatedTarget }); if (showEvent.defaultPrevented) { return; } this._isShown = true; - if (this._isAnimated()) { - this._isTransitioning = true; - } + this._isTransitioning = true; this._scrollBar.hide(); document.body.classList.add(CLASS_NAME_OPEN); this._adjustDialog(); - this._setEscapeEvent(); - this._setResizeEvent(); - EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => { - EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => { - if (event.target === this._element) { - this._ignoreBackdropClick = true; - } - }); - }); - this._showBackdrop(() => this._showElement(relatedTarget)); + this._backdrop.show(() => this._showElement(relatedTarget)); } hide() { if (!this._isShown || this._isTransitioning) { return; } - const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); if (hideEvent.defaultPrevented) { return; } this._isShown = false; - const isAnimated = this._isAnimated(); - if (isAnimated) { - this._isTransitioning = true; - } - this._setEscapeEvent(); - this._setResizeEvent(); + this._isTransitioning = true; this._focustrap.deactivate(); this._element.classList.remove(CLASS_NAME_SHOW$4); - EventHandler.off(this._element, EVENT_CLICK_DISMISS); - EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS); - this._queueCallback(() => this._hideModal(), this._element, isAnimated); + this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); } dispose() { - [window, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6)); + for (const htmlElement of [window, this._dialog]) { + EventHandler.off(htmlElement, EVENT_KEY$4); + } this._backdrop.dispose(); this._focustrap.deactivate(); super.dispose(); @@ -6614,18 +6612,8 @@ trapElement: this._element }); } - _getConfig(config) { - config = { ...Default$5, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' ? config : {}) - }; - typeCheckConfig(NAME$6, config, DefaultType$5); - return config; - } _showElement(relatedTarget) { - const isAnimated = this._isAnimated(); - const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); - if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { + if (!document.body.contains(this._element)) { document.body.append(this._element); } this._element.style.display = 'block'; @@ -6633,44 +6621,52 @@ this._element.setAttribute('aria-modal', true); this._element.setAttribute('role', 'dialog'); this._element.scrollTop = 0; + const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); if (modalBody) { modalBody.scrollTop = 0; } - if (isAnimated) { - reflow(this._element); - } + reflow(this._element); this._element.classList.add(CLASS_NAME_SHOW$4); const transitionComplete = () => { if (this._config.focus) { this._focustrap.activate(); } this._isTransitioning = false; - EventHandler.trigger(this._element, EVENT_SHOWN$3, { + EventHandler.trigger(this._element, EVENT_SHOWN$4, { relatedTarget }); }; - this._queueCallback(transitionComplete, this._dialog, isAnimated); + this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); } - _setEscapeEvent() { - if (this._isShown) { - EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => { - if (this._config.keyboard && event.key === ESCAPE_KEY$1) { - event.preventDefault(); - this.hide(); - } else if (!this._config.keyboard && event.key === ESCAPE_KEY$1) { - this._triggerBackdropTransition(); - } - }); - } else { - EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1); - } - } - _setResizeEvent() { - if (this._isShown) { - EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog()); - } else { - EventHandler.off(window, EVENT_RESIZE); - } + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => { + if (event.key !== ESCAPE_KEY$1) { + return; + } + if (this._config.keyboard) { + event.preventDefault(); + this.hide(); + return; + } + this._triggerBackdropTransition(); + }); + EventHandler.on(window, EVENT_RESIZE$1, () => { + if (this._isShown && !this._isTransitioning) { + this._adjustDialog(); + } + }); + EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { + if (event.target !== event.currentTarget) { + return; + } + if (this._config.backdrop === 'static') { + this._triggerBackdropTransition(); + return; + } + if (this._config.backdrop) { + this.hide(); + } + }); } _hideModal() { this._element.style.display = 'none'; @@ -6682,54 +6678,31 @@ document.body.classList.remove(CLASS_NAME_OPEN); this._resetAdjustments(); this._scrollBar.reset(); - EventHandler.trigger(this._element, EVENT_HIDDEN$3); + EventHandler.trigger(this._element, EVENT_HIDDEN$4); }); } - _showBackdrop(callback) { - EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => { - if (this._ignoreBackdropClick) { - this._ignoreBackdropClick = false; - return; - } - if (event.target !== event.currentTarget) { - return; - } - if (this._config.backdrop === true) { - this.hide(); - } else if (this._config.backdrop === 'static') { - this._triggerBackdropTransition(); - } - }); - this._backdrop.show(callback); - } _isAnimated() { return this._element.classList.contains(CLASS_NAME_FADE$3); } _triggerBackdropTransition() { - const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); if (hideEvent.defaultPrevented) { return; } - const { - classList, - scrollHeight, - style - } = this._element; - const isModalOverflowing = scrollHeight > document.documentElement.clientHeight; - if (!isModalOverflowing && style.overflowY === 'hidden' || classList.contains(CLASS_NAME_STATIC)) { + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const initialOverflowY = this._element.style.overflowY; + if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) { return; } if (!isModalOverflowing) { - style.overflowY = 'hidden'; + this._element.style.overflowY = 'hidden'; } - classList.add(CLASS_NAME_STATIC); + this._element.classList.add(CLASS_NAME_STATIC); this._queueCallback(() => { - classList.remove(CLASS_NAME_STATIC); - if (!isModalOverflowing) { - this._queueCallback(() => { - style.overflowY = ''; - }, this._dialog); - } + this._element.classList.remove(CLASS_NAME_STATIC); + this._queueCallback(() => { + this._element.style.overflowY = initialOverflowY; + }, this._dialog); }, this._dialog); this._element.focus(); } @@ -6737,11 +6710,13 @@ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; const scrollbarWidth = this._scrollBar.getWidth(); const isBodyOverflowing = scrollbarWidth > 0; - if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) { - this._element.style.paddingLeft = `${scrollbarWidth}px`; + if (isBodyOverflowing && !isModalOverflowing) { + const property = isRTL() ? 'paddingLeft' : 'paddingRight'; + this._element.style[property] = `${scrollbarWidth}px`; } - if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) { - this._element.style.paddingRight = `${scrollbarWidth}px`; + if (!isBodyOverflowing && isModalOverflowing) { + const property = isRTL() ? 'paddingRight' : 'paddingLeft'; + this._element.style[property] = `${scrollbarWidth}px`; } } _resetAdjustments() { @@ -6766,65 +6741,71 @@ if (['A', 'AREA'].includes(this.tagName)) { event.preventDefault(); } - EventHandler.one(target, EVENT_SHOW$3, showEvent => { + EventHandler.one(target, EVENT_SHOW$4, showEvent => { if (showEvent.defaultPrevented) { return; } - EventHandler.one(target, EVENT_HIDDEN$3, () => { + EventHandler.one(target, EVENT_HIDDEN$4, () => { if (isVisible(this)) { this.focus(); } }); }); - const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); - if (allReadyOpen) { - Modal.getInstance(allReadyOpen).hide(); + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); + if (alreadyOpen) { + Modal.getInstance(alreadyOpen).hide(); } const data = Modal.getOrCreateInstance(target); data.toggle(this); }); enableDismissTrigger(Modal); defineJQueryPlugin(Modal); - const NAME$5 = 'offcanvas'; - const DATA_KEY$5 = 'bs.offcanvas'; - const EVENT_KEY$5 = `.${DATA_KEY$5}`; - const DATA_API_KEY$2 = '.data-api'; - const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$5}${DATA_API_KEY$2}`; + const NAME$6 = 'offcanvas'; + const DATA_KEY$3 = 'bs.offcanvas'; + const EVENT_KEY$3 = `.${DATA_KEY$3}`; + const DATA_API_KEY$1 = '.data-api'; + const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`; const ESCAPE_KEY = 'Escape'; - const Default$4 = { + const CLASS_NAME_SHOW$3 = 'show'; + const CLASS_NAME_SHOWING$1 = 'showing'; + const CLASS_NAME_HIDING = 'hiding'; + const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; + const OPEN_SELECTOR = '.offcanvas.show'; + const EVENT_SHOW$3 = `show${EVENT_KEY$3}`; + const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; + const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; + const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`; + const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; + const EVENT_RESIZE = `resize${EVENT_KEY$3}`; + const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`; + const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`; + const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; + const Default$5 = { backdrop: true, keyboard: true, scroll: false }; - const DefaultType$4 = { - backdrop: 'boolean', + const DefaultType$5 = { + backdrop: '(boolean|string)', keyboard: 'boolean', scroll: 'boolean' }; - const CLASS_NAME_SHOW$3 = 'show'; - const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; - const OPEN_SELECTOR = '.offcanvas.show'; - const EVENT_SHOW$2 = `show${EVENT_KEY$5}`; - const EVENT_SHOWN$2 = `shown${EVENT_KEY$5}`; - const EVENT_HIDE$2 = `hide${EVENT_KEY$5}`; - const EVENT_HIDDEN$2 = `hidden${EVENT_KEY$5}`; - const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$5}${DATA_API_KEY$2}`; - const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$5}`; - const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; class Offcanvas extends BaseComponent { constructor(element, config) { - super(element); - this._config = this._getConfig(config); + super(element, config); this._isShown = false; this._backdrop = this._initializeBackDrop(); this._focustrap = this._initializeFocusTrap(); this._addEventListeners(); } - static get NAME() { - return NAME$5; - } static get Default() { - return Default$4; + return Default$5; + } + static get DefaultType() { + return DefaultType$5; + } + static get NAME() { + return NAME$6; } toggle(relatedTarget) { return this._isShown ? this.hide() : this.show(relatedTarget); @@ -6833,27 +6814,27 @@ if (this._isShown) { return; } - const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { relatedTarget }); if (showEvent.defaultPrevented) { return; } this._isShown = true; - this._element.style.visibility = 'visible'; this._backdrop.show(); if (!this._config.scroll) { new ScrollBarHelper().hide(); } - this._element.removeAttribute('aria-hidden'); this._element.setAttribute('aria-modal', true); this._element.setAttribute('role', 'dialog'); - this._element.classList.add(CLASS_NAME_SHOW$3); + this._element.classList.add(CLASS_NAME_SHOWING$1); const completeCallBack = () => { - if (!this._config.scroll) { + if (!this._config.scroll || this._config.backdrop) { this._focustrap.activate(); } - EventHandler.trigger(this._element, EVENT_SHOWN$2, { + this._element.classList.add(CLASS_NAME_SHOW$3); + this._element.classList.remove(CLASS_NAME_SHOWING$1); + EventHandler.trigger(this._element, EVENT_SHOWN$3, { relatedTarget }); }; @@ -6863,24 +6844,23 @@ if (!this._isShown) { return; } - const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); if (hideEvent.defaultPrevented) { return; } this._focustrap.deactivate(); this._element.blur(); this._isShown = false; - this._element.classList.remove(CLASS_NAME_SHOW$3); + this._element.classList.add(CLASS_NAME_HIDING); this._backdrop.hide(); const completeCallback = () => { - this._element.setAttribute('aria-hidden', true); + this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING); this._element.removeAttribute('aria-modal'); this._element.removeAttribute('role'); - this._element.style.visibility = 'hidden'; if (!this._config.scroll) { new ScrollBarHelper().reset(); } - EventHandler.trigger(this._element, EVENT_HIDDEN$2); + EventHandler.trigger(this._element, EVENT_HIDDEN$3); }; this._queueCallback(completeCallback, this._element, true); } @@ -6889,21 +6869,21 @@ this._focustrap.deactivate(); super.dispose(); } - _getConfig(config) { - config = { ...Default$4, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' ? config : {}) - }; - typeCheckConfig(NAME$5, config, DefaultType$4); - return config; - } _initializeBackDrop() { + const clickCallback = () => { + if (this._config.backdrop === 'static') { + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + return; + } + this.hide(); + }; + const isVisible = Boolean(this._config.backdrop); return new Backdrop({ className: CLASS_NAME_BACKDROP, - isVisible: this._config.backdrop, + isVisible, isAnimated: true, rootElement: this._element.parentNode, - clickCallback: () => this.hide() + clickCallback: isVisible ? clickCallback : null }); } _initializeFocusTrap() { @@ -6913,9 +6893,14 @@ } _addEventListeners() { EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { - if (this._config.keyboard && event.key === ESCAPE_KEY) { - this.hide(); + if (event.key !== ESCAPE_KEY) { + return; } + if (!this._config.keyboard) { + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + return; + } + this.hide(); }); } static jQueryInterface(config) { @@ -6939,19 +6924,30 @@ if (isDisabled(this)) { return; } - EventHandler.one(target, EVENT_HIDDEN$2, () => { + EventHandler.one(target, EVENT_HIDDEN$3, () => { if (isVisible(this)) { this.focus(); } }); - const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); - if (allReadyOpen && allReadyOpen !== target) { - Offcanvas.getInstance(allReadyOpen).hide(); + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); + if (alreadyOpen && alreadyOpen !== target) { + Offcanvas.getInstance(alreadyOpen).hide(); } const data = Offcanvas.getOrCreateInstance(target); data.toggle(this); }); - EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => SelectorEngine.find(OPEN_SELECTOR).forEach(el => Offcanvas.getOrCreateInstance(el).show())); + EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { + for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { + Offcanvas.getOrCreateInstance(selector).show(); + } + }); + EventHandler.on(window, EVENT_RESIZE, () => { + for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) { + if (getComputedStyle(element).position !== 'fixed') { + Offcanvas.getOrCreateInstance(element).hide(); + } + } + }); enableDismissTrigger(Offcanvas); defineJQueryPlugin(Offcanvas); const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); @@ -6966,13 +6962,7 @@ } return true; } - const regExp = allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp); - for (let i = 0, len = regExp.length; i < len; i++) { - if (regExp[i].test(attributeName)) { - return true; - } - } - return false; + return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); }; const DefaultAllowlist = { '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], @@ -7006,18 +6996,17 @@ u: [], ul: [] }; - function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) { + function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { if (!unsafeHtml.length) { return unsafeHtml; } - if (sanitizeFn && typeof sanitizeFn === 'function') { - return sanitizeFn(unsafeHtml); + if (sanitizeFunction && typeof sanitizeFunction === 'function') { + return sanitizeFunction(unsafeHtml); } const domParser = new window.DOMParser(); const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); const elements = [].concat(...createdDocument.body.querySelectorAll('*')); - for (let i = 0, len = elements.length; i < len; i++) { - const element = elements[i]; + for (const element of elements) { const elementName = element.nodeName.toLowerCase(); if (!Object.keys(allowList).includes(elementName)) { element.remove(); @@ -7025,38 +7014,146 @@ } const attributeList = [].concat(...element.attributes); const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []); - attributeList.forEach(attribute => { + for (const attribute of attributeList) { if (!allowedAttribute(attribute, allowedAttributes)) { element.removeAttribute(attribute.nodeName); } - }); + } } return createdDocument.body.innerHTML; } - const NAME$4 = 'tooltip'; - const DATA_KEY$4 = 'bs.tooltip'; - const EVENT_KEY$4 = `.${DATA_KEY$4}`; - const CLASS_PREFIX$1 = 'bs-tooltip'; - const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); - const DefaultType$3 = { - animation: 'boolean', - template: 'string', - title: '(string|element|function)', - trigger: 'string', - delay: '(number|object)', + const NAME$5 = 'TemplateFactory'; + const Default$4 = { + allowList: DefaultAllowlist, + content: {}, + extraClass: '', + html: false, + sanitize: true, + sanitizeFn: null, + template: '
    ' + }; + const DefaultType$4 = { + allowList: 'object', + content: 'object', + extraClass: '(string|function)', html: 'boolean', - selector: '(string|boolean)', - placement: '(string|function)', - offset: '(array|string|function)', - container: '(string|element|boolean)', - fallbackPlacements: 'array', - boundary: '(string|element)', - customClass: '(string|function)', sanitize: 'boolean', sanitizeFn: '(null|function)', - allowList: 'object', - popperConfig: '(null|object|function)' + template: 'string' }; + const DefaultContentType = { + entry: '(string|element|function|null)', + selector: '(string|element)' + }; + class TemplateFactory extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + } + static get Default() { + return Default$4; + } + static get DefaultType() { + return DefaultType$4; + } + static get NAME() { + return NAME$5; + } + getContent() { + return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean); + } + hasContent() { + return this.getContent().length > 0; + } + changeContent(content) { + this._checkContent(content); + this._config.content = { ...this._config.content, + ...content + }; + return this; + } + toHtml() { + const templateWrapper = document.createElement('div'); + templateWrapper.innerHTML = this._maybeSanitize(this._config.template); + for (const [selector, text] of Object.entries(this._config.content)) { + this._setContent(templateWrapper, text, selector); + } + const template = templateWrapper.children[0]; + const extraClass = this._resolvePossibleFunction(this._config.extraClass); + if (extraClass) { + template.classList.add(...extraClass.split(' ')); + } + return template; + } + _typeCheckConfig(config) { + super._typeCheckConfig(config); + this._checkContent(config.content); + } + _checkContent(arg) { + for (const [selector, content] of Object.entries(arg)) { + super._typeCheckConfig({ + selector, + entry: content + }, DefaultContentType); + } + } + _setContent(template, content, selector) { + const templateElement = SelectorEngine.findOne(selector, template); + if (!templateElement) { + return; + } + content = this._resolvePossibleFunction(content); + if (!content) { + templateElement.remove(); + return; + } + if (isElement(content)) { + this._putElementInTemplate(getElement(content), templateElement); + return; + } + if (this._config.html) { + templateElement.innerHTML = this._maybeSanitize(content); + return; + } + templateElement.textContent = content; + } + _maybeSanitize(arg) { + return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; + } + _resolvePossibleFunction(arg) { + return typeof arg === 'function' ? arg(this) : arg; + } + _putElementInTemplate(element, templateElement) { + if (this._config.html) { + templateElement.innerHTML = ''; + templateElement.append(element); + return; + } + templateElement.textContent = element.textContent; + } + } + const NAME$4 = 'tooltip'; + const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); + const CLASS_NAME_FADE$2 = 'fade'; + const CLASS_NAME_MODAL = 'modal'; + const CLASS_NAME_SHOW$2 = 'show'; + const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; + const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; + const EVENT_MODAL_HIDE = 'hide.bs.modal'; + const TRIGGER_HOVER = 'hover'; + const TRIGGER_FOCUS = 'focus'; + const TRIGGER_CLICK = 'click'; + const TRIGGER_MANUAL = 'manual'; + const EVENT_HIDE$2 = 'hide'; + const EVENT_HIDDEN$2 = 'hidden'; + const EVENT_SHOW$2 = 'show'; + const EVENT_SHOWN$2 = 'shown'; + const EVENT_INSERTED = 'inserted'; + const EVENT_CLICK$1 = 'click'; + const EVENT_FOCUSIN$1 = 'focusin'; + const EVENT_FOCUSOUT$1 = 'focusout'; + const EVENT_MOUSEENTER = 'mouseenter'; + const EVENT_MOUSELEAVE = 'mouseleave'; const AttachmentMap = { AUTO: 'auto', TOP: 'top', @@ -7065,75 +7162,68 @@ LEFT: isRTL() ? 'right' : 'left' }; const Default$3 = { + allowList: DefaultAllowlist, animation: true, - template: '', - trigger: 'hover focus', - title: '', - delay: 0, - html: false, - selector: false, - placement: 'top', - offset: [0, 0], - container: false, - fallbackPlacements: ['top', 'right', 'bottom', 'left'], boundary: 'clippingParents', + container: false, customClass: '', + delay: 0, + fallbackPlacements: ['top', 'right', 'bottom', 'left'], + html: false, + offset: [0, 0], + placement: 'top', + popperConfig: null, sanitize: true, sanitizeFn: null, - allowList: DefaultAllowlist, - popperConfig: null + selector: false, + template: '', + title: '', + trigger: 'hover focus' }; - const Event$2 = { - HIDE: `hide${EVENT_KEY$4}`, - HIDDEN: `hidden${EVENT_KEY$4}`, - SHOW: `show${EVENT_KEY$4}`, - SHOWN: `shown${EVENT_KEY$4}`, - INSERTED: `inserted${EVENT_KEY$4}`, - CLICK: `click${EVENT_KEY$4}`, - FOCUSIN: `focusin${EVENT_KEY$4}`, - FOCUSOUT: `focusout${EVENT_KEY$4}`, - MOUSEENTER: `mouseenter${EVENT_KEY$4}`, - MOUSELEAVE: `mouseleave${EVENT_KEY$4}` + const DefaultType$3 = { + allowList: 'object', + animation: 'boolean', + boundary: '(string|element)', + container: '(string|element|boolean)', + customClass: '(string|function)', + delay: '(number|object)', + fallbackPlacements: 'array', + html: 'boolean', + offset: '(array|string|function)', + placement: '(string|function)', + popperConfig: '(null|object|function)', + sanitize: 'boolean', + sanitizeFn: '(null|function)', + selector: '(string|boolean)', + template: 'string', + title: '(string|element|function)', + trigger: 'string' }; - const CLASS_NAME_FADE$2 = 'fade'; - const CLASS_NAME_MODAL = 'modal'; - const CLASS_NAME_SHOW$2 = 'show'; - const HOVER_STATE_SHOW = 'show'; - const HOVER_STATE_OUT = 'out'; - const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; - const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; - const EVENT_MODAL_HIDE = 'hide.bs.modal'; - const TRIGGER_HOVER = 'hover'; - const TRIGGER_FOCUS = 'focus'; - const TRIGGER_CLICK = 'click'; - const TRIGGER_MANUAL = 'manual'; class Tooltip extends BaseComponent { constructor(element, config) { if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); } - super(element); + super(element, config); this._isEnabled = true; this._timeout = 0; - this._hoverState = ''; + this._isHovered = false; this._activeTrigger = {}; this._popper = null; - this._config = this._getConfig(config); + this._templateFactory = null; + this._newContent = null; this.tip = null; this._setListeners(); } static get Default() { return Default$3; } - static get NAME() { - return NAME$4; - } - static get Event() { - return Event$2; - } static get DefaultType() { return DefaultType$3; } + static get NAME() { + return NAME$4; + } enable() { this._isEnabled = true; } @@ -7151,17 +7241,17 @@ const context = this._initializeOnDelegatedTarget(event); context._activeTrigger.click = !context._activeTrigger.click; if (context._isWithActiveTrigger()) { - context._enter(null, context); + context._enter(); } else { - context._leave(null, context); + context._leave(); } - } else { - if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$2)) { - this._leave(null, this); - return; - } - this._enter(null, this); + return; } + if (this._isShown()) { + this._leave(); + return; + } + this._enter(); } dispose() { clearTimeout(this._timeout); @@ -7176,182 +7266,163 @@ if (this._element.style.display === 'none') { throw new Error('Please use show on visible elements'); } - if (!(this.isWithContent() && this._isEnabled)) { + if (!(this._isWithContent() && this._isEnabled)) { return; } - const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW); + const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2)); const shadowRoot = findShadowRoot(this._element); - const isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element); + const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element); if (showEvent.defaultPrevented || !isInTheDom) { return; } - if (this.constructor.NAME === 'tooltip' && this.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) { - this._disposePopper(); + if (this.tip) { this.tip.remove(); this.tip = null; } - const tip = this.getTipElement(); - const tipId = getUID(this.constructor.NAME); - tip.setAttribute('id', tipId); - this._element.setAttribute('aria-describedby', tipId); - if (this._config.animation) { - tip.classList.add(CLASS_NAME_FADE$2); - } - const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement; - const attachment = this._getAttachment(placement); - this._addAttachmentClass(attachment); + const tip = this._getTipElement(); + this._element.setAttribute('aria-describedby', tip.getAttribute('id')); const { container } = this._config; - Data.set(tip, this.constructor.DATA_KEY, this); if (!this._element.ownerDocument.documentElement.contains(this.tip)) { container.append(tip); - EventHandler.trigger(this._element, this.constructor.Event.INSERTED); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); } if (this._popper) { this._popper.update(); } else { - this._popper = createPopper(this._element, tip, this._getPopperConfig(attachment)); + this._popper = this._createPopper(tip); } tip.classList.add(CLASS_NAME_SHOW$2); - const customClass = this._resolvePossibleFunction(this._config.customClass); - if (customClass) { - tip.classList.add(...customClass.split(' ')); - } if ('ontouchstart' in document.documentElement) { - [].concat(...document.body.children).forEach(element => { + for (const element of [].concat(...document.body.children)) { EventHandler.on(element, 'mouseover', noop); - }); + } } const complete = () => { - const prevHoverState = this._hoverState; - this._hoverState = null; - EventHandler.trigger(this._element, this.constructor.Event.SHOWN); - if (prevHoverState === HOVER_STATE_OUT) { - this._leave(null, this); + const previousHoverState = this._isHovered; + this._isHovered = false; + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); + if (previousHoverState) { + this._leave(); } }; - const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2); - this._queueCallback(complete, this.tip, isAnimated); + this._queueCallback(complete, this.tip, this._isAnimated()); } hide() { - if (!this._popper) { + if (!this._isShown()) { return; } - const tip = this.getTipElement(); - const complete = () => { - if (this._isWithActiveTrigger()) { - return; - } - if (this._hoverState !== HOVER_STATE_SHOW) { - tip.remove(); - } - this._cleanTipClass(); - this._element.removeAttribute('aria-describedby'); - EventHandler.trigger(this._element, this.constructor.Event.HIDDEN); - this._disposePopper(); - }; - const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE); + const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2)); if (hideEvent.defaultPrevented) { return; } + const tip = this._getTipElement(); tip.classList.remove(CLASS_NAME_SHOW$2); if ('ontouchstart' in document.documentElement) { - [].concat(...document.body.children).forEach(element => EventHandler.off(element, 'mouseover', noop)); + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, 'mouseover', noop); + } } this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2); - this._queueCallback(complete, this.tip, isAnimated); - this._hoverState = ''; + this._isHovered = false; + const complete = () => { + if (this._isWithActiveTrigger()) { + return; + } + if (!this._isHovered) { + tip.remove(); + } + this._element.removeAttribute('aria-describedby'); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); + this._disposePopper(); + }; + this._queueCallback(complete, this.tip, this._isAnimated()); } update() { - if (this._popper !== null) { + if (this._popper) { this._popper.update(); } } - isWithContent() { - return Boolean(this.getTitle()); + _isWithContent() { + return Boolean(this._getTitle()); } - getTipElement() { - if (this.tip) { - return this.tip; + _getTipElement() { + if (!this.tip) { + this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); } - const element = document.createElement('div'); - element.innerHTML = this._config.template; - const tip = element.children[0]; - this.setContent(tip); - tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); - this.tip = tip; return this.tip; } - setContent(tip) { - this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER); + _createTipElement(content) { + const tip = this._getTemplateFactory(content).toHtml(); + if (!tip) { + return null; + } + tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); + tip.classList.add(`bs-${this.constructor.NAME}-auto`); + const tipId = getUID(this.constructor.NAME).toString(); + tip.setAttribute('id', tipId); + if (this._isAnimated()) { + tip.classList.add(CLASS_NAME_FADE$2); + } + return tip; } - _sanitizeAndSetContent(template, content, selector) { - const templateElement = SelectorEngine.findOne(selector, template); - if (!content && templateElement) { - templateElement.remove(); - return; + setContent(content) { + this._newContent = content; + if (this._isShown()) { + this._disposePopper(); + this.show(); } - this.setElementContent(templateElement, content); } - setElementContent(element, content) { - if (element === null) { - return; - } - if (isElement(content)) { - content = getElement(content); - if (this._config.html) { - if (content.parentNode !== element) { - element.innerHTML = ''; - element.append(content); - } - } else { - element.textContent = content.textContent; - } - return; - } - if (this._config.html) { - if (this._config.sanitize) { - content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn); - } - element.innerHTML = content; + _getTemplateFactory(content) { + if (this._templateFactory) { + this._templateFactory.changeContent(content); } else { - element.textContent = content; + this._templateFactory = new TemplateFactory({ ...this._config, + content, + extraClass: this._resolvePossibleFunction(this._config.customClass) + }); } + return this._templateFactory; } - getTitle() { - const title = this._element.getAttribute('data-bs-original-title') || this._config.title; - return this._resolvePossibleFunction(title); + _getContentForTemplate() { + return { + [SELECTOR_TOOLTIP_INNER]: this._getTitle() + }; } - updateAttachment(attachment) { - if (attachment === 'right') { - return 'end'; - } - if (attachment === 'left') { - return 'start'; - } - return attachment; + _getTitle() { + return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle; } - _initializeOnDelegatedTarget(event, context) { - return context || this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); + _initializeOnDelegatedTarget(event) { + return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); + } + _isAnimated() { + return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2); + } + _isShown() { + return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2); + } + _createPopper(tip) { + const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement; + const attachment = AttachmentMap[placement.toUpperCase()]; + return createPopper(this._element, tip, this._getPopperConfig(attachment)); } _getOffset() { const { offset } = this._config; if (typeof offset === 'string') { - return offset.split(',').map(val => Number.parseInt(val, 10)); + return offset.split(',').map(value => Number.parseInt(value, 10)); } if (typeof offset === 'function') { return popperData => offset(popperData, this._element); } return offset; } - _resolvePossibleFunction(content) { - return typeof content === 'function' ? content.call(this._element) : content; + _resolvePossibleFunction(arg) { + return typeof arg === 'function' ? arg.call(this._element) : arg; } _getPopperConfig(attachment) { const defaultBsPopperConfig = { @@ -7377,39 +7448,38 @@ element: `.${this.constructor.NAME}-arrow` } }, { - name: 'onChange', + name: 'preSetPlacement', enabled: true, - phase: 'afterWrite', - fn: data => this._handlePopperPlacementChange(data) - }], - onFirstUpdate: data => { - if (data.options.placement !== data.placement) { - this._handlePopperPlacementChange(data); + phase: 'beforeMain', + fn: data => { + this._getTipElement().setAttribute('data-popper-placement', data.state.placement); } - } + }] }; return { ...defaultBsPopperConfig, ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig) }; } - _addAttachmentClass(attachment) { - this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`); - } - _getAttachment(placement) { - return AttachmentMap[placement.toUpperCase()]; - } _setListeners() { const triggers = this._config.trigger.split(' '); - triggers.forEach(trigger => { + for (const trigger of triggers) { if (trigger === 'click') { - EventHandler.on(this._element, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event)); + EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => this.toggle(event)); } else if (trigger !== TRIGGER_MANUAL) { - const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN; - const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT; - EventHandler.on(this._element, eventIn, this._config.selector, event => this._enter(event)); - EventHandler.on(this._element, eventOut, this._config.selector, event => this._leave(event)); + const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); + const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); + EventHandler.on(this._element, eventIn, this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; + context._enter(); + }); + EventHandler.on(this._element, eventOut, this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); + context._leave(); + }); } - }); + } this._hideModalHandler = () => { if (this._element) { this.hide(); @@ -7426,76 +7496,61 @@ } } _fixTitle() { - const title = this._element.getAttribute('title'); - const originalTitleType = typeof this._element.getAttribute('data-bs-original-title'); - if (title || originalTitleType !== 'string') { - this._element.setAttribute('data-bs-original-title', title || ''); - if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) { - this._element.setAttribute('aria-label', title); - } - this._element.setAttribute('title', ''); + const title = this._config.originalTitle; + if (!title) { + return; } + if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) { + this._element.setAttribute('aria-label', title); + } + this._element.removeAttribute('title'); } - _enter(event, context) { - context = this._initializeOnDelegatedTarget(event, context); - if (event) { - context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; - } - if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$2) || context._hoverState === HOVER_STATE_SHOW) { - context._hoverState = HOVER_STATE_SHOW; + _enter() { + if (this._isShown() || this._isHovered) { + this._isHovered = true; return; } - clearTimeout(context._timeout); - context._hoverState = HOVER_STATE_SHOW; - if (!context._config.delay || !context._config.delay.show) { - context.show(); - return; - } - context._timeout = setTimeout(() => { - if (context._hoverState === HOVER_STATE_SHOW) { - context.show(); + this._isHovered = true; + this._setTimeout(() => { + if (this._isHovered) { + this.show(); } - }, context._config.delay.show); + }, this._config.delay.show); } - _leave(event, context) { - context = this._initializeOnDelegatedTarget(event, context); - if (event) { - context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); - } - if (context._isWithActiveTrigger()) { + _leave() { + if (this._isWithActiveTrigger()) { return; } - clearTimeout(context._timeout); - context._hoverState = HOVER_STATE_OUT; - if (!context._config.delay || !context._config.delay.hide) { - context.hide(); - return; - } - context._timeout = setTimeout(() => { - if (context._hoverState === HOVER_STATE_OUT) { - context.hide(); + this._isHovered = false; + this._setTimeout(() => { + if (!this._isHovered) { + this.hide(); } - }, context._config.delay.hide); + }, this._config.delay.hide); + } + _setTimeout(handler, timeout) { + clearTimeout(this._timeout); + this._timeout = setTimeout(handler, timeout); } _isWithActiveTrigger() { - for (const trigger in this._activeTrigger) { - if (this._activeTrigger[trigger]) { - return true; - } - } - return false; + return Object.values(this._activeTrigger).includes(true); } _getConfig(config) { const dataAttributes = Manipulator.getDataAttributes(this._element); - Object.keys(dataAttributes).forEach(dataAttr => { - if (DISALLOWED_ATTRIBUTES.has(dataAttr)) { - delete dataAttributes[dataAttr]; + for (const dataAttribute of Object.keys(dataAttributes)) { + if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { + delete dataAttributes[dataAttribute]; } - }); - config = { ...this.constructor.Default, - ...dataAttributes, + } + config = { ...dataAttributes, ...(typeof config === 'object' && config ? config : {}) }; + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { config.container = config.container === false ? document.body : getElement(config.container); if (typeof config.delay === 'number') { config.delay = { @@ -7503,16 +7558,13 @@ hide: config.delay }; } + config.originalTitle = this._element.getAttribute('title') || ''; if (typeof config.title === 'number') { config.title = config.title.toString(); } if (typeof config.content === 'number') { config.content = config.content.toString(); } - typeCheckConfig(NAME$4, config, this.constructor.DefaultType); - if (config.sanitize) { - config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn); - } return config; } _getDelegateConfig() { @@ -7524,28 +7576,6 @@ } return config; } - _cleanTipClass() { - const tip = this.getTipElement(); - const basicClassPrefixRegex = new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`, 'g'); - const tabClass = tip.getAttribute('class').match(basicClassPrefixRegex); - if (tabClass !== null && tabClass.length > 0) { - tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); - } - } - _getBasicClassPrefix() { - return CLASS_PREFIX$1; - } - _handlePopperPlacementChange(popperData) { - const { - state - } = popperData; - if (!state) { - return; - } - this.tip = state.elements.popper; - this._cleanTipClass(); - this._addAttachmentClass(this._getAttachment(state.placement)); - } _disposePopper() { if (this._popper) { this._popper.destroy(); @@ -7555,228 +7585,6 @@ static jQueryInterface(config) { return this.each(function () { const data = Tooltip.getOrCreateInstance(this, config); - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); - } - data[config](); - } - }); - } - } - defineJQueryPlugin(Tooltip); - const NAME$3 = 'popover'; - const DATA_KEY$3 = 'bs.popover'; - const EVENT_KEY$3 = `.${DATA_KEY$3}`; - const CLASS_PREFIX = 'bs-popover'; - const Default$2 = { ...Tooltip.Default, - placement: 'right', - offset: [0, 8], - trigger: 'click', - content: '', - template: '' - }; - const DefaultType$2 = { ...Tooltip.DefaultType, - content: '(string|element|function)' - }; - const Event$1 = { - HIDE: `hide${EVENT_KEY$3}`, - HIDDEN: `hidden${EVENT_KEY$3}`, - SHOW: `show${EVENT_KEY$3}`, - SHOWN: `shown${EVENT_KEY$3}`, - INSERTED: `inserted${EVENT_KEY$3}`, - CLICK: `click${EVENT_KEY$3}`, - FOCUSIN: `focusin${EVENT_KEY$3}`, - FOCUSOUT: `focusout${EVENT_KEY$3}`, - MOUSEENTER: `mouseenter${EVENT_KEY$3}`, - MOUSELEAVE: `mouseleave${EVENT_KEY$3}` - }; - const SELECTOR_TITLE = '.popover-header'; - const SELECTOR_CONTENT = '.popover-body'; - class Popover extends Tooltip { - static get Default() { - return Default$2; - } - static get NAME() { - return NAME$3; - } - static get Event() { - return Event$1; - } - static get DefaultType() { - return DefaultType$2; - } - isWithContent() { - return this.getTitle() || this._getContent(); - } - setContent(tip) { - this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE); - this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT); - } - _getContent() { - return this._resolvePossibleFunction(this._config.content); - } - _getBasicClassPrefix() { - return CLASS_PREFIX; - } - static jQueryInterface(config) { - return this.each(function () { - const data = Popover.getOrCreateInstance(this, config); - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); - } - data[config](); - } - }); - } - } - defineJQueryPlugin(Popover); - const NAME$2 = 'scrollspy'; - const DATA_KEY$2 = 'bs.scrollspy'; - const EVENT_KEY$2 = `.${DATA_KEY$2}`; - const DATA_API_KEY$1 = '.data-api'; - const Default$1 = { - offset: 10, - method: 'auto', - target: '' - }; - const DefaultType$1 = { - offset: 'number', - method: 'string', - target: '(string|element)' - }; - const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; - const EVENT_SCROLL = `scroll${EVENT_KEY$2}`; - const EVENT_LOAD_DATA_API = `load${EVENT_KEY$2}${DATA_API_KEY$1}`; - const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; - const CLASS_NAME_ACTIVE$1 = 'active'; - const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; - const SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group'; - const SELECTOR_NAV_LINKS = '.nav-link'; - const SELECTOR_NAV_ITEMS = '.nav-item'; - const SELECTOR_LIST_ITEMS = '.list-group-item'; - const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`; - const SELECTOR_DROPDOWN$1 = '.dropdown'; - const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; - const METHOD_OFFSET = 'offset'; - const METHOD_POSITION = 'position'; - class ScrollSpy extends BaseComponent { - constructor(element, config) { - super(element); - this._scrollElement = this._element.tagName === 'BODY' ? window : this._element; - this._config = this._getConfig(config); - this._offsets = []; - this._targets = []; - this._activeTarget = null; - this._scrollHeight = 0; - EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process()); - this.refresh(); - this._process(); - } - static get Default() { - return Default$1; - } - static get NAME() { - return NAME$2; - } - refresh() { - const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; - const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; - const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; - this._offsets = []; - this._targets = []; - this._scrollHeight = this._getScrollHeight(); - const targets = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target); - targets.map(element => { - const targetSelector = getSelectorFromElement(element); - const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null; - if (target) { - const targetBCR = target.getBoundingClientRect(); - if (targetBCR.width || targetBCR.height) { - return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector]; - } - } - return null; - }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => { - this._offsets.push(item[0]); - this._targets.push(item[1]); - }); - } - dispose() { - EventHandler.off(this._scrollElement, EVENT_KEY$2); - super.dispose(); - } - _getConfig(config) { - config = { ...Default$1, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' && config ? config : {}) - }; - config.target = getElement(config.target) || document.documentElement; - typeCheckConfig(NAME$2, config, DefaultType$1); - return config; - } - _getScrollTop() { - return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; - } - _getScrollHeight() { - return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - } - _getOffsetHeight() { - return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; - } - _process() { - const scrollTop = this._getScrollTop() + this._config.offset; - const scrollHeight = this._getScrollHeight(); - const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); - if (this._scrollHeight !== scrollHeight) { - this.refresh(); - } - if (scrollTop >= maxScroll) { - const target = this._targets[this._targets.length - 1]; - if (this._activeTarget !== target) { - this._activate(target); - } - return; - } - if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { - this._activeTarget = null; - this._clear(); - return; - } - for (let i = this._offsets.length; i--;) { - const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); - if (isActiveTarget) { - this._activate(this._targets[i]); - } - } - } - _activate(target) { - this._activeTarget = target; - this._clear(); - const queries = SELECTOR_LINK_ITEMS.split(',').map(selector => `${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`); - const link = SelectorEngine.findOne(queries.join(','), this._config.target); - link.classList.add(CLASS_NAME_ACTIVE$1); - if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { - SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1); - } else { - SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(listGroup => { - SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); - SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem => { - SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); - }); - }); - } - EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, { - relatedTarget: target - }); - } - _clear() { - SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target).filter(node => node.classList.contains(CLASS_NAME_ACTIVE$1)).forEach(node => node.classList.remove(CLASS_NAME_ACTIVE$1)); - } - static jQueryInterface(config) { - return this.each(function () { - const data = ScrollSpy.getOrCreateInstance(this, config); if (typeof config !== 'string') { return; } @@ -7787,125 +7595,443 @@ }); } } - EventHandler.on(window, EVENT_LOAD_DATA_API, () => { - SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy)); + defineJQueryPlugin(Tooltip); + const NAME$3 = 'popover'; + const SELECTOR_TITLE = '.popover-header'; + const SELECTOR_CONTENT = '.popover-body'; + const Default$2 = { ...Tooltip.Default, + content: '', + offset: [0, 8], + placement: 'right', + template: '', + trigger: 'click' + }; + const DefaultType$2 = { ...Tooltip.DefaultType, + content: '(null|string|element|function)' + }; + class Popover extends Tooltip { + static get Default() { + return Default$2; + } + static get DefaultType() { + return DefaultType$2; + } + static get NAME() { + return NAME$3; + } + _isWithContent() { + return this._getTitle() || this._getContent(); + } + _getContentForTemplate() { + return { + [SELECTOR_TITLE]: this._getTitle(), + [SELECTOR_CONTENT]: this._getContent() + }; + } + _getContent() { + return this._resolvePossibleFunction(this._config.content); + } + static jQueryInterface(config) { + return this.each(function () { + const data = Popover.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } + } + defineJQueryPlugin(Popover); + const NAME$2 = 'scrollspy'; + const DATA_KEY$2 = 'bs.scrollspy'; + const EVENT_KEY$2 = `.${DATA_KEY$2}`; + const DATA_API_KEY = '.data-api'; + const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; + const EVENT_CLICK = `click${EVENT_KEY$2}`; + const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`; + const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; + const CLASS_NAME_ACTIVE$1 = 'active'; + const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; + const SELECTOR_TARGET_LINKS = '[href]'; + const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; + const SELECTOR_NAV_LINKS = '.nav-link'; + const SELECTOR_NAV_ITEMS = '.nav-item'; + const SELECTOR_LIST_ITEMS = '.list-group-item'; + const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; + const SELECTOR_DROPDOWN = '.dropdown'; + const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; + const Default$1 = { + offset: null, + rootMargin: '0px 0px -25%', + smoothScroll: false, + target: null + }; + const DefaultType$1 = { + offset: '(number|null)', + rootMargin: 'string', + smoothScroll: 'boolean', + target: 'element' + }; + class ScrollSpy extends BaseComponent { + constructor(element, config) { + super(element, config); + this._targetLinks = new Map(); + this._observableSections = new Map(); + this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element; + this._activeTarget = null; + this._observer = null; + this._previousScrollData = { + visibleEntryTop: 0, + parentScrollTop: 0 + }; + this.refresh(); + } + static get Default() { + return Default$1; + } + static get DefaultType() { + return DefaultType$1; + } + static get NAME() { + return NAME$2; + } + refresh() { + this._initializeTargetsAndObservables(); + this._maybeEnableSmoothScroll(); + if (this._observer) { + this._observer.disconnect(); + } else { + this._observer = this._getNewObserver(); + } + for (const section of this._observableSections.values()) { + this._observer.observe(section); + } + } + dispose() { + this._observer.disconnect(); + super.dispose(); + } + _configAfterMerge(config) { + config.target = getElement(config.target) || document.body; + return config; + } + _maybeEnableSmoothScroll() { + if (!this._config.smoothScroll) { + return; + } + EventHandler.off(this._config.target, EVENT_CLICK); + EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => { + const observableSection = this._observableSections.get(event.target.hash); + if (observableSection) { + event.preventDefault(); + const root = this._rootElement || window; + const height = observableSection.offsetTop - this._element.offsetTop; + if (root.scrollTo) { + root.scrollTo({ + top: height, + behavior: 'smooth' + }); + return; + } + root.scrollTop = height; + } + }); + } + _getNewObserver() { + const options = { + root: this._rootElement, + threshold: [0.1, 0.5, 1], + rootMargin: this._getRootMargin() + }; + return new IntersectionObserver(entries => this._observerCallback(entries), options); + } + _observerCallback(entries) { + const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`); + const activate = entry => { + this._previousScrollData.visibleEntryTop = entry.target.offsetTop; + this._process(targetElement(entry)); + }; + const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; + const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; + this._previousScrollData.parentScrollTop = parentScrollTop; + for (const entry of entries) { + if (!entry.isIntersecting) { + this._activeTarget = null; + this._clearActiveClass(targetElement(entry)); + continue; + } + const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; + if (userScrollsDown && entryIsLowerThanPrevious) { + activate(entry); + if (!parentScrollTop) { + return; + } + continue; + } + if (!userScrollsDown && !entryIsLowerThanPrevious) { + activate(entry); + } + } + } + _getRootMargin() { + return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin; + } + _initializeTargetsAndObservables() { + this._targetLinks = new Map(); + this._observableSections = new Map(); + const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); + for (const anchor of targetLinks) { + if (!anchor.hash || isDisabled(anchor)) { + continue; + } + const observableSection = SelectorEngine.findOne(anchor.hash, this._element); + if (isVisible(observableSection)) { + this._targetLinks.set(anchor.hash, anchor); + this._observableSections.set(anchor.hash, observableSection); + } + } + } + _process(target) { + if (this._activeTarget === target) { + return; + } + this._clearActiveClass(this._config.target); + this._activeTarget = target; + target.classList.add(CLASS_NAME_ACTIVE$1); + this._activateParents(target); + EventHandler.trigger(this._element, EVENT_ACTIVATE, { + relatedTarget: target + }); + } + _activateParents(target) { + if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { + SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1); + return; + } + for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { + for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { + item.classList.add(CLASS_NAME_ACTIVE$1); + } + } + } + _clearActiveClass(parent) { + parent.classList.remove(CLASS_NAME_ACTIVE$1); + const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent); + for (const node of activeNodes) { + node.classList.remove(CLASS_NAME_ACTIVE$1); + } + } + static jQueryInterface(config) { + return this.each(function () { + const data = ScrollSpy.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } + } + EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { + for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { + ScrollSpy.getOrCreateInstance(spy); + } }); defineJQueryPlugin(ScrollSpy); const NAME$1 = 'tab'; const DATA_KEY$1 = 'bs.tab'; const EVENT_KEY$1 = `.${DATA_KEY$1}`; - const DATA_API_KEY = '.data-api'; const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; - const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}${DATA_API_KEY}`; - const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'; + const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`; + const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`; + const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`; + const ARROW_LEFT_KEY = 'ArrowLeft'; + const ARROW_RIGHT_KEY = 'ArrowRight'; + const ARROW_UP_KEY = 'ArrowUp'; + const ARROW_DOWN_KEY = 'ArrowDown'; const CLASS_NAME_ACTIVE = 'active'; const CLASS_NAME_FADE$1 = 'fade'; const CLASS_NAME_SHOW$1 = 'show'; - const SELECTOR_DROPDOWN = '.dropdown'; - const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; - const SELECTOR_ACTIVE = '.active'; - const SELECTOR_ACTIVE_UL = ':scope > li > .active'; - const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; + const CLASS_DROPDOWN = 'dropdown'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; - const SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'; + const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; + const SELECTOR_DROPDOWN_ITEM = '.dropdown-item'; + const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; + const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; + const SELECTOR_OUTER = '.nav-item, .list-group-item'; + const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; + const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; + const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; + const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; class Tab extends BaseComponent { + constructor(element) { + super(element); + this._parent = this._element.closest(SELECTOR_TAB_PANEL); + if (!this._parent) { + return; + } + this._setInitialAttributes(this._parent, this._getChildren()); + EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); + } static get NAME() { return NAME$1; } show() { - if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE)) { + const innerElem = this._element; + if (this._elemIsActive(innerElem)) { return; } - let previous; - const target = getElementFromSelector(this._element); - const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP); - if (listElement) { - const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE; - previous = SelectorEngine.find(itemSelector, listElement); - previous = previous[previous.length - 1]; - } - const hideEvent = previous ? EventHandler.trigger(previous, EVENT_HIDE$1, { - relatedTarget: this._element + const active = this._getActiveElem(); + const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, { + relatedTarget: innerElem }) : null; - const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, { - relatedTarget: previous + const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, { + relatedTarget: active }); - if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) { + if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { return; } - this._activate(this._element, listElement); - const complete = () => { - EventHandler.trigger(previous, EVENT_HIDDEN$1, { - relatedTarget: this._element - }); - EventHandler.trigger(this._element, EVENT_SHOWN$1, { - relatedTarget: previous - }); - }; - if (target) { - this._activate(target, target.parentNode, complete); - } else { - complete(); - } + this._deactivate(active, innerElem); + this._activate(innerElem, active); } - _activate(element, container, callback) { - const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE); - const active = activeElements[0]; - const isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$1); - const complete = () => this._transitionComplete(element, active, callback); - if (active && isTransitioning) { - active.classList.remove(CLASS_NAME_SHOW$1); - this._queueCallback(complete, element, true); - } else { - complete(); - } - } - _transitionComplete(element, active, callback) { - if (active) { - active.classList.remove(CLASS_NAME_ACTIVE); - const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode); - if (dropdownChild) { - dropdownChild.classList.remove(CLASS_NAME_ACTIVE); - } - if (active.getAttribute('role') === 'tab') { - active.setAttribute('aria-selected', false); - } + _activate(element, relatedElem) { + if (!element) { + return; } element.classList.add(CLASS_NAME_ACTIVE); - if (element.getAttribute('role') === 'tab') { - element.setAttribute('aria-selected', true); - } - reflow(element); - if (element.classList.contains(CLASS_NAME_FADE$1)) { - element.classList.add(CLASS_NAME_SHOW$1); - } - let parent = element.parentNode; - if (parent && parent.nodeName === 'LI') { - parent = parent.parentNode; - } - if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) { - const dropdownElement = element.closest(SELECTOR_DROPDOWN); - if (dropdownElement) { - SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE)); + this._activate(getElementFromSelector(element)); + const complete = () => { + if (element.getAttribute('role') !== 'tab') { + element.classList.add(CLASS_NAME_SHOW$1); + return; } - element.setAttribute('aria-expanded', true); + element.focus(); + element.removeAttribute('tabindex'); + element.setAttribute('aria-selected', true); + this._toggleDropDown(element, true); + EventHandler.trigger(element, EVENT_SHOWN$1, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); + } + _deactivate(element, relatedElem) { + if (!element) { + return; } - if (callback) { - callback(); + element.classList.remove(CLASS_NAME_ACTIVE); + element.blur(); + this._deactivate(getElementFromSelector(element)); + const complete = () => { + if (element.getAttribute('role') !== 'tab') { + element.classList.remove(CLASS_NAME_SHOW$1); + return; + } + element.setAttribute('aria-selected', false); + element.setAttribute('tabindex', '-1'); + this._toggleDropDown(element, false); + EventHandler.trigger(element, EVENT_HIDDEN$1, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); + } + _keydown(event) { + if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) { + return; } + event.stopPropagation(); + event.preventDefault(); + const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); + const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); + if (nextActiveElement) { + Tab.getOrCreateInstance(nextActiveElement).show(); + } + } + _getChildren() { + return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); + } + _getActiveElem() { + return this._getChildren().find(child => this._elemIsActive(child)) || null; + } + _setInitialAttributes(parent, children) { + this._setAttributeIfNotExists(parent, 'role', 'tablist'); + for (const child of children) { + this._setInitialAttributesOnChild(child); + } + } + _setInitialAttributesOnChild(child) { + child = this._getInnerElement(child); + const isActive = this._elemIsActive(child); + const outerElem = this._getOuterElement(child); + child.setAttribute('aria-selected', isActive); + if (outerElem !== child) { + this._setAttributeIfNotExists(outerElem, 'role', 'presentation'); + } + if (!isActive) { + child.setAttribute('tabindex', '-1'); + } + this._setAttributeIfNotExists(child, 'role', 'tab'); + this._setInitialAttributesOnTargetPanel(child); + } + _setInitialAttributesOnTargetPanel(child) { + const target = getElementFromSelector(child); + if (!target) { + return; + } + this._setAttributeIfNotExists(target, 'role', 'tabpanel'); + if (child.id) { + this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`); + } + } + _toggleDropDown(element, open) { + const outerElem = this._getOuterElement(element); + if (!outerElem.classList.contains(CLASS_DROPDOWN)) { + return; + } + const toggle = (selector, className) => { + const element = SelectorEngine.findOne(selector, outerElem); + if (element) { + element.classList.toggle(className, open); + } + }; + toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); + toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); + toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE); + outerElem.setAttribute('aria-expanded', open); + } + _setAttributeIfNotExists(element, attribute, value) { + if (!element.hasAttribute(attribute)) { + element.setAttribute(attribute, value); + } + } + _elemIsActive(elem) { + return elem.classList.contains(CLASS_NAME_ACTIVE); + } + _getInnerElement(elem) { + return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); + } + _getOuterElement(elem) { + return elem.closest(SELECTOR_OUTER) || elem; } static jQueryInterface(config) { return this.each(function () { const data = Tab.getOrCreateInstance(this); - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); - } - data[config](); + if (typeof config !== 'string') { + return; } + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); }); } } @@ -7916,8 +8042,12 @@ if (isDisabled(this)) { return; } - const data = Tab.getOrCreateInstance(this); - data.show(); + Tab.getOrCreateInstance(this).show(); + }); + EventHandler.on(window, EVENT_LOAD_DATA_API, () => { + for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) { + Tab.getOrCreateInstance(element); + } }); defineJQueryPlugin(Tab); const NAME = 'toast'; @@ -7947,19 +8077,18 @@ }; class Toast extends BaseComponent { constructor(element, config) { - super(element); - this._config = this._getConfig(config); + super(element, config); this._timeout = null; this._hasMouseInteraction = false; this._hasKeyboardInteraction = false; this._setListeners(); } - static get DefaultType() { - return DefaultType; - } static get Default() { return Default; } + static get DefaultType() { + return DefaultType; + } static get NAME() { return NAME; } @@ -7979,12 +8108,11 @@ }; this._element.classList.remove(CLASS_NAME_HIDE); reflow(this._element); - this._element.classList.add(CLASS_NAME_SHOW); - this._element.classList.add(CLASS_NAME_SHOWING); + this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); this._queueCallback(complete, this._element, this._config.animation); } hide() { - if (!this._element.classList.contains(CLASS_NAME_SHOW)) { + if (!this.isShown()) { return; } const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); @@ -7993,8 +8121,7 @@ } const complete = () => { this._element.classList.add(CLASS_NAME_HIDE); - this._element.classList.remove(CLASS_NAME_SHOWING); - this._element.classList.remove(CLASS_NAME_SHOW); + this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); EventHandler.trigger(this._element, EVENT_HIDDEN); }; this._element.classList.add(CLASS_NAME_SHOWING); @@ -8002,18 +8129,13 @@ } dispose() { this._clearTimeout(); - if (this._element.classList.contains(CLASS_NAME_SHOW)) { + if (this.isShown()) { this._element.classList.remove(CLASS_NAME_SHOW); } super.dispose(); } - _getConfig(config) { - config = { ...Default, - ...Manipulator.getDataAttributes(this._element), - ...(typeof config === 'object' && config ? config : {}) - }; - typeCheckConfig(NAME, config, this.constructor.DefaultType); - return config; + isShown() { + return this._element.classList.contains(CLASS_NAME_SHOW); } _maybeScheduleHide() { if (!this._config.autohide) { diff --git a/demo/dist/js/tabler.min.js b/demo/dist/js/tabler.min.js index 48a132fe0..a65acd81f 100644 --- a/demo/dist/js/tabler.min.js +++ b/demo/dist/js/tabler.min.js @@ -1,9 +1,9 @@ /*! -* Tabler v1.0.0-beta10 (https://tabler.io) -* @version 1.0.0-beta10 +* Tabler v1.0.0-beta11 (https://tabler.io) +* @version 1.0.0-beta11 * @link https://tabler.io * Copyright 2018-2022 The Tabler Authors * Copyright 2018-2022 codecalm.net Paweł Kuna * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) */ -!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";var t,e,n="function"==typeof Map?new Map:(t=[],e=[],{has:function(e){return t.indexOf(e)>-1},get:function(n){return e[t.indexOf(n)]},set:function(n,i){-1===t.indexOf(n)&&(t.push(n),e.push(i))},delete:function(n){var i=t.indexOf(n);i>-1&&(t.splice(i,1),e.splice(i,1))}}),i=function(t){return new Event(t,{bubbles:!0})};try{new Event("test")}catch(t){i=function(t){var e=document.createEvent("Event");return e.initEvent(t,!0,!1),e}}function s(t){var e=n.get(t);e&&e.destroy()}function r(t){var e=n.get(t);e&&e.update()}var o=null;"undefined"==typeof window||"function"!=typeof window.getComputedStyle?((o=function(t){return t}).destroy=function(t){return t},o.update=function(t){return t}):((o=function(t,e){return t&&Array.prototype.forEach.call(t.length?t:[t],function(t){return function(t){if(t&&t.nodeName&&"TEXTAREA"===t.nodeName&&!n.has(t)){var e,s=null,r=null,o=null,a=function(){t.clientWidth!==r&&h()},u=function(e){window.removeEventListener("resize",a,!1),t.removeEventListener("input",h,!1),t.removeEventListener("keyup",h,!1),t.removeEventListener("autosize:destroy",u,!1),t.removeEventListener("autosize:update",h,!1),Object.keys(e).forEach(function(n){t.style[n]=e[n]}),n.delete(t)}.bind(t,{height:t.style.height,resize:t.style.resize,overflowY:t.style.overflowY,overflowX:t.style.overflowX,wordWrap:t.style.wordWrap});t.addEventListener("autosize:destroy",u,!1),"onpropertychange"in t&&"oninput"in t&&t.addEventListener("keyup",h,!1),window.addEventListener("resize",a,!1),t.addEventListener("input",h,!1),t.addEventListener("autosize:update",h,!1),t.style.overflowX="hidden",t.style.wordWrap="break-word",n.set(t,{destroy:u,update:h}),"vertical"===(e=window.getComputedStyle(t,null)).resize?t.style.resize="none":"both"===e.resize&&(t.style.resize="horizontal"),s="content-box"===e.boxSizing?-(parseFloat(e.paddingTop)+parseFloat(e.paddingBottom)):parseFloat(e.borderTopWidth)+parseFloat(e.borderBottomWidth),isNaN(s)&&(s=0),h()}function l(e){var n=t.style.width;t.style.width="0px",t.style.width=n,t.style.overflowY=e}function c(){if(0!==t.scrollHeight){var e=function(t){for(var e=[];t&&t.parentNode&&t.parentNode instanceof Element;)t.parentNode.scrollTop&&e.push({node:t.parentNode,scrollTop:t.parentNode.scrollTop}),t=t.parentNode;return e}(t),n=document.documentElement&&document.documentElement.scrollTop;t.style.height="",t.style.height=t.scrollHeight+s+"px",r=t.clientWidth,e.forEach(function(t){t.node.scrollTop=t.scrollTop}),n&&(document.documentElement.scrollTop=n)}}function h(){c();var e=Math.round(parseFloat(t.style.height)),n=window.getComputedStyle(t,null),s="content-box"===n.boxSizing?Math.round(parseFloat(n.height)):t.offsetHeight;if(s=0||(s[n]=t[n]);return s}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(s[n]=t[n])}return s}function v(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var n,i=p(t);if(e){var s=p(this).constructor;n=Reflect.construct(i,arguments,s)}else n=i.apply(this,arguments);return v(this,n)}}function y(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=p(t)););return t}function b(){return(b="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var i=y(t,e);if(i){var s=Object.getOwnPropertyDescriptor(i,e);return s.get?s.get.call(arguments.length<3?t:n):s.value}}).apply(this,arguments)}function k(t,e,n,i){return(k="undefined"!=typeof Reflect&&Reflect.set?Reflect.set:function(t,e,n,i){var s,r=y(t,e);if(r){if((s=Object.getOwnPropertyDescriptor(r,e)).set)return s.set.call(i,n),!0;if(!s.writable)return!1}if(s=Object.getOwnPropertyDescriptor(i,e)){if(!s.writable)return!1;s.value=n,Object.defineProperty(i,e,s)}else!function(t,e,n){e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n}(i,e,n);return!0})(t,e,n,i)}function E(t,e,n,i,s){if(!k(t,e,n,i||t)&&s)throw new Error("failed to set property");return n}function w(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==n)return;var i,s,r=[],o=!0,a=!1;try{for(n=n.call(t);!(o=(i=n.next()).done)&&(r.push(i.value),!e||r.length!==e);o=!0);}catch(t){a=!0,s=t}finally{try{o||null==n.return||n.return()}finally{if(a)throw s}}return r}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return A(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return A(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2?arguments[2]:void 0;c(this,t),this.value=e,this.from=n,this.stop=i}return d(t,[{key:"toString",value:function(){return this.value}},{key:"extend",value:function(t){this.value+=String(t)}},{key:"appendTo",value:function(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}},{key:"state",get:function(){return{value:this.value,from:this.from,stop:this.stop}},set:function(t){Object.assign(this,t)}},{key:"unshift",value:function(t){if(!this.value.length||null!=t&&this.from>=t)return"";var e=this.value[0];return this.value=this.value.slice(1),e}},{key:"shift",value:function(){if(!this.value.length)return"";var t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}]),t}();function B(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new B.InputMask(t,e)}var L=function(){function t(e){c(this,t),this._value="",this._update(Object.assign({},t.DEFAULTS,e)),this.isInitialized=!0}return d(t,[{key:"updateOptions",value:function(t){Object.keys(t).length&&this.withValueRefresh(this._update.bind(this,t))}},{key:"_update",value:function(t){Object.assign(this,t)}},{key:"state",get:function(){return{_value:this.value}},set:function(t){this._value=t._value}},{key:"reset",value:function(){this._value=""}},{key:"value",get:function(){return this._value},set:function(t){this.resolve(t)}},{key:"resolve",value:function(t){return this.reset(),this.append(t,{input:!0},""),this.doCommit(),this.value}},{key:"unmaskedValue",get:function(){return this.value},set:function(t){this.reset(),this.append(t,{},""),this.doCommit()}},{key:"typedValue",get:function(){return this.doParse(this.value)},set:function(t){this.value=this.doFormat(t)}},{key:"rawInputValue",get:function(){return this.extractInput(0,this.value.length,{raw:!0})},set:function(t){this.reset(),this.append(t,{raw:!0},""),this.doCommit()}},{key:"isComplete",get:function(){return!0}},{key:"isFilled",get:function(){return this.isComplete}},{key:"nearestInputPos",value:function(t,e){return t}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.value.slice(t,e)}},{key:"extractTail",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return new D(this.extractInput(t,e),t)}},{key:"appendTail",value:function(t){return S(t)&&(t=new D(String(t))),t.appendTo(this)}},{key:"_appendCharRaw",value:function(t){return t?(this._value+=t,new C({inserted:t,rawInserted:t})):new C}},{key:"_appendChar",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0,s=this.state,r=w(F(this.doPrepare(t,n)),2);if(t=r[0],(e=(e=r[1]).aggregate(this._appendCharRaw(t,n))).inserted){var o,a=!1!==this.doValidate(n);if(a&&null!=i){var u=this.state;!0===this.overwrite&&(o=i.state,i.unshift(this.value.length));var l=this.appendTail(i);(a=l.rawInserted===i.toString())&&l.inserted||"shift"!==this.overwrite||(this.state=u,o=i.state,i.shift(),a=(l=this.appendTail(i)).rawInserted===i.toString()),a&&l.inserted&&(this.state=u)}a||(e=new C,this.state=s,i&&o&&(i.state=o))}return e}},{key:"_appendPlaceholder",value:function(){return new C}},{key:"_appendEager",value:function(){return new C}},{key:"append",value:function(t,e,n){if(!S(t))throw new Error("value should be string");var i=new C,s=S(n)?new D(String(n)):n;e&&e.tail&&(e._beforeTailState=this.state);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this._value=this.value.slice(0,t)+this.value.slice(e),new C}},{key:"withValueRefresh",value:function(t){if(this._refreshing||!this.isInitialized)return t();this._refreshing=!0;var e=this.rawInputValue,n=this.value,i=t();return this.rawInputValue=e,this.value&&this.value!==n&&0===n.indexOf(this.value)&&this.append(n.slice(this.value.length),{},""),delete this._refreshing,i}},{key:"runIsolated",value:function(t){if(this._isolated||!this.isInitialized)return t(this);this._isolated=!0;var e=this.state,n=t(this);return this.state=e,delete this._isolated,n}},{key:"doPrepare",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.prepare?this.prepare(t,this,e):t}},{key:"doValidate",value:function(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}},{key:"doCommit",value:function(){this.commit&&this.commit(this.value,this)}},{key:"doFormat",value:function(t){return this.format?this.format(t,this):t}},{key:"doParse",value:function(t){return this.parse?this.parse(t,this):t}},{key:"splice",value:function(t,e,n,i){var s,r=t+e,o=this.extractTail(r);this.eager&&(i=function(t){switch(t){case T.LEFT:return T.FORCE_LEFT;case T.RIGHT:return T.FORCE_RIGHT;default:return t}}(i),s=this.extractInput(0,r,{raw:!0}));var a=this.nearestInputPos(t,e>1&&0!==t&&!this.eager?T.NONE:i),u=new C({tailShift:a-t}).aggregate(this.remove(a));if(this.eager&&i!==T.NONE&&s===this.rawInputValue)if(i===T.FORCE_LEFT)for(var l;s===this.rawInputValue&&(l=this.value.length);)u.aggregate(new C({tailShift:-1})).aggregate(this.remove(l-1));else i===T.FORCE_RIGHT&&o.unshift();return u.aggregate(this.append(n,{input:!0},o))}},{key:"maskEquals",value:function(t){return this.mask===t}}]),t}();function I(t){if(null==t)throw new Error("mask property should be defined");return t instanceof RegExp?B.MaskedRegExp:S(t)?B.MaskedPattern:t instanceof Date||t===Date?B.MaskedDate:t instanceof Number||"number"==typeof t||t===Number?B.MaskedNumber:Array.isArray(t)||t===Array?B.MaskedDynamic:B.Masked&&t.prototype instanceof B.Masked?t:t instanceof B.Masked?t.constructor:t instanceof Function?B.MaskedFunction:(console.warn("Mask not found for mask",t),B.Masked)}function M(t){if(B.Masked&&t instanceof B.Masked)return t;var e=(t=Object.assign({},t)).mask;if(B.Masked&&e instanceof B.Masked)return e;var n=I(e);if(!n)throw new Error("Masked class is not found for provided mask, appropriate module needs to be import manually before creating mask.");return new n(t)}L.DEFAULTS={format:function(t){return t},parse:function(t){return t}},B.Masked=L,B.createMask=M;var P=["mask"],N={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},R=function(){function t(e){c(this,t);var n=e.mask,i=m(e,P);this.masked=M({mask:n}),Object.assign(this,i)}return d(t,[{key:"reset",value:function(){this.isFilled=!1,this.masked.reset()}},{key:"remove",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return 0===t&&e>=1?(this.isFilled=!1,this.masked.remove(t,e)):new C}},{key:"value",get:function(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}},{key:"unmaskedValue",get:function(){return this.masked.unmaskedValue}},{key:"isComplete",get:function(){return Boolean(this.masked.value)||this.isOptional}},{key:"_appendChar",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.isFilled)return new C;var n=this.masked.state,i=this.masked._appendChar(t,e);return i.inserted&&!1===this.doValidate(e)&&(i.inserted=i.rawInserted="",this.masked.state=n),i.inserted||this.isOptional||this.lazy||e.input||(i.inserted=this.placeholderChar),i.skip=!i.inserted&&!this.isOptional,this.isFilled=Boolean(i.inserted),i}},{key:"append",value:function(){var t;return(t=this.masked).append.apply(t,arguments)}},{key:"_appendPlaceholder",value:function(){var t=new C;return this.isFilled||this.isOptional?t:(this.isFilled=!0,t.inserted=this.placeholderChar,t)}},{key:"_appendEager",value:function(){return new C}},{key:"extractTail",value:function(){var t;return(t=this.masked).extractTail.apply(t,arguments)}},{key:"appendTail",value:function(){var t;return(t=this.masked).appendTail.apply(t,arguments)}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2?arguments[2]:void 0;return this.masked.extractInput(t,e,n)}},{key:"nearestInputPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:T.NONE,n=this.value.length,i=Math.min(Math.max(t,0),n);switch(e){case T.LEFT:case T.FORCE_LEFT:return this.isComplete?i:0;case T.RIGHT:case T.FORCE_RIGHT:return this.isComplete?i:n;case T.NONE:default:return i}}},{key:"doValidate",value:function(){var t,e;return(t=this.masked).doValidate.apply(t,arguments)&&(!this.parent||(e=this.parent).doValidate.apply(e,arguments))}},{key:"doCommit",value:function(){this.masked.doCommit()}},{key:"state",get:function(){return{masked:this.masked.state,isFilled:this.isFilled}},set:function(t){this.masked.state=t.masked,this.isFilled=t.isFilled}}]),t}(),j=function(){function t(e){c(this,t),Object.assign(this,e),this._value="",this.isFixed=!0}return d(t,[{key:"value",get:function(){return this._value}},{key:"unmaskedValue",get:function(){return this.isUnmasking?this.value:""}},{key:"reset",value:function(){this._isRawInput=!1,this._value=""}},{key:"remove",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._value.length;return this._value=this._value.slice(0,t)+this._value.slice(e),this._value||(this._isRawInput=!1),new C}},{key:"nearestInputPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:T.NONE,n=this._value.length;switch(e){case T.LEFT:case T.FORCE_LEFT:return 0;case T.NONE:case T.RIGHT:case T.FORCE_RIGHT:default:return n}}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._value.length;return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).raw&&this._isRawInput&&this._value.slice(t,e)||""}},{key:"isComplete",get:function(){return!0}},{key:"isFilled",get:function(){return Boolean(this._value)}},{key:"_appendChar",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new C;if(this._value)return n;var i=this.char===t&&(this.isUnmasking||e.input||e.raw)&&!this.eager&&!e.tail;return i&&(n.rawInserted=this.char),this._value=n.inserted=this.char,this._isRawInput=i&&(e.raw||e.input),n}},{key:"_appendEager",value:function(){return this._appendChar(this.char)}},{key:"_appendPlaceholder",value:function(){var t=new C;return this._value?t:(this._value=t.inserted=this.char,t)}},{key:"extractTail",value:function(){return arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,new D("")}},{key:"appendTail",value:function(t){return S(t)&&(t=new D(String(t))),t.appendTo(this)}},{key:"append",value:function(t,e,n){var i=this._appendChar(t[0],e);return null!=n&&(i.tailShift+=this.appendTail(n).tailShift),i}},{key:"doCommit",value:function(){}},{key:"state",get:function(){return{_value:this._value,_isRawInput:this._isRawInput}},set:function(t){Object.assign(this,t)}}]),t}(),V=["chunks"],H=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;c(this,t),this.chunks=e,this.from=n}return d(t,[{key:"toString",value:function(){return this.chunks.map(String).join("")}},{key:"extend",value:function(e){if(String(e)){S(e)&&(e=new D(String(e)));var n=this.chunks[this.chunks.length-1],i=n&&(n.stop===e.stop||null==e.stop)&&e.from===n.from+n.toString().length;if(e instanceof D)i?n.extend(e.toString()):this.chunks.push(e);else if(e instanceof t){if(null==e.stop)for(var s;e.chunks.length&&null==e.chunks[0].stop;)(s=e.chunks.shift()).from+=e.from,this.extend(s);e.toString()&&(e.stop=e.blockIndex,this.chunks.push(e))}}}},{key:"appendTo",value:function(e){if(!(e instanceof B.MaskedPattern))return new D(this.toString()).appendTo(e);for(var n=new C,i=0;i=0)&&n.aggregate(e._appendPlaceholder(o)),a=s instanceof t&&e._blocks[o]),a){var u=a.appendTail(s);u.skip=!1,n.aggregate(u),e._value+=u.inserted;var l=s.toString().slice(u.rawInserted.length);l&&n.aggregate(e.append(l,{tail:!0}))}else n.aggregate(e.append(s.toString(),{tail:!0}))}return n}},{key:"state",get:function(){return{chunks:this.chunks.map(function(t){return t.state}),from:this.from,stop:this.stop,blockIndex:this.blockIndex}},set:function(e){var n=e.chunks,i=m(e,V);Object.assign(this,i),this.chunks=n.map(function(e){var n="chunks"in e?new t:new D;return n.state=e,n})}},{key:"unshift",value:function(t){if(!this.chunks.length||null!=t&&this.from>=t)return"";for(var e=null!=t?t-this.from:t,n=0;n=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.value.length))}},{key:"_pushLeft",value:function(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=(null===(e=this.block)||void 0===e?void 0:e.value.length)||0){var e;if(t())return this.ok=!0}return this.ok=!1}},{key:"_pushRight",value:function(t){for(this.pushState(),this.bindBlock();this.index=0}),b(p(n.prototype),"_update",this).call(this,t)}}]),n}();B.MaskedRegExp=z;var W=["_blocks"],q=function(t){f(n,L);var e=_(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c(this,n),t.definitions=Object.assign({},N,t.definitions),e.call(this,Object.assign({},n.DEFAULTS,t))}return d(n,[{key:"_update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.definitions=Object.assign({},this.definitions,t.definitions),b(p(n.prototype),"_update",this).call(this,t),this._rebuildMask()}},{key:"_rebuildMask",value:function(){var t=this,e=this.definitions;this._blocks=[],this._stops=[],this._maskedBlocks={};var i=this.mask;if(i&&e)for(var s=!1,r=!1,o=0;o1&&void 0!==arguments[1]?arguments[1]:{},n=this._mapPosToBlock(this.value.length),i=new C;if(!n)return i;for(var s=n.index;;++s){var r,o=this._blocks[s];if(!o)break;var a=o._appendChar(t,Object.assign({},e,{_beforeTailState:null===(r=e._beforeTailState)||void 0===r?void 0:r._blocks[s]})),u=a.skip;if(i.aggregate(a),u||a.rawInserted)break}return i}},{key:"extractTail",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=new H;return e===n?i:(this._forEachBlocksInRange(e,n,function(e,n,s,r){var o=e.extractTail(s,r);o.stop=t._findStopBefore(n),o.from=t._blockStartPos(n),o instanceof H&&(o.blockIndex=n),i.extend(o)}),i)}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t===e)return"";var i="";return this._forEachBlocksInRange(t,e,function(t,e,s,r){i+=t.extractInput(s,r,n)}),i}},{key:"_findStopBefore",value:function(t){for(var e,n=0;n1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2?arguments[2]:void 0,i=this._mapPosToBlock(t);if(i){var s=this._mapPosToBlock(e),r=s&&i.index===s.index,o=i.offset,a=s&&r?s.offset:this._blocks[i.index].value.length;if(n(this._blocks[i.index],i.index,o,a),s&&!r){for(var u=i.index+1;u0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=b(p(n.prototype),"remove",this).call(this,t,e);return this._forEachBlocksInRange(t,e,function(t,e,n,s){i.aggregate(t.remove(n,s))}),i}},{key:"nearestInputPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:T.NONE;if(!this._blocks.length)return 0;var n=new $(this,t);if(e===T.NONE)return n.pushRightBeforeInput()?n.pos:(n.popState(),n.pushLeftBeforeInput()?n.pos:this.value.length);if(e===T.LEFT||e===T.FORCE_LEFT){if(e===T.LEFT){if(n.pushRightBeforeFilled(),n.ok&&n.pos===t)return t;n.popState()}if(n.pushLeftBeforeInput(),n.pushLeftBeforeRequired(),n.pushLeftBeforeFilled(),e===T.LEFT){if(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.ok&&n.pos<=t)return n.pos;if(n.popState(),n.ok&&n.pos<=t)return n.pos;n.popState()}return n.ok?n.pos:e===T.FORCE_LEFT?0:(n.popState(),n.ok?n.pos:(n.popState(),n.ok?n.pos:0))}return e===T.RIGHT||e===T.FORCE_RIGHT?(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.pushRightBeforeFilled()?n.pos:e===T.FORCE_RIGHT?this.value.length:(n.popState(),n.ok?n.pos:(n.popState(),n.ok?n.pos:this.nearestInputPos(t,T.LEFT)))):t}},{key:"maskedBlock",value:function(t){return this.maskedBlocks(t)[0]}},{key:"maskedBlocks",value:function(t){var e=this,n=this._maskedBlocks[t];return n?n.map(function(t){return e._blocks[t]}):[]}}]),n}();q.DEFAULTS={lazy:!0,placeholderChar:"_"},q.STOP_CHAR="`",q.ESCAPE_CHAR="\\",q.InputDefinition=R,q.FixedDefinition=j,B.MaskedPattern=q;var U=function(t){f(n,q);var e=_(n);function n(){return c(this,n),e.apply(this,arguments)}return d(n,[{key:"_matchFrom",get:function(){return this.maxLength-String(this.from).length}},{key:"_update",value:function(t){t=Object.assign({to:this.to||0,from:this.from||0,maxLength:this.maxLength||0},t);var e=String(t.to).length;null!=t.maxLength&&(e=Math.max(e,t.maxLength)),t.maxLength=e;for(var i=String(t.from).padStart(e,"0"),s=String(t.to).padStart(e,"0"),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},s=w(F(b(p(n.prototype),"doPrepare",this).call(this,t.replace(/\D/g,""),i)),2);if(t=s[0],e=s[1],!this.autofix||!t)return t;var r=String(this.from).padStart(this.maxLength,"0"),o=String(this.to).padStart(this.maxLength,"0"),a=this.value+t;if(a.length>this.maxLength)return"";var u=w(this.boundaries(a),2),l=u[0],c=u[1];return Number(c)this.to?"pad"===this.autofix&&a.length=0}},{key:"date",get:function(){return this.typedValue},set:function(t){this.typedValue=t}},{key:"typedValue",get:function(){return this.isComplete?b(p(n.prototype),"typedValue",this):null},set:function(t){E(p(n.prototype),"typedValue",t,this,!0)}},{key:"maskEquals",value:function(t){return t===Date||b(p(n.prototype),"maskEquals",this).call(this,t)}}]),n}();Y.DEFAULTS={pattern:"d{.}`m{.}`Y",format:function(t){return t?[String(t.getDate()).padStart(2,"0"),String(t.getMonth()+1).padStart(2,"0"),t.getFullYear()].join("."):""},parse:function(t){var e=w(t.split("."),3),n=e[0],i=e[1],s=e[2];return new Date(s,i-1,n)}},Y.GET_DEFAULT_BLOCKS=function(){return{d:{mask:U,from:1,to:31,maxLength:2},m:{mask:U,from:1,to:12,maxLength:2},Y:{mask:U,from:1900,to:9999}}},B.MaskedDate=Y;var K=function(){function t(){c(this,t)}return d(t,[{key:"selectionStart",get:function(){var t;try{t=this._unsafeSelectionStart}catch(t){}return null!=t?t:this.value.length}},{key:"selectionEnd",get:function(){var t;try{t=this._unsafeSelectionEnd}catch(t){}return null!=t?t:this.value.length}},{key:"select",value:function(t,e){if(null!=t&&null!=e&&(t!==this.selectionStart||e!==this.selectionEnd))try{this._unsafeSelect(t,e)}catch(t){}}},{key:"_unsafeSelect",value:function(t,e){}},{key:"isActive",get:function(){return!1}},{key:"bindEvents",value:function(t){}},{key:"unbindEvents",value:function(){}}]),t}();B.MaskElement=K;var X=function(t){f(n,K);var e=_(n);function n(t){var i;return c(this,n),(i=e.call(this)).input=t,i._handlers={},i}return d(n,[{key:"rootElement",get:function(){var t,e,n;return null!==(t=null===(e=(n=this.input).getRootNode)||void 0===e?void 0:e.call(n))&&void 0!==t?t:document}},{key:"isActive",get:function(){return this.input===this.rootElement.activeElement}},{key:"_unsafeSelectionStart",get:function(){return this.input.selectionStart}},{key:"_unsafeSelectionEnd",get:function(){return this.input.selectionEnd}},{key:"_unsafeSelect",value:function(t,e){this.input.setSelectionRange(t,e)}},{key:"value",get:function(){return this.input.value},set:function(t){this.input.value=t}},{key:"bindEvents",value:function(t){var e=this;Object.keys(t).forEach(function(i){return e._toggleEventHandler(n.EVENTS_MAP[i],t[i])})}},{key:"unbindEvents",value:function(){var t=this;Object.keys(this._handlers).forEach(function(e){return t._toggleEventHandler(e)})}},{key:"_toggleEventHandler",value:function(t,e){this._handlers[t]&&(this.input.removeEventListener(t,this._handlers[t]),delete this._handlers[t]),e&&(this.input.addEventListener(t,e),this._handlers[t]=e)}}]),n}();X.EVENTS_MAP={selectionChange:"keydown",input:"input",drop:"drop",click:"click",focus:"focus",commit:"blur"},B.HTMLMaskElement=X;var G=function(t){f(n,X);var e=_(n);function n(){return c(this,n),e.apply(this,arguments)}return d(n,[{key:"_unsafeSelectionStart",get:function(){var t=this.rootElement,e=t.getSelection&&t.getSelection(),n=e&&e.anchorOffset,i=e&&e.focusOffset;return null==i||null==n||ni?n:i}},{key:"_unsafeSelect",value:function(t,e){if(this.rootElement.createRange){var n=this.rootElement.createRange();n.setStart(this.input.firstChild||this.input,t),n.setEnd(this.input.lastChild||this.input,e);var i=this.rootElement,s=i.getSelection&&i.getSelection();s&&(s.removeAllRanges(),s.addRange(n))}}},{key:"value",get:function(){return this.input.textContent},set:function(t){this.input.textContent=t}}]),n}();B.HTMLContenteditableMaskElement=G;var Q=["mask"],Z=function(){function t(e,n){c(this,t),this.el=e instanceof K?e:e.isContentEditable&&"INPUT"!==e.tagName&&"TEXTAREA"!==e.tagName?new G(e):new X(e),this.masked=M(n),this._listeners={},this._value="",this._unmaskedValue="",this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}return d(t,[{key:"mask",get:function(){return this.masked.mask},set:function(t){if(!this.maskEquals(t))if(t instanceof B.Masked||this.masked.constructor!==I(t)){var e=M({mask:t});e.unmaskedValue=this.masked.unmaskedValue,this.masked=e}else this.masked.updateOptions({mask:t})}},{key:"maskEquals",value:function(t){var e;return null==t||(null===(e=this.masked)||void 0===e?void 0:e.maskEquals(t))}},{key:"value",get:function(){return this._value},set:function(t){this.masked.value=t,this.updateControl(),this.alignCursor()}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(t){this.masked.unmaskedValue=t,this.updateControl(),this.alignCursor()}},{key:"typedValue",get:function(){return this.masked.typedValue},set:function(t){this.masked.typedValue=t,this.updateControl(),this.alignCursor()}},{key:"_bindEvents",value:function(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange})}},{key:"_unbindEvents",value:function(){this.el&&this.el.unbindEvents()}},{key:"_fireEvent",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i=0&&this._listeners[t].splice(n,1),this}},{key:"_onInput",value:function(t){if(this._inputEvent=t,this._abortUpdateCursor(),!this._selection)return this.updateValue();var e=new O(this.el.value,this.cursorPos,this.value,this._selection),n=this.masked.rawInputValue,i=this.masked.splice(e.startChangePos,e.removed.length,e.inserted,e.removeDirection).offset,s=n===this.masked.rawInputValue?e.removeDirection:T.NONE,r=this.masked.nearestInputPos(e.startChangePos+i,s);s!==T.NONE&&(r=this.masked.nearestInputPos(r,T.NONE)),this.updateControl(),this.updateCursor(r),delete this._inputEvent}},{key:"_onChange",value:function(){this.value!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}},{key:"_onDrop",value:function(t){t.preventDefault(),t.stopPropagation()}},{key:"_onFocus",value:function(t){this.alignCursorFriendly()}},{key:"_onClick",value:function(t){this.alignCursorFriendly()}},{key:"destroy",value:function(){this._unbindEvents(),this._listeners.length=0,delete this.el}}]),t}();B.InputMask=Z;var J=function(t){f(n,q);var e=_(n);function n(){return c(this,n),e.apply(this,arguments)}return d(n,[{key:"_update",value:function(t){t.enum&&(t.mask="*".repeat(t.enum[0].length)),b(p(n.prototype),"_update",this).call(this,t)}},{key:"doValidate",value:function(){for(var t,e=this,i=arguments.length,s=new Array(i),r=0;r=0})&&(t=b(p(n.prototype),"doValidate",this)).call.apply(t,[this].concat(s))}}]),n}();B.MaskedEnum=J;var tt=function(t){f(n,L);var e=_(n);function n(t){return c(this,n),e.call(this,Object.assign({},n.DEFAULTS,t))}return d(n,[{key:"_update",value:function(t){b(p(n.prototype),"_update",this).call(this,t),this._updateRegExps()}},{key:"_updateRegExps",value:function(){var t="^"+(this.allowNegative?"[+|\\-]?":""),e=(this.scale?"("+x(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExpInput=new RegExp(t+"(0|([1-9]+\\d*))?"+e),this._numberRegExp=new RegExp(t+"\\d*"+e),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(x).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(x(this.thousandsSeparator),"g")}},{key:"_removeThousandsSeparators",value:function(t){return t.replace(this._thousandsSeparatorRegExp,"")}},{key:"_insertThousandsSeparators",value:function(t){var e=t.split(this.radix);return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),e.join(this.radix)}},{key:"doPrepare",value:function(t){var e;t=t.replace(this._mapToRadixRegExp,this.radix);for(var i=this._removeThousandsSeparators(t),s=arguments.length,r=new Array(s>1?s-1:0),o=1;o1&&void 0!==arguments[1]&&arguments[1],n=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:this._value;return this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=arguments.length>2?arguments[2]:void 0,s=w(this._adjustRangeWithSeparators(t,e),2);return t=s[0],e=s[1],this._removeThousandsSeparators(b(p(n.prototype),"extractInput",this).call(this,t,e,i))}},{key:"_appendCharRaw",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.thousandsSeparator)return b(p(n.prototype),"_appendCharRaw",this).call(this,t,e);var i=e.tail&&e._beforeTailState?e._beforeTailState._value:this._value,s=this._separatorsCountFromSlice(i);this._value=this._removeThousandsSeparators(this.value);var r=b(p(n.prototype),"_appendCharRaw",this).call(this,t,e);this._value=this._insertThousandsSeparators(this._value);var o=e.tail&&e._beforeTailState?e._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(o);return r.tailShift+=(a-s)*this.thousandsSeparator.length,r.skip=!r.rawInserted&&t===this.thousandsSeparator,r}},{key:"_findSeparatorAround",value:function(t){if(this.thousandsSeparator){var e=t-this.thousandsSeparator.length+1,n=this.value.indexOf(this.thousandsSeparator,e);if(n<=t)return n}return-1}},{key:"_adjustRangeWithSeparators",value:function(t,e){var n=this._findSeparatorAround(t);n>=0&&(t=n);var i=this._findSeparatorAround(e);return i>=0&&(e=i+this.thousandsSeparator.length),[t,e]}},{key:"remove",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=w(this._adjustRangeWithSeparators(t,e),2);t=n[0],e=n[1];var i=this.value.slice(0,t),s=this.value.slice(e),r=this._separatorsCount(i.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(i+s));var o=this._separatorsCountFromSlice(i);return new C({tailShift:(o-r)*this.thousandsSeparator.length})}},{key:"nearestInputPos",value:function(t,e){if(!this.thousandsSeparator)return t;switch(e){case T.NONE:case T.LEFT:case T.FORCE_LEFT:var n=this._findSeparatorAround(t-1);if(n>=0){var i=n+this.thousandsSeparator.length;if(t=0)return s+this.thousandsSeparator.length}return t}},{key:"doValidate",value:function(t){var e=(t.input?this._numberRegExpInput:this._numberRegExp).test(this._removeThousandsSeparators(this.value));if(e){var i=this.number;e=e&&!isNaN(i)&&(null==this.min||this.min>=0||this.min<=this.number)&&(null==this.max||this.max<=0||this.number<=this.max)}return e&&b(p(n.prototype),"doValidate",this).call(this,t)}},{key:"doCommit",value:function(){if(this.value){var t=this.number,e=t;null!=this.min&&(e=Math.max(e,this.min)),null!=this.max&&(e=Math.min(e,this.max)),e!==t&&(this.unmaskedValue=String(e));var i=this.value;this.normalizeZeros&&(i=this._normalizeZeros(i)),this.padFractionalZeros&&this.scale>0&&(i=this._padFractionalZeros(i)),this._value=i}b(p(n.prototype),"doCommit",this).call(this)}},{key:"_normalizeZeros",value:function(t){var e=this._removeThousandsSeparators(t).split(this.radix);return e[0]=e[0].replace(/^(\D*)(0*)(\d*)/,function(t,e,n,i){return e+i}),t.length&&!/\d$/.test(e[0])&&(e[0]=e[0]+"0"),e.length>1&&(e[1]=e[1].replace(/0*$/,""),e[1].length||(e.length=1)),this._insertThousandsSeparators(e.join(this.radix))}},{key:"_padFractionalZeros",value:function(t){if(!t)return t;var e=t.split(this.radix);return e.length<2&&e.push(""),e[1]=e[1].padEnd(this.scale,"0"),e.join(this.radix)}},{key:"unmaskedValue",get:function(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,".")},set:function(t){E(p(n.prototype),"unmaskedValue",t.replace(".",this.radix),this,!0)}},{key:"typedValue",get:function(){return Number(this.unmaskedValue)},set:function(t){E(p(n.prototype),"unmaskedValue",String(t),this,!0)}},{key:"number",get:function(){return this.typedValue},set:function(t){this.typedValue=t}},{key:"allowNegative",get:function(){return this.signed||null!=this.min&&this.min<0||null!=this.max&&this.max<0}}]),n}();tt.DEFAULTS={radix:",",thousandsSeparator:"",mapToRadix:["."],scale:2,signed:!1,normalizeZeros:!0,padFractionalZeros:!1},B.MaskedNumber=tt;var et=function(t){f(n,L);var e=_(n);function n(){return c(this,n),e.apply(this,arguments)}return d(n,[{key:"_update",value:function(t){t.mask&&(t.validate=t.mask),b(p(n.prototype),"_update",this).call(this,t)}}]),n}();B.MaskedFunction=et;var nt=["compiledMasks","currentMaskRef","currentMask"],it=function(t){f(n,L);var e=_(n);function n(t){var i;return c(this,n),(i=e.call(this,Object.assign({},n.DEFAULTS,t))).currentMask=null,i}return d(n,[{key:"_update",value:function(t){b(p(n.prototype),"_update",this).call(this,t),"mask"in t&&(this.compiledMasks=Array.isArray(t.mask)?t.mask.map(function(t){return M(t)}):[])}},{key:"_appendCharRaw",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this._applyDispatch(t,e);return this.currentMask&&n.aggregate(this.currentMask._appendChar(t,e)),n}},{key:"_applyDispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.tail&&null!=e._beforeTailState?e._beforeTailState._value:this.value,i=this.rawInputValue,s=e.tail&&null!=e._beforeTailState?e._beforeTailState._rawInputValue:i,r=i.slice(s.length),o=this.currentMask,a=new C,u=o&&o.state;if(this.currentMask=this.doDispatch(t,Object.assign({},e)),this.currentMask)if(this.currentMask!==o){if(this.currentMask.reset(),s){var l=this.currentMask.append(s,{raw:!0});a.tailShift=l.inserted.length-n.length}r&&(a.tailShift+=this.currentMask.append(r,{raw:!0,tail:!0}).tailShift)}else this.currentMask.state=u;return a}},{key:"_appendPlaceholder",value:function(){var t=this._applyDispatch.apply(this,arguments);return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}},{key:"_appendEager",value:function(){var t=this._applyDispatch.apply(this,arguments);return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}},{key:"doDispatch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.dispatch(t,this,e)}},{key:"doValidate",value:function(){for(var t,e,i=arguments.length,s=new Array(i),r=0;r1&&void 0!==arguments[1]?arguments[1]:st.MASKED,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:st.MASKED,i=M(t);return function(t){return i.runIsolated(function(i){return i[e]=t,i[n]})}}B.PIPE_TYPE=st,B.createPipe=rt,B.pipe=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i0&&(i=Ot(n.width)/o||1),r>0&&(s=Ot(n.height)/r||1)}return{width:n.width/i,height:n.height/s,top:n.top/s,right:n.right/i,bottom:n.bottom/s,left:n.left/i,x:n.left/i,y:n.top/s}}function Bt(t){var e=Dt(t),n=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:i}}function Lt(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&Ct(n)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function It(t){return Et(t).getComputedStyle(t)}function Mt(t){return["table","td","th"].indexOf(kt(t))>=0}function Pt(t){return((wt(t)?t.ownerDocument:t.document)||window.document).documentElement}function Nt(t){return"html"===kt(t)?t:t.assignedSlot||t.parentNode||(Ct(t)?t.host:null)||Pt(t)}function Rt(t){return At(t)&&"fixed"!==It(t).position?t.offsetParent:null}function jt(t){for(var e=Et(t),n=Rt(t);n&&Mt(n)&&"static"===It(n).position;)n=Rt(n);return n&&("html"===kt(n)||"body"===kt(n)&&"static"===It(n).position)?e:n||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&At(t)&&"fixed"===It(t).position)return null;var n=Nt(t);for(Ct(n)&&(n=n.host);At(n)&&["html","body"].indexOf(kt(n))<0;){var i=It(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||e&&"filter"===i.willChange||e&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(t)||e}function Vt(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ht(t,e,n){return xt(t,Ft(e,n))}function $t(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function zt(t,e){return e.reduce(function(e,n){return e[n]=t,e},{})}var Wt=function(t,e){return $t("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:zt(t,ht))};var qt={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,n=t.state,i=t.name,s=t.options,r=n.elements.arrow,o=n.modifiersData.popperOffsets,a=Tt(n.placement),u=Vt(a),l=[lt,ut].indexOf(a)>=0?"height":"width";if(r&&o){var c=Wt(s.padding,n),h=Bt(r),d="y"===u?ot:lt,f="y"===u?at:ut,p=n.rects.reference[l]+n.rects.reference[u]-o[u]-n.rects.popper[l],g=o[u]-n.rects.reference[u],m=jt(r),v=m?"y"===u?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,y=c[d],b=v-h[l]-c[f],k=v/2-h[l]/2+_,E=Ht(y,k,b),w=u;n.modifiersData[i]=((e={})[w]=E,e.centerOffset=E-k,e)}},effect:function(t){var e=t.state,n=t.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=e.elements.popper.querySelector(i)))&&Lt(e.elements.popper,i)&&(e.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ut(t){return t.split("-")[1]}var Yt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Kt(t){var e,n=t.popper,i=t.popperRect,s=t.placement,r=t.variation,o=t.offsets,a=t.position,u=t.gpuAcceleration,l=t.adaptive,c=t.roundOffsets,h=t.isFixed,d=o.x,f=void 0===d?0:d,p=o.y,g=void 0===p?0:p,m="function"==typeof c?c({x:f,y:g}):{x:f,y:g};f=m.x,g=m.y;var v=o.hasOwnProperty("x"),_=o.hasOwnProperty("y"),y=lt,b=ot,k=window;if(l){var E=jt(n),w="clientHeight",A="clientWidth";if(E===Et(n)&&"static"!==It(E=Pt(n)).position&&"absolute"===a&&(w="scrollHeight",A="scrollWidth"),E=E,s===ot||(s===lt||s===ut)&&r===ft)b=at,g-=(h&&E===k&&k.visualViewport?k.visualViewport.height:E[w])-i.height,g*=u?1:-1;if(s===lt||(s===ot||s===at)&&r===ft)y=ut,f-=(h&&E===k&&k.visualViewport?k.visualViewport.width:E[A])-i.width,f*=u?1:-1}var C,S=Object.assign({position:a},l&&Yt),T=!0===c?function(t){var e=t.x,n=t.y,i=window.devicePixelRatio||1;return{x:Ot(e*i)/i||0,y:Ot(n*i)/i||0}}({x:f,y:g}):{x:f,y:g};return f=T.x,g=T.y,u?Object.assign({},S,((C={})[b]=_?"0":"",C[y]=v?"0":"",C.transform=(k.devicePixelRatio||1)<=1?"translate("+f+"px, "+g+"px)":"translate3d("+f+"px, "+g+"px, 0)",C)):Object.assign({},S,((e={})[b]=_?g+"px":"",e[y]=v?f+"px":"",e.transform="",e))}var Xt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,i=n.gpuAcceleration,s=void 0===i||i,r=n.adaptive,o=void 0===r||r,a=n.roundOffsets,u=void 0===a||a,l={placement:Tt(e.placement),variation:Ut(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Kt(Object.assign({},l,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:o,roundOffsets:u})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Kt(Object.assign({},l,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},Gt={passive:!0};var Qt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,i=t.options,s=i.scroll,r=void 0===s||s,o=i.resize,a=void 0===o||o,u=Et(e.elements.popper),l=[].concat(e.scrollParents.reference,e.scrollParents.popper);return r&&l.forEach(function(t){t.addEventListener("scroll",n.update,Gt)}),a&&u.addEventListener("resize",n.update,Gt),function(){r&&l.forEach(function(t){t.removeEventListener("scroll",n.update,Gt)}),a&&u.removeEventListener("resize",n.update,Gt)}},data:{}},Zt={left:"right",right:"left",bottom:"top",top:"bottom"};function Jt(t){return t.replace(/left|right|bottom|top/g,function(t){return Zt[t]})}var te={start:"end",end:"start"};function ee(t){return t.replace(/start|end/g,function(t){return te[t]})}function ne(t){var e=Et(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ie(t){return Dt(Pt(t)).left+ne(t).scrollLeft}function se(t){var e=It(t),n=e.overflow,i=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function re(t,e){var n;void 0===e&&(e=[]);var i=function t(e){return["html","body","#document"].indexOf(kt(e))>=0?e.ownerDocument.body:At(e)&&se(e)?e:t(Nt(e))}(t),s=i===(null==(n=t.ownerDocument)?void 0:n.body),r=Et(i),o=s?[r].concat(r.visualViewport||[],se(i)?i:[]):i,a=e.concat(o);return s?a:a.concat(re(Nt(o)))}function oe(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ae(t,e){return e===gt?oe(function(t){var e=Et(t),n=Pt(t),i=e.visualViewport,s=n.clientWidth,r=n.clientHeight,o=0,a=0;return i&&(s=i.width,r=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=i.offsetLeft,a=i.offsetTop)),{width:s,height:r,x:o+ie(t),y:a}}(t)):wt(e)?function(t){var e=Dt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):oe(function(t){var e,n=Pt(t),i=ne(t),s=null==(e=t.ownerDocument)?void 0:e.body,r=xt(n.scrollWidth,n.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),o=xt(n.scrollHeight,n.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-i.scrollLeft+ie(t),u=-i.scrollTop;return"rtl"===It(s||n).direction&&(a+=xt(n.clientWidth,s?s.clientWidth:0)-r),{width:r,height:o,x:a,y:u}}(Pt(t)))}function ue(t,e,n){var i="clippingParents"===e?function(t){var e=re(Nt(t)),n=["absolute","fixed"].indexOf(It(t).position)>=0&&At(t)?jt(t):t;return wt(n)?e.filter(function(t){return wt(t)&&Lt(t,n)&&"body"!==kt(t)}):[]}(t):[].concat(e),s=[].concat(i,[n]),r=s[0],o=s.reduce(function(e,n){var i=ae(t,n);return e.top=xt(i.top,e.top),e.right=Ft(i.right,e.right),e.bottom=Ft(i.bottom,e.bottom),e.left=xt(i.left,e.left),e},ae(t,r));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function le(t){var e,n=t.reference,i=t.element,s=t.placement,r=s?Tt(s):null,o=s?Ut(s):null,a=n.x+n.width/2-i.width/2,u=n.y+n.height/2-i.height/2;switch(r){case ot:e={x:a,y:n.y-i.height};break;case at:e={x:a,y:n.y+n.height};break;case ut:e={x:n.x+n.width,y:u};break;case lt:e={x:n.x-i.width,y:u};break;default:e={x:n.x,y:n.y}}var l=r?Vt(r):null;if(null!=l){var c="y"===l?"height":"width";switch(o){case dt:e[l]=e[l]-(n[c]/2-i[c]/2);break;case ft:e[l]=e[l]+(n[c]/2-i[c]/2)}}return e}function ce(t,e){void 0===e&&(e={});var n=e,i=n.placement,s=void 0===i?t.placement:i,r=n.boundary,o=void 0===r?pt:r,a=n.rootBoundary,u=void 0===a?gt:a,l=n.elementContext,c=void 0===l?mt:l,h=n.altBoundary,d=void 0!==h&&h,f=n.padding,p=void 0===f?0:f,g=$t("number"!=typeof p?p:zt(p,ht)),m=c===mt?vt:mt,v=t.rects.popper,_=t.elements[d?m:c],y=ue(wt(_)?_:_.contextElement||Pt(t.elements.popper),o,u),b=Dt(t.elements.reference),k=le({reference:b,element:v,strategy:"absolute",placement:s}),E=oe(Object.assign({},v,k)),w=c===mt?E:b,A={top:y.top-w.top+g.top,bottom:w.bottom-y.bottom+g.bottom,left:y.left-w.left+g.left,right:w.right-y.right+g.right},C=t.modifiersData.offset;if(c===mt&&C){var S=C[s];Object.keys(A).forEach(function(t){var e=[ut,at].indexOf(t)>=0?1:-1,n=[ot,at].indexOf(t)>=0?"y":"x";A[t]+=S[n]*e})}return A}function he(t,e){void 0===e&&(e={});var n=e,i=n.placement,s=n.boundary,r=n.rootBoundary,o=n.padding,a=n.flipVariations,u=n.allowedAutoPlacements,l=void 0===u?yt:u,c=Ut(i),h=c?a?_t:_t.filter(function(t){return Ut(t)===c}):ht,d=h.filter(function(t){return l.indexOf(t)>=0});0===d.length&&(d=h);var f=d.reduce(function(e,n){return e[n]=ce(t,{placement:n,boundary:s,rootBoundary:r,padding:o})[Tt(n)],e},{});return Object.keys(f).sort(function(t,e){return f[t]-f[e]})}var de={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,i=t.name;if(!e.modifiersData[i]._skip){for(var s=n.mainAxis,r=void 0===s||s,o=n.altAxis,a=void 0===o||o,u=n.fallbackPlacements,l=n.padding,c=n.boundary,h=n.rootBoundary,d=n.altBoundary,f=n.flipVariations,p=void 0===f||f,g=n.allowedAutoPlacements,m=e.options.placement,v=Tt(m),_=u||(v!==m&&p?function(t){if(Tt(t)===ct)return[];var e=Jt(t);return[ee(t),e,ee(e)]}(m):[Jt(m)]),y=[m].concat(_).reduce(function(t,n){return t.concat(Tt(n)===ct?he(e,{placement:n,boundary:c,rootBoundary:h,padding:l,flipVariations:p,allowedAutoPlacements:g}):n)},[]),b=e.rects.reference,k=e.rects.popper,E=new Map,w=!0,A=y[0],C=0;C=0,O=F?"width":"height",D=ce(e,{placement:S,boundary:c,rootBoundary:h,altBoundary:d,padding:l}),B=F?x?ut:lt:x?at:ot;b[O]>k[O]&&(B=Jt(B));var L=Jt(B),I=[];if(r&&I.push(D[T]<=0),a&&I.push(D[B]<=0,D[L]<=0),I.every(function(t){return t})){A=S,w=!1;break}E.set(S,I)}if(w)for(var M=function(t){var e=y.find(function(e){var n=E.get(e);if(n)return n.slice(0,t).every(function(t){return t})});if(e)return A=e,"break"},P=p?3:1;P>0&&"break"!==M(P);P--);e.placement!==A&&(e.modifiersData[i]._skip=!0,e.placement=A,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function fe(t,e,n){return void 0===n&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function pe(t){return[ot,ut,at,lt].some(function(e){return t[e]>=0})}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,i=e.rects.reference,s=e.rects.popper,r=e.modifiersData.preventOverflow,o=ce(e,{elementContext:"reference"}),a=ce(e,{altBoundary:!0}),u=fe(o,i),l=fe(a,s,r),c=pe(u),h=pe(l);e.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:h},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":h})}};var me={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,n=t.options,i=t.name,s=n.offset,r=void 0===s?[0,0]:s,o=yt.reduce(function(t,n){return t[n]=function(t,e,n){var i=Tt(t),s=[lt,ot].indexOf(i)>=0?-1:1,r="function"==typeof n?n(Object.assign({},e,{placement:t})):n,o=r[0],a=r[1];return o=o||0,a=(a||0)*s,[lt,ut].indexOf(i)>=0?{x:a,y:o}:{x:o,y:a}}(n,e.rects,r),t},{}),a=o[e.placement],u=a.x,l=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=u,e.modifiersData.popperOffsets.y+=l),e.modifiersData[i]=o}};var ve={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=le({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}};var _e={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,i=t.name,s=n.mainAxis,r=void 0===s||s,o=n.altAxis,a=void 0!==o&&o,u=n.boundary,l=n.rootBoundary,c=n.altBoundary,h=n.padding,d=n.tether,f=void 0===d||d,p=n.tetherOffset,g=void 0===p?0:p,m=ce(e,{boundary:u,rootBoundary:l,padding:h,altBoundary:c}),v=Tt(e.placement),_=Ut(e.placement),y=!_,b=Vt(v),k="x"===b?"y":"x",E=e.modifiersData.popperOffsets,w=e.rects.reference,A=e.rects.popper,C="function"==typeof g?g(Object.assign({},e.rects,{placement:e.placement})):g,S="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),T=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,x={x:0,y:0};if(E){if(r){var F,O="y"===b?ot:lt,D="y"===b?at:ut,B="y"===b?"height":"width",L=E[b],I=L+m[O],M=L-m[D],P=f?-A[B]/2:0,N=_===dt?w[B]:A[B],R=_===dt?-A[B]:-w[B],j=e.elements.arrow,V=f&&j?Bt(j):{width:0,height:0},H=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},$=H[O],z=H[D],W=Ht(0,w[B],V[B]),q=y?w[B]/2-P-W-$-S.mainAxis:N-W-$-S.mainAxis,U=y?-w[B]/2+P+W+z+S.mainAxis:R+W+z+S.mainAxis,Y=e.elements.arrow&&jt(e.elements.arrow),K=Y?"y"===b?Y.clientTop||0:Y.clientLeft||0:0,X=null!=(F=null==T?void 0:T[b])?F:0,G=L+U-X,Q=Ht(f?Ft(I,L+q-X-K):I,L,f?xt(M,G):M);E[b]=Q,x[b]=Q-L}if(a){var Z,J="x"===b?ot:lt,tt="x"===b?at:ut,et=E[k],nt="y"===k?"height":"width",it=et+m[J],st=et-m[tt],rt=-1!==[ot,lt].indexOf(v),ct=null!=(Z=null==T?void 0:T[k])?Z:0,ht=rt?it:et-w[nt]-A[nt]-ct+S.altAxis,ft=rt?et+w[nt]+A[nt]-ct-S.altAxis:st,pt=f&&rt?function(t,e,n){var i=Ht(t,e,n);return i>n?n:i}(ht,et,ft):Ht(f?ht:it,et,f?ft:st);E[k]=pt,x[k]=pt-et}e.modifiersData[i]=x}},requiresIfExists:["offset"]};function ye(t,e,n){void 0===n&&(n=!1);var i,s,r=At(e),o=At(e)&&function(t){var e=t.getBoundingClientRect(),n=Ot(e.width)/t.offsetWidth||1,i=Ot(e.height)/t.offsetHeight||1;return 1!==n||1!==i}(e),a=Pt(e),u=Dt(t,o),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&(("body"!==kt(e)||se(a))&&(l=(i=e)!==Et(i)&&At(i)?{scrollLeft:(s=i).scrollLeft,scrollTop:s.scrollTop}:ne(i)),At(e)?((c=Dt(e,!0)).x+=e.clientLeft,c.y+=e.clientTop):a&&(c.x=ie(a))),{x:u.left+l.scrollLeft-c.x,y:u.top+l.scrollTop-c.y,width:u.width,height:u.height}}function be(t){var e=new Map,n=new Set,i=[];return t.forEach(function(t){e.set(t.name,t)}),t.forEach(function(t){n.has(t.name)||function t(s){n.add(s.name),[].concat(s.requires||[],s.requiresIfExists||[]).forEach(function(i){if(!n.has(i)){var s=e.get(i);s&&t(s)}}),i.push(s)}(t)}),i}var ke={placement:"bottom",modifiers:[],strategy:"absolute"};function Ee(){for(var t=arguments.length,e=new Array(t),n=0;n{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},Fe=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let n=t.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),e=n&&"#"!==n?n.trim():null}return e},Oe=t=>{const e=Fe(t);return e&&document.querySelector(e)?e:null},De=t=>{const e=Fe(t);return e?document.querySelector(e):null},Be=t=>{t.dispatchEvent(new Event("transitionend"))},Le=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Ie=t=>Le(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,Me=(t,e,n)=>{Object.keys(n).forEach(i=>{const s=n[i],r=e[i],o=r&&Le(r)?"element":(t=>null==t?`${t}`:{}.toString.call(t).match(/\s([a-z]+)/i)[1].toLowerCase())(r);if(!new RegExp(s).test(o))throw new TypeError(`${t.toUpperCase()}: Option "${i}" provided type "${o}" but expected type "${s}".`)})},Pe=t=>!(!Le(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),Ne=t=>!t||t.nodeType!==Node.ELEMENT_NODE||(!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled"))),Re=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?Re(t.parentNode):null},je=()=>{},Ve=t=>{t.offsetHeight},He=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},$e=[],ze=()=>"rtl"===document.documentElement.dir,We=t=>{(t=>{"loading"===document.readyState?($e.length||document.addEventListener("DOMContentLoaded",()=>{$e.forEach(t=>t())}),$e.push(t)):t()})(()=>{const e=He();if(e){const n=t.NAME,i=e.fn[n];e.fn[n]=t.jQueryInterface,e.fn[n].Constructor=t,e.fn[n].noConflict=(()=>(e.fn[n]=i,t.jQueryInterface))}})},qe=t=>{"function"==typeof t&&t()},Ue=(t,e,n=!0)=>{if(!n)return void qe(t);const i=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:n}=window.getComputedStyle(t);const i=Number.parseFloat(e),s=Number.parseFloat(n);return i||s?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0})(e)+5;let s=!1;const r=({target:n})=>{n===e&&(s=!0,e.removeEventListener("transitionend",r),qe(t))};e.addEventListener("transitionend",r),setTimeout(()=>{s||Be(e)},i)},Ye=(t,e,n,i)=>{let s=t.indexOf(e);if(-1===s)return t[!n&&i?t.length-1:0];const r=t.length;return s+=n?1:-1,i&&(s=(s+r)%r),t[Math.max(0,Math.min(s,r-1))]},Ke=/[^.]*(?=\..*)\.|.*/,Xe=/\..*/,Ge=/::\d+$/,Qe={};let Ze=1;const Je={mouseenter:"mouseover",mouseleave:"mouseout"},tn=/^(mouseenter|mouseleave)/i,en=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function nn(t,e){return e&&`${e}::${Ze++}`||t.uidEvent||Ze++}function sn(t){const e=nn(t);return t.uidEvent=e,Qe[e]=Qe[e]||{},Qe[e]}function rn(t,e,n=null){const i=Object.keys(t);for(let s=0,r=i.length;s(function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)});i?i=t(i):n=t(n)}const[r,o,a]=on(e,n,i),u=sn(t),l=u[a]||(u[a]={}),c=rn(l,o,r?n:null);if(c)return void(c.oneOff=c.oneOff&&s);const h=nn(o,e.replace(Ke,"")),d=r?function(t,e,n){return function i(s){const r=t.querySelectorAll(e);for(let{target:o}=s;o&&o!==this;o=o.parentNode)for(let a=r.length;a--;)if(r[a]===o)return s.delegateTarget=o,i.oneOff&&cn.off(t,s.type,e,n),n.apply(o,[s]);return null}}(t,n,i):function(t,e){return function n(i){return i.delegateTarget=t,n.oneOff&&cn.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=r?n:null,d.originalHandler=o,d.oneOff=s,d.uidEvent=h,l[h]=d,t.addEventListener(a,d,r)}function un(t,e,n,i,s){const r=rn(e[n],i,s);r&&(t.removeEventListener(n,r,Boolean(s)),delete e[n][r.uidEvent])}function ln(t){return t=t.replace(Xe,""),Je[t]||t}const cn={on(t,e,n,i){an(t,e,n,i,!1)},one(t,e,n,i){an(t,e,n,i,!0)},off(t,e,n,i){if("string"!=typeof e||!t)return;const[s,r,o]=on(e,n,i),a=o!==e,u=sn(t),l=e.startsWith(".");if(void 0!==r){if(!u||!u[o])return;return void un(t,u,o,r,s?n:null)}l&&Object.keys(u).forEach(n=>{!function(t,e,n,i){const s=e[n]||{};Object.keys(s).forEach(r=>{if(r.includes(i)){const i=s[r];un(t,e,n,i.originalHandler,i.delegationSelector)}})}(t,u,n,e.slice(1))});const c=u[o]||{};Object.keys(c).forEach(n=>{const i=n.replace(Ge,"");if(!a||e.includes(i)){const e=c[n];un(t,u,o,e.originalHandler,e.delegationSelector)}})},trigger(t,e,n){if("string"!=typeof e||!t)return null;const i=He(),s=ln(e),r=e!==s,o=en.has(s);let a,u=!0,l=!0,c=!1,h=null;return r&&i&&(a=i.Event(e,n),i(t).trigger(a),u=!a.isPropagationStopped(),l=!a.isImmediatePropagationStopped(),c=a.isDefaultPrevented()),o?(h=document.createEvent("HTMLEvents")).initEvent(s,u,!0):h=new CustomEvent(e,{bubbles:u,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(t=>{Object.defineProperty(h,t,{get:()=>n[t]})}),c&&h.preventDefault(),l&&t.dispatchEvent(h),h.defaultPrevented&&void 0!==a&&a.preventDefault(),h}},hn=new Map,dn={set(t,e,n){hn.has(t)||hn.set(t,new Map);const i=hn.get(t);i.has(e)||0===i.size?i.set(e,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`)},get:(t,e)=>hn.has(t)&&hn.get(t).get(e)||null,remove(t,e){if(!hn.has(t))return;const n=hn.get(t);n.delete(e),0===n.size&&hn.delete(t)}},fn="5.1.3";class pn{constructor(t){(t=Ie(t))&&(this._element=t,dn.set(this._element,this.constructor.DATA_KEY,this))}dispose(){dn.remove(this._element,this.constructor.DATA_KEY),cn.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach(t=>{this[t]=null})}_queueCallback(t,e,n=!0){Ue(t,e,n)}static getInstance(t){return dn.get(Ie(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return fn}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const gn=(t,e="hide")=>{const n=`click.dismiss${t.EVENT_KEY}`,i=t.NAME;cn.on(document,n,`[data-bs-dismiss="${i}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),Ne(this))return;const s=De(this)||this.closest(`.${i}`);t.getOrCreateInstance(s)[e]()})},mn="alert",vn="close.bs.alert",_n="closed.bs.alert",yn="fade",bn="show";class kn extends pn{static get NAME(){return mn}close(){if(cn.trigger(this._element,vn).defaultPrevented)return;this._element.classList.remove(bn);const t=this._element.classList.contains(yn);this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),cn.trigger(this._element,_n),this.dispose()}static jQueryInterface(t){return this.each(function(){const e=kn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}gn(kn,"close"),We(kn);const En="button",wn="active";class An extends pn{static get NAME(){return En}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(wn))}static jQueryInterface(t){return this.each(function(){const e=An.getOrCreateInstance(this);"toggle"===t&&e[t]()})}}function Cn(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function Sn(t){return t.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}cn.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');An.getOrCreateInstance(e).toggle()}),We(An);const Tn={setDataAttribute(t,e,n){t.setAttribute(`data-bs-${Sn(e)}`,n)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${Sn(e)}`)},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter(t=>t.startsWith("bs")).forEach(n=>{let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=Cn(t.dataset[n])}),e},getDataAttribute:(t,e)=>Cn(t.getAttribute(`data-bs-${Sn(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},xn={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const n=[];let i=t.parentNode;for(;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)i.matches(e)&&n.push(i),i=i.parentNode;return n},prev(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return[n];n=n.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(t=>`${t}:not([tabindex^="-"])`).join(", ");return this.find(e,t).filter(t=>!Ne(t)&&Pe(t))}},Fn="carousel",On=500,Dn=40,Bn={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Ln={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},In="next",Mn="prev",Pn="left",Nn="right",Rn={ArrowLeft:Nn,ArrowRight:Pn},jn="slide.bs.carousel",Vn="slid.bs.carousel",Hn="keydown.bs.carousel",$n="mouseenter.bs.carousel",zn="mouseleave.bs.carousel",Wn="touchstart.bs.carousel",qn="touchmove.bs.carousel",Un="touchend.bs.carousel",Yn="pointerdown.bs.carousel",Kn="pointerup.bs.carousel",Xn="dragstart.bs.carousel",Gn="carousel",Qn="active",Zn="slide",Jn="carousel-item-end",ti="carousel-item-start",ei="carousel-item-next",ni="carousel-item-prev",ii="pointer-event",si=".active",ri=".active.carousel-item",oi=".carousel-item",ai=".carousel-item img",ui=".carousel-item-next, .carousel-item-prev",li=".carousel-indicators",ci="[data-bs-target]",hi="touch",di="pen";class fi extends pn{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=xn.findOne(li,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return Bn}static get NAME(){return Fn}next(){this._slide(In)}nextWhenVisible(){!document.hidden&&Pe(this._element)&&this.next()}prev(){this._slide(Mn)}pause(t){t||(this._isPaused=!0),xn.findOne(ui,this._element)&&(Be(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=xn.findOne(ri,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void cn.one(this._element,Vn,()=>this.to(t));if(e===t)return this.pause(),void this.cycle();const n=t>e?In:Mn;this._slide(n,this._items[t])}_getConfig(t){return t={...Bn,...Tn.getDataAttributes(this._element),..."object"==typeof t?t:{}},Me(Fn,t,Ln),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=Dn)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?Nn:Pn)}_addEventListeners(){this._config.keyboard&&cn.on(this._element,Hn,t=>this._keydown(t)),"hover"===this._config.pause&&(cn.on(this._element,$n,t=>this.pause(t)),cn.on(this._element,zn,t=>this.cycle(t))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&(t.pointerType===di||t.pointerType===hi),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},n=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},i=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(t=>this.cycle(t),On+this._config.interval))};xn.find(ai,this._element).forEach(t=>{cn.on(t,Xn,t=>t.preventDefault())}),this._pointerEvent?(cn.on(this._element,Yn,t=>e(t)),cn.on(this._element,Kn,t=>i(t)),this._element.classList.add(ii)):(cn.on(this._element,Wn,t=>e(t)),cn.on(this._element,qn,t=>n(t)),cn.on(this._element,Un,t=>i(t)))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Rn[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?xn.find(oi,t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const n=t===In;return Ye(this._items,e,n,this._config.wrap)}_triggerSlideEvent(t,e){const n=this._getItemIndex(t),i=this._getItemIndex(xn.findOne(ri,this._element));return cn.trigger(this._element,jn,{relatedTarget:t,direction:e,from:i,to:n})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=xn.findOne(si,this._indicatorsElement);e.classList.remove(Qn),e.removeAttribute("aria-current");const n=xn.find(ci,this._indicatorsElement);for(let e=0;e{cn.trigger(this._element,Vn,{relatedTarget:r,direction:h,from:s,to:o})};if(this._element.classList.contains(Zn)){r.classList.add(c),Ve(r),i.classList.add(l),r.classList.add(l);const t=()=>{r.classList.remove(l,c),r.classList.add(Qn),i.classList.remove(Qn,c,l),this._isSliding=!1,setTimeout(d,0)};this._queueCallback(t,i,!0)}else i.classList.remove(Qn),r.classList.add(Qn),this._isSliding=!1,d();a&&this.cycle()}_directionToOrder(t){return[Nn,Pn].includes(t)?ze()?t===Pn?Mn:In:t===Pn?In:Mn:t}_orderToDirection(t){return[In,Mn].includes(t)?ze()?t===Mn?Pn:Nn:t===Mn?Nn:Pn:t}static carouselInterface(t,e){const n=fi.getOrCreateInstance(t,e);let{_config:i}=n;"object"==typeof e&&(i={...i,...e});const s="string"==typeof e?e:i.slide;if("number"==typeof e)n.to(e);else if("string"==typeof s){if(void 0===n[s])throw new TypeError(`No method named "${s}"`);n[s]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}static jQueryInterface(t){return this.each(function(){fi.carouselInterface(this,t)})}static dataApiClickHandler(t){const e=De(this);if(!e||!e.classList.contains(Gn))return;const n={...Tn.getDataAttributes(e),...Tn.getDataAttributes(this)},i=this.getAttribute("data-bs-slide-to");i&&(n.interval=!1),fi.carouselInterface(e,n),i&&fi.getInstance(e).to(i),t.preventDefault()}}cn.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",fi.dataApiClickHandler),cn.on(window,"load.bs.carousel.data-api",()=>{const t=xn.find('[data-bs-ride="carousel"]');for(let e=0,n=t.length;et===this._element);null!==i&&s.length&&(this._selector=i,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return vi}static get NAME(){return pi}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=xn.find(xi,this._config.parent);e=xn.find(Bi,this._config.parent).filter(e=>!t.includes(e))}const n=xn.findOne(this._selector);if(e.length){const i=e.find(t=>n!==t);if((t=i?Ii.getInstance(i):null)&&t._isTransitioning)return}if(cn.trigger(this._element,yi).defaultPrevented)return;e.forEach(e=>{n!==e&&Ii.getOrCreateInstance(e,{toggle:!1}).hide(),t||dn.set(e,gi,null)});const i=this._getDimension();this._element.classList.remove(Ci),this._element.classList.add(Si),this._element.style[i]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${i[0].toUpperCase()+i.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(Si),this._element.classList.add(Ci,Ai),this._element.style[i]="",cn.trigger(this._element,bi)},this._element,!0),this._element.style[i]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(cn.trigger(this._element,ki).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,Ve(this._element),this._element.classList.add(Si),this._element.classList.remove(Ci,Ai);const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove(Si),this._element.classList.add(Ci),cn.trigger(this._element,Ei)},this._element,!0)}_isShown(t=this._element){return t.classList.contains(Ai)}_getConfig(t){return(t={...vi,...Tn.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=Ie(t.parent),Me(pi,t,_i),t}_getDimension(){return this._element.classList.contains(Fi)?Oi:Di}_initializeChildren(){if(!this._config.parent)return;const t=xn.find(xi,this._config.parent);xn.find(Li,this._config.parent).filter(e=>!t.includes(e)).forEach(t=>{const e=De(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))})}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach(t=>{e?t.classList.remove(Ti):t.classList.add(Ti),t.setAttribute("aria-expanded",e)})}static jQueryInterface(t){return this.each(function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const n=Ii.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}})}}cn.on(document,wi,Li,function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=Oe(this);xn.find(e).forEach(t=>{Ii.getOrCreateInstance(t,{toggle:!1}).toggle()})}),We(Ii);const Mi="dropdown",Pi="Escape",Ni="Space",Ri="Tab",ji="ArrowUp",Vi="ArrowDown",Hi=2,$i=new RegExp(`${ji}|${Vi}|${Pi}`),zi="hide.bs.dropdown",Wi="hidden.bs.dropdown",qi="show.bs.dropdown",Ui="shown.bs.dropdown",Yi="show",Ki="dropup",Xi="dropend",Gi="dropstart",Qi="navbar",Zi='[data-bs-toggle="dropdown"]',Ji=".dropdown-menu",ts=".navbar-nav",es=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",ns=ze()?"top-end":"top-start",is=ze()?"top-start":"top-end",ss=ze()?"bottom-end":"bottom-start",rs=ze()?"bottom-start":"bottom-end",os=ze()?"left-start":"right-start",as=ze()?"right-start":"left-start",us={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},ls={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class cs extends pn{constructor(t,e){super(t),this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar()}static get Default(){return us}static get DefaultType(){return ls}static get NAME(){return Mi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Ne(this._element)||this._isShown(this._menu))return;const t={relatedTarget:this._element};if(cn.trigger(this._element,qi,t).defaultPrevented)return;const e=cs.getParentFromElement(this._element);this._inNavbar?Tn.setDataAttribute(this._menu,"popper","none"):this._createPopper(e),"ontouchstart"in document.documentElement&&!e.closest(ts)&&[].concat(...document.body.children).forEach(t=>cn.on(t,"mouseover",je)),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Yi),this._element.classList.add(Yi),cn.trigger(this._element,Ui,t)}hide(){if(Ne(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){cn.trigger(this._element,zi,t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>cn.off(t,"mouseover",je)),this._popper&&this._popper.destroy(),this._menu.classList.remove(Yi),this._element.classList.remove(Yi),this._element.setAttribute("aria-expanded","false"),Tn.removeDataAttribute(this._menu,"popper"),cn.trigger(this._element,Wi,t))}_getConfig(t){if(t={...this.constructor.Default,...Tn.getDataAttributes(this._element),...t},Me(Mi,t,this.constructor.DefaultType),"object"==typeof t.reference&&!Le(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Mi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(t){if(void 0===Te)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:Le(this._config.reference)?e=Ie(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const n=this._getPopperConfig(),i=n.modifiers.find(t=>"applyStyles"===t.name&&!1===t.enabled);this._popper=Se(e,this._menu,n),i&&Tn.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains(Yi)}_getMenuElement(){return xn.next(this._element,Ji)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains(Xi))return os;if(t.classList.contains(Gi))return as;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains(Ki)?e?is:ns:e?rs:ss}_detectNavbar(){return null!==this._element.closest(`.${Qi}`)}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const n=xn.find(es,this._menu).filter(Pe);n.length&&Ye(n,e,t===Vi,!n.includes(e)).focus()}static jQueryInterface(t){return this.each(function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}static clearMenus(t){if(t&&(t.button===Hi||"keyup"===t.type&&t.key!==Ri))return;const e=xn.find(Zi);for(let n=0,i=e.length;ne+t),this._setElementAttributes(hs,"paddingRight",e=>e+t),this._setElementAttributes(ds,"marginRight",e=>e-t)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,n){const i=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+i)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=`${n(Number.parseFloat(s))}px`})}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(hs,"paddingRight"),this._resetElementAttributes(ds,"marginRight")}_saveInitialAttribute(t,e){const n=t.style[e];n&&Tn.setDataAttribute(t,e,n)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const n=Tn.getDataAttribute(t,e);void 0===n?t.style.removeProperty(e):(Tn.removeDataAttribute(t,e),t.style[e]=n)})}_applyManipulationCallback(t,e){Le(t)?e(t):xn.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const ps={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},gs={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},ms="backdrop",vs="fade",_s="show",ys=`mousedown.bs.${ms}`;class bs{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&Ve(this._getElement()),this._getElement().classList.add(_s),this._emulateAnimation(()=>{qe(t)})):qe(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(_s),this._emulateAnimation(()=>{this.dispose(),qe(t)})):qe(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add(vs),this._element=t}return this._element}_getConfig(t){return(t={...ps,..."object"==typeof t?t:{}}).rootElement=Ie(t.rootElement),Me(ms,t,gs),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),cn.on(this._getElement(),ys,()=>{qe(this._config.clickCallback)}),this._isAppended=!0)}dispose(){this._isAppended&&(cn.off(this._element,ys),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){Ue(t,this._getElement(),this._config.isAnimated)}}const ks={trapElement:null,autofocus:!0},Es={trapElement:"element",autofocus:"boolean"},ws="focustrap",As=".bs.focustrap",Cs=`focusin${As}`,Ss=`keydown.tab${As}`,Ts="Tab",xs="forward",Fs="backward";class Os{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),cn.off(document,As),cn.on(document,Cs,t=>this._handleFocusin(t)),cn.on(document,Ss,t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,cn.off(document,As))}_handleFocusin(t){const{target:e}=t,{trapElement:n}=this._config;if(e===document||e===n||n.contains(e))return;const i=xn.focusableChildren(n);0===i.length?n.focus():this._lastTabNavDirection===Fs?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){t.key===Ts&&(this._lastTabNavDirection=t.shiftKey?Fs:xs)}_getConfig(t){return t={...ks,..."object"==typeof t?t:{}},Me(ws,t,Es),t}}const Ds="modal",Bs=".bs.modal",Ls="Escape",Is={backdrop:!0,keyboard:!0,focus:!0},Ms={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Ps=`hide${Bs}`,Ns=`hidePrevented${Bs}`,Rs=`hidden${Bs}`,js=`show${Bs}`,Vs=`shown${Bs}`,Hs=`resize${Bs}`,$s=`click.dismiss${Bs}`,zs=`keydown.dismiss${Bs}`,Ws=`mouseup.dismiss${Bs}`,qs=`mousedown.dismiss${Bs}`,Us=`click${Bs}.data-api`,Ys="modal-open",Ks="fade",Xs="show",Gs="modal-static",Qs=".modal-dialog",Zs=".modal-body";class Js extends pn{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=xn.findOne(Qs,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new fs}static get Default(){return Is}static get NAME(){return Ds}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(this._isShown||this._isTransitioning)return;cn.trigger(this._element,js,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Ys),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),cn.on(this._dialog,qs,()=>{cn.one(this._element,Ws,t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(){if(!this._isShown||this._isTransitioning)return;if(cn.trigger(this._element,Ps).defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(Xs),cn.off(this._element,$s),cn.off(this._dialog,qs),this._queueCallback(()=>this._hideModal(),this._element,t)}dispose(){[window,this._dialog].forEach(t=>cn.off(t,Bs)),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bs({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Os({trapElement:this._element})}_getConfig(t){return t={...Is,...Tn.getDataAttributes(this._element),..."object"==typeof t?t:{}},Me(Ds,t,Ms),t}_showElement(t){const e=this._isAnimated(),n=xn.findOne(Zs,this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,n&&(n.scrollTop=0),e&&Ve(this._element),this._element.classList.add(Xs);this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,cn.trigger(this._element,Vs,{relatedTarget:t})},this._dialog,e)}_setEscapeEvent(){this._isShown?cn.on(this._element,zs,t=>{this._config.keyboard&&t.key===Ls?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Ls||this._triggerBackdropTransition()}):cn.off(this._element,zs)}_setResizeEvent(){this._isShown?cn.on(window,Hs,()=>this._adjustDialog()):cn.off(window,Hs)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Ys),this._resetAdjustments(),this._scrollBar.reset(),cn.trigger(this._element,Rs)})}_showBackdrop(t){cn.on(this._element,$s,t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())}),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains(Ks)}_triggerBackdropTransition(){if(cn.trigger(this._element,Ns).defaultPrevented)return;const{classList:t,scrollHeight:e,style:n}=this._element,i=e>document.documentElement.clientHeight;!i&&"hidden"===n.overflowY||t.contains(Gs)||(i||(n.overflowY="hidden"),t.add(Gs),this._queueCallback(()=>{t.remove(Gs),i||this._queueCallback(()=>{n.overflowY=""},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),n=e>0;(!n&&t&&!ze()||n&&!t&&ze())&&(this._element.style.paddingLeft=`${e}px`),(n&&!t&&!ze()||!n&&t&&ze())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each(function(){const n=Js.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t](e)}})}}cn.on(document,Us,'[data-bs-toggle="modal"]',function(t){const e=De(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),cn.one(e,js,t=>{t.defaultPrevented||cn.one(e,Rs,()=>{Pe(this)&&this.focus()})});const n=xn.findOne(".modal.show");n&&Js.getInstance(n).hide(),Js.getOrCreateInstance(e).toggle(this)}),gn(Js),We(Js);const tr="offcanvas",er="Escape",nr={backdrop:!0,keyboard:!0,scroll:!1},ir={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},sr="show",rr="offcanvas-backdrop",or="show.bs.offcanvas",ar="shown.bs.offcanvas",ur="hide.bs.offcanvas",lr="hidden.bs.offcanvas",cr="keydown.dismiss.bs.offcanvas";class hr extends pn{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return tr}static get Default(){return nr}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(this._isShown)return;if(cn.trigger(this._element,or,{relatedTarget:t}).defaultPrevented)return;this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new fs).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(sr);this._queueCallback(()=>{this._config.scroll||this._focustrap.activate(),cn.trigger(this._element,ar,{relatedTarget:t})},this._element,!0)}hide(){if(!this._isShown)return;if(cn.trigger(this._element,ur).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove(sr),this._backdrop.hide();this._queueCallback(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new fs).reset(),cn.trigger(this._element,lr)},this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...nr,...Tn.getDataAttributes(this._element),..."object"==typeof t?t:{}},Me(tr,t,ir),t}_initializeBackDrop(){return new bs({className:rr,isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Os({trapElement:this._element})}_addEventListeners(){cn.on(this._element,cr,t=>{this._config.keyboard&&t.key===er&&this.hide()})}static jQueryInterface(t){return this.each(function(){const e=hr.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}cn.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',function(t){const e=De(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Ne(this))return;cn.one(e,lr,()=>{Pe(this)&&this.focus()});const n=xn.findOne(".offcanvas.show");n&&n!==e&&hr.getInstance(n).hide(),hr.getOrCreateInstance(e).toggle(this)}),cn.on(window,"load.bs.offcanvas.data-api",()=>xn.find(".offcanvas.show").forEach(t=>hr.getOrCreateInstance(t).show())),gn(hr),We(hr);const dr=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),fr=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,pr=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,gr=(t,e)=>{const n=t.nodeName.toLowerCase();if(e.includes(n))return!dr.has(n)||Boolean(fr.test(t.nodeValue)||pr.test(t.nodeValue));const i=e.filter(t=>t instanceof RegExp);for(let t=0,e=i.length;t{gr(t,o)||n.removeAttribute(t.nodeName)})}return i.body.innerHTML}const _r="tooltip",yr="bs-tooltip",br=new Set(["sanitize","allowList","sanitizeFn"]),kr={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Er={AUTO:"auto",TOP:"top",RIGHT:ze()?"left":"right",BOTTOM:"bottom",LEFT:ze()?"right":"left"},wr={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:mr,popperConfig:null},Ar={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Cr="fade",Sr="show",Tr="show",xr="out",Fr=".tooltip-inner",Or=".modal",Dr="hide.bs.modal",Br="hover",Lr="focus",Ir="click",Mr="manual";class Pr extends pn{constructor(t,e){if(void 0===Te)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return wr}static get NAME(){return _r}static get Event(){return Ar}static get DefaultType(){return kr}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(Sr))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),cn.off(this._element.closest(Or),Dr,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=cn.trigger(this._element,this.constructor.Event.SHOW),e=Re(this._element),n=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!n)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(Fr).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const i=this.getTipElement(),s=xe(this.constructor.NAME);i.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&i.classList.add(Cr);const r="function"==typeof this._config.placement?this._config.placement.call(this,i,this._element):this._config.placement,o=this._getAttachment(r);this._addAttachmentClass(o);const{container:a}=this._config;dn.set(i,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(i),cn.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=Se(this._element,i,this._getPopperConfig(o)),i.classList.add(Sr);const u=this._resolvePossibleFunction(this._config.customClass);u&&i.classList.add(...u.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{cn.on(t,"mouseover",je)});const l=this.tip.classList.contains(Cr);this._queueCallback(()=>{const t=this._hoverState;this._hoverState=null,cn.trigger(this._element,this.constructor.Event.SHOWN),t===xr&&this._leave(null,this)},this.tip,l)}hide(){if(!this._popper)return;const t=this.getTipElement();if(cn.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(Sr),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>cn.off(t,"mouseover",je)),this._activeTrigger[Ir]=!1,this._activeTrigger[Lr]=!1,this._activeTrigger[Br]=!1;const e=this.tip.classList.contains(Cr);this._queueCallback(()=>{this._isWithActiveTrigger()||(this._hoverState!==Tr&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),cn.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())},this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(Cr,Sr),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),Fr)}_sanitizeAndSetContent(t,e,n){const i=xn.findOne(n,t);e||!i?this.setElementContent(i,e):i.remove()}setElementContent(t,e){if(null!==t)return Le(e)?(e=Ie(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=vr(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Er[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach(t=>{if("click"===t)cn.on(this._element,this.constructor.Event.CLICK,this._config.selector,t=>this.toggle(t));else if(t!==Mr){const e=t===Br?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,n=t===Br?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;cn.on(this._element,e,this._config.selector,t=>this._enter(t)),cn.on(this._element,n,this._config.selector,t=>this._leave(t))}}),this._hideModalHandler=(()=>{this._element&&this.hide()}),cn.on(this._element.closest(Or),Dr,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?Lr:Br]=!0),e.getTipElement().classList.contains(Sr)||e._hoverState===Tr?e._hoverState=Tr:(clearTimeout(e._timeout),e._hoverState=Tr,e._config.delay&&e._config.delay.show?e._timeout=setTimeout(()=>{e._hoverState===Tr&&e.show()},e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?Lr:Br]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=xr,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout(()=>{e._hoverState===xr&&e.hide()},e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=Tn.getDataAttributes(this._element);return Object.keys(e).forEach(t=>{br.has(t)&&delete e[t]}),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:Ie(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Me(_r,t,this.constructor.DefaultType),t.sanitize&&(t.template=vr(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),n=t.getAttribute("class").match(e);null!==n&&n.length>0&&n.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}_getBasicClassPrefix(){return yr}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each(function(){const e=Pr.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}We(Pr);const Nr="popover",Rr="bs-popover",jr={...Pr.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},Vr={...Pr.DefaultType,content:"(string|element|function)"},Hr={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},$r=".popover-header",zr=".popover-body";class Wr extends Pr{static get Default(){return jr}static get NAME(){return Nr}static get Event(){return Hr}static get DefaultType(){return Vr}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),$r),this._sanitizeAndSetContent(t,this._getContent(),zr)}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return Rr}static jQueryInterface(t){return this.each(function(){const e=Wr.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}We(Wr);const qr="scrollspy",Ur=".bs.scrollspy",Yr={offset:10,method:"auto",target:""},Kr={offset:"number",method:"string",target:"(string|element)"},Xr=`activate${Ur}`,Gr=`scroll${Ur}`,Qr=`load${Ur}.data-api`,Zr="dropdown-item",Jr="active",to=".nav, .list-group",eo=".nav-link",no=".nav-item",io=".list-group-item",so=`${eo}, ${io}, .${Zr}`,ro=".dropdown",oo=".dropdown-toggle",ao="offset",uo="position";class lo extends pn{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,cn.on(this._scrollElement,Gr,()=>this._process()),this.refresh(),this._process()}static get Default(){return Yr}static get NAME(){return qr}refresh(){const t=this._scrollElement===this._scrollElement.window?ao:uo,e="auto"===this._config.method?t:this._config.method,n=e===uo?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),xn.find(so,this._config.target).map(t=>{const i=Oe(t),s=i?xn.findOne(i):null;if(s){const t=s.getBoundingClientRect();if(t.width||t.height)return[Tn[e](s).top+n,i]}return null}).filter(t=>t).sort((t,e)=>t[0]-e[0]).forEach(t=>{this._offsets.push(t[0]),this._targets.push(t[1])})}dispose(){cn.off(this._scrollElement,Ur),super.dispose()}_getConfig(t){return(t={...Yr,...Tn.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=Ie(t.target)||document.documentElement,Me(qr,t,Kr),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;){this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`),n=xn.findOne(e.join(","),this._config.target);n.classList.add(Jr),n.classList.contains(Zr)?xn.findOne(oo,n.closest(ro)).classList.add(Jr):xn.parents(n,to).forEach(t=>{xn.prev(t,`${eo}, ${io}`).forEach(t=>t.classList.add(Jr)),xn.prev(t,no).forEach(t=>{xn.children(t,eo).forEach(t=>t.classList.add(Jr))})}),cn.trigger(this._scrollElement,Xr,{relatedTarget:t})}_clear(){xn.find(so,this._config.target).filter(t=>t.classList.contains(Jr)).forEach(t=>t.classList.remove(Jr))}static jQueryInterface(t){return this.each(function(){const e=lo.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}cn.on(window,Qr,()=>{xn.find('[data-bs-spy="scroll"]').forEach(t=>new lo(t))}),We(lo);const co="tab",ho="hide.bs.tab",fo="hidden.bs.tab",po="show.bs.tab",go="shown.bs.tab",mo="dropdown-menu",vo="active",_o="fade",yo="show",bo=".dropdown",ko=".nav, .list-group",Eo=".active",wo=":scope > li > .active",Ao=".dropdown-toggle",Co=":scope > .dropdown-menu .active";class So extends pn{static get NAME(){return co}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(vo))return;let t;const e=De(this._element),n=this._element.closest(ko);if(n){const e="UL"===n.nodeName||"OL"===n.nodeName?wo:Eo;t=(t=xn.find(e,n))[t.length-1]}const i=t?cn.trigger(t,ho,{relatedTarget:this._element}):null;if(cn.trigger(this._element,po,{relatedTarget:t}).defaultPrevented||null!==i&&i.defaultPrevented)return;this._activate(this._element,n);const s=()=>{cn.trigger(t,fo,{relatedTarget:this._element}),cn.trigger(this._element,go,{relatedTarget:t})};e?this._activate(e,e.parentNode,s):s()}_activate(t,e,n){const i=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?xn.children(e,Eo):xn.find(wo,e))[0],s=n&&i&&i.classList.contains(_o),r=()=>this._transitionComplete(t,i,n);i&&s?(i.classList.remove(yo),this._queueCallback(r,t,!0)):r()}_transitionComplete(t,e,n){if(e){e.classList.remove(vo);const t=xn.findOne(Co,e.parentNode);t&&t.classList.remove(vo),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add(vo),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),Ve(t),t.classList.contains(_o)&&t.classList.add(yo);let i=t.parentNode;if(i&&"LI"===i.nodeName&&(i=i.parentNode),i&&i.classList.contains(mo)){const e=t.closest(bo);e&&xn.find(Ao,e).forEach(t=>t.classList.add(vo)),t.setAttribute("aria-expanded",!0)}n&&n()}static jQueryInterface(t){return this.each(function(){const e=So.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}cn.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',function(t){if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Ne(this))return;So.getOrCreateInstance(this).show()}),We(So);const To="toast",xo="mouseover.bs.toast",Fo="mouseout.bs.toast",Oo="focusin.bs.toast",Do="focusout.bs.toast",Bo="hide.bs.toast",Lo="hidden.bs.toast",Io="show.bs.toast",Mo="shown.bs.toast",Po="fade",No="hide",Ro="show",jo="showing",Vo={animation:"boolean",autohide:"boolean",delay:"number"},Ho={animation:!0,autohide:!0,delay:5e3};class $o extends pn{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Vo}static get Default(){return Ho}static get NAME(){return To}show(){if(cn.trigger(this._element,Io).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(Po);this._element.classList.remove(No),Ve(this._element),this._element.classList.add(Ro),this._element.classList.add(jo),this._queueCallback(()=>{this._element.classList.remove(jo),cn.trigger(this._element,Mo),this._maybeScheduleHide()},this._element,this._config.animation)}hide(){if(!this._element.classList.contains(Ro))return;if(cn.trigger(this._element,Bo).defaultPrevented)return;this._element.classList.add(jo),this._queueCallback(()=>{this._element.classList.add(No),this._element.classList.remove(jo),this._element.classList.remove(Ro),cn.trigger(this._element,Lo)},this._element,this._config.animation)}dispose(){this._clearTimeout(),this._element.classList.contains(Ro)&&this._element.classList.remove(Ro),super.dispose()}_getConfig(t){return t={...Ho,...Tn.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},Me(To,t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const n=t.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){cn.on(this._element,xo,t=>this._onInteraction(t,!0)),cn.on(this._element,Fo,t=>this._onInteraction(t,!1)),cn.on(this._element,Oo,t=>this._onInteraction(t,!0)),cn.on(this._element,Do,t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each(function(){const e=$o.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}})}}gn($o),We($o);var zo=Object.freeze({__proto__:null,Alert:kn,Button:An,Carousel:fi,Collapse:Ii,Dropdown:cs,Modal:Js,Offcanvas:hr,Popover:Wr,ScrollSpy:lo,Tab:So,Toast:$o,Tooltip:Pr});[].slice.call(document.querySelectorAll('[data-bs-toggle="dropdown"]')).map(function(t){return new cs(t)}),[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map(function(t){var e,n,i={delay:{show:50,hide:50},html:null!==(e="true"===t.getAttribute("data-bs-html"))&&void 0!==e&&e,placement:null!==(n=t.getAttribute("data-bs-placement"))&&void 0!==n?n:"auto"};return new Pr(t,i)}),[].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')).map(function(t){var e,n,i={delay:{show:50,hide:50},html:null!==(e="true"===t.getAttribute("data-bs-html"))&&void 0!==e&&e,placement:null!==(n=t.getAttribute("data-bs-placement"))&&void 0!==n?n:"auto"};return new Wr(t,i)}),[].slice.call(document.querySelectorAll('[data-bs-toggle="switch-icon"]')).map(function(t){t.addEventListener("click",function(e){e.stopPropagation(),t.classList.toggle("active")})});var Wo;(Wo=window.location.hash)&&[].slice.call(document.querySelectorAll('[data-bs-toggle="tab"]')).filter(function(t){return t.hash===Wo}).map(function(t){new So(t).show()}),[].slice.call(document.querySelectorAll('[data-bs-toggle="toast"]')).map(function(t){return new $o(t)}),window.bootstrap=zo}); \ No newline at end of file +!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";var t,e,n="function"==typeof Map?new Map:(t=[],e=[],{has:function(e){return t.indexOf(e)>-1},get:function(n){return e[t.indexOf(n)]},set:function(n,i){-1===t.indexOf(n)&&(t.push(n),e.push(i))},delete:function(n){var i=t.indexOf(n);i>-1&&(t.splice(i,1),e.splice(i,1))}}),i=function(t){return new Event(t,{bubbles:!0})};try{new Event("test")}catch(t){i=function(t){var e=document.createEvent("Event");return e.initEvent(t,!0,!1),e}}function s(t){var e=n.get(t);e&&e.destroy()}function r(t){var e=n.get(t);e&&e.update()}var o=null;"undefined"==typeof window||"function"!=typeof window.getComputedStyle?((o=function(t){return t}).destroy=function(t){return t},o.update=function(t){return t}):((o=function(t,e){return t&&Array.prototype.forEach.call(t.length?t:[t],function(t){return function(t){if(t&&t.nodeName&&"TEXTAREA"===t.nodeName&&!n.has(t)){var e,s=null,r=null,o=null,a=function(){t.clientWidth!==r&&h()},u=function(e){window.removeEventListener("resize",a,!1),t.removeEventListener("input",h,!1),t.removeEventListener("keyup",h,!1),t.removeEventListener("autosize:destroy",u,!1),t.removeEventListener("autosize:update",h,!1),Object.keys(e).forEach(function(n){t.style[n]=e[n]}),n.delete(t)}.bind(t,{height:t.style.height,resize:t.style.resize,overflowY:t.style.overflowY,overflowX:t.style.overflowX,wordWrap:t.style.wordWrap});t.addEventListener("autosize:destroy",u,!1),"onpropertychange"in t&&"oninput"in t&&t.addEventListener("keyup",h,!1),window.addEventListener("resize",a,!1),t.addEventListener("input",h,!1),t.addEventListener("autosize:update",h,!1),t.style.overflowX="hidden",t.style.wordWrap="break-word",n.set(t,{destroy:u,update:h}),"vertical"===(e=window.getComputedStyle(t,null)).resize?t.style.resize="none":"both"===e.resize&&(t.style.resize="horizontal"),s="content-box"===e.boxSizing?-(parseFloat(e.paddingTop)+parseFloat(e.paddingBottom)):parseFloat(e.borderTopWidth)+parseFloat(e.borderBottomWidth),isNaN(s)&&(s=0),h()}function l(e){var n=t.style.width;t.style.width="0px",t.style.width=n,t.style.overflowY=e}function c(){if(0!==t.scrollHeight){var e=function(t){for(var e=[];t&&t.parentNode&&t.parentNode instanceof Element;)t.parentNode.scrollTop&&e.push({node:t.parentNode,scrollTop:t.parentNode.scrollTop}),t=t.parentNode;return e}(t),n=document.documentElement&&document.documentElement.scrollTop;t.style.height="",t.style.height=t.scrollHeight+s+"px",r=t.clientWidth,e.forEach(function(t){t.node.scrollTop=t.scrollTop}),n&&(document.documentElement.scrollTop=n)}}function h(){c();var e=Math.round(parseFloat(t.style.height)),n=window.getComputedStyle(t,null),s="content-box"===n.boxSizing?Math.round(parseFloat(n.height)):t.offsetHeight;if(s=0||(s[n]=t[n]);return s}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(s[n]=t[n])}return s}function v(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var n,i=p(t);if(e){var s=p(this).constructor;n=Reflect.construct(i,arguments,s)}else n=i.apply(this,arguments);return v(this,n)}}function y(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=p(t)););return t}function b(){return(b="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var i=y(t,e);if(i){var s=Object.getOwnPropertyDescriptor(i,e);return s.get?s.get.call(arguments.length<3?t:n):s.value}}).apply(this,arguments)}function k(t,e,n,i){return(k="undefined"!=typeof Reflect&&Reflect.set?Reflect.set:function(t,e,n,i){var s,r=y(t,e);if(r){if((s=Object.getOwnPropertyDescriptor(r,e)).set)return s.set.call(i,n),!0;if(!s.writable)return!1}if(s=Object.getOwnPropertyDescriptor(i,e)){if(!s.writable)return!1;s.value=n,Object.defineProperty(i,e,s)}else!function(t,e,n){e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n}(i,e,n);return!0})(t,e,n,i)}function w(t,e,n,i,s){if(!k(t,e,n,i||t)&&s)throw new Error("failed to set property");return n}function A(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==n)return;var i,s,r=[],o=!0,a=!1;try{for(n=n.call(t);!(o=(i=n.next()).done)&&(r.push(i.value),!e||r.length!==e);o=!0);}catch(t){a=!0,s=t}finally{try{o||null==n.return||n.return()}finally{if(a)throw s}}return r}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return E(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2?arguments[2]:void 0;c(this,t),this.value=e,this.from=n,this.stop=i}return d(t,[{key:"toString",value:function(){return this.value}},{key:"extend",value:function(t){this.value+=String(t)}},{key:"appendTo",value:function(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}},{key:"state",get:function(){return{value:this.value,from:this.from,stop:this.stop}},set:function(t){Object.assign(this,t)}},{key:"unshift",value:function(t){if(!this.value.length||null!=t&&this.from>=t)return"";var e=this.value[0];return this.value=this.value.slice(1),e}},{key:"shift",value:function(){if(!this.value.length)return"";var t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}]),t}();function B(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new B.InputMask(t,e)}var I=function(){function t(e){c(this,t),this._value="",this._update(Object.assign({},t.DEFAULTS,e)),this.isInitialized=!0}return d(t,[{key:"updateOptions",value:function(t){Object.keys(t).length&&this.withValueRefresh(this._update.bind(this,t))}},{key:"_update",value:function(t){Object.assign(this,t)}},{key:"state",get:function(){return{_value:this.value}},set:function(t){this._value=t._value}},{key:"reset",value:function(){this._value=""}},{key:"value",get:function(){return this._value},set:function(t){this.resolve(t)}},{key:"resolve",value:function(t){return this.reset(),this.append(t,{input:!0},""),this.doCommit(),this.value}},{key:"unmaskedValue",get:function(){return this.value},set:function(t){this.reset(),this.append(t,{},""),this.doCommit()}},{key:"typedValue",get:function(){return this.doParse(this.value)},set:function(t){this.value=this.doFormat(t)}},{key:"rawInputValue",get:function(){return this.extractInput(0,this.value.length,{raw:!0})},set:function(t){this.reset(),this.append(t,{raw:!0},""),this.doCommit()}},{key:"isComplete",get:function(){return!0}},{key:"isFilled",get:function(){return this.isComplete}},{key:"nearestInputPos",value:function(t,e){return t}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.value.slice(t,e)}},{key:"extractTail",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return new D(this.extractInput(t,e),t)}},{key:"appendTail",value:function(t){return T(t)&&(t=new D(String(t))),t.appendTo(this)}},{key:"_appendCharRaw",value:function(t){return t?(this._value+=t,new C({inserted:t,rawInserted:t})):new C}},{key:"_appendChar",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0,s=this.state,r=A(S(this.doPrepare(t,n)),2);if(t=r[0],(e=(e=r[1]).aggregate(this._appendCharRaw(t,n))).inserted){var o,a=!1!==this.doValidate(n);if(a&&null!=i){var u=this.state;!0===this.overwrite&&(o=i.state,i.unshift(this.value.length));var l=this.appendTail(i);(a=l.rawInserted===i.toString())&&l.inserted||"shift"!==this.overwrite||(this.state=u,o=i.state,i.shift(),a=(l=this.appendTail(i)).rawInserted===i.toString()),a&&l.inserted&&(this.state=u)}a||(e=new C,this.state=s,i&&o&&(i.state=o))}return e}},{key:"_appendPlaceholder",value:function(){return new C}},{key:"_appendEager",value:function(){return new C}},{key:"append",value:function(t,e,n){if(!T(t))throw new Error("value should be string");var i=new C,s=T(n)?new D(String(n)):n;e&&e.tail&&(e._beforeTailState=this.state);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this._value=this.value.slice(0,t)+this.value.slice(e),new C}},{key:"withValueRefresh",value:function(t){if(this._refreshing||!this.isInitialized)return t();this._refreshing=!0;var e=this.rawInputValue,n=this.value,i=t();return this.rawInputValue=e,this.value&&this.value!==n&&0===n.indexOf(this.value)&&this.append(n.slice(this.value.length),{},""),delete this._refreshing,i}},{key:"runIsolated",value:function(t){if(this._isolated||!this.isInitialized)return t(this);this._isolated=!0;var e=this.state,n=t(this);return this.state=e,delete this._isolated,n}},{key:"doPrepare",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.prepare?this.prepare(t,this,e):t}},{key:"doValidate",value:function(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}},{key:"doCommit",value:function(){this.commit&&this.commit(this.value,this)}},{key:"doFormat",value:function(t){return this.format?this.format(t,this):t}},{key:"doParse",value:function(t){return this.parse?this.parse(t,this):t}},{key:"splice",value:function(t,e,n,i){var s,r=t+e,o=this.extractTail(r);this.eager&&(i=function(t){switch(t){case x.LEFT:return x.FORCE_LEFT;case x.RIGHT:return x.FORCE_RIGHT;default:return t}}(i),s=this.extractInput(0,r,{raw:!0}));var a=this.nearestInputPos(t,e>1&&0!==t&&!this.eager?x.NONE:i),u=new C({tailShift:a-t}).aggregate(this.remove(a));if(this.eager&&i!==x.NONE&&s===this.rawInputValue)if(i===x.FORCE_LEFT)for(var l;s===this.rawInputValue&&(l=this.value.length);)u.aggregate(new C({tailShift:-1})).aggregate(this.remove(l-1));else i===x.FORCE_RIGHT&&o.unshift();return u.aggregate(this.append(n,{input:!0},o))}},{key:"maskEquals",value:function(t){return this.mask===t}}]),t}();function L(t){if(null==t)throw new Error("mask property should be defined");return t instanceof RegExp?B.MaskedRegExp:T(t)?B.MaskedPattern:t instanceof Date||t===Date?B.MaskedDate:t instanceof Number||"number"==typeof t||t===Number?B.MaskedNumber:Array.isArray(t)||t===Array?B.MaskedDynamic:B.Masked&&t.prototype instanceof B.Masked?t:t instanceof B.Masked?t.constructor:t instanceof Function?B.MaskedFunction:(console.warn("Mask not found for mask",t),B.Masked)}function M(t){if(B.Masked&&t instanceof B.Masked)return t;var e=(t=Object.assign({},t)).mask;if(B.Masked&&e instanceof B.Masked)return e;var n=L(e);if(!n)throw new Error("Masked class is not found for provided mask, appropriate module needs to be import manually before creating mask.");return new n(t)}I.DEFAULTS={format:function(t){return t},parse:function(t){return t}},B.Masked=I,B.createMask=M;var P=["mask"],N={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},R=function(){function t(e){c(this,t);var n=e.mask,i=m(e,P);this.masked=M({mask:n}),Object.assign(this,i)}return d(t,[{key:"reset",value:function(){this.isFilled=!1,this.masked.reset()}},{key:"remove",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return 0===t&&e>=1?(this.isFilled=!1,this.masked.remove(t,e)):new C}},{key:"value",get:function(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}},{key:"unmaskedValue",get:function(){return this.masked.unmaskedValue}},{key:"isComplete",get:function(){return Boolean(this.masked.value)||this.isOptional}},{key:"_appendChar",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.isFilled)return new C;var n=this.masked.state,i=this.masked._appendChar(t,e);return i.inserted&&!1===this.doValidate(e)&&(i.inserted=i.rawInserted="",this.masked.state=n),i.inserted||this.isOptional||this.lazy||e.input||(i.inserted=this.placeholderChar),i.skip=!i.inserted&&!this.isOptional,this.isFilled=Boolean(i.inserted),i}},{key:"append",value:function(){var t;return(t=this.masked).append.apply(t,arguments)}},{key:"_appendPlaceholder",value:function(){var t=new C;return this.isFilled||this.isOptional?t:(this.isFilled=!0,t.inserted=this.placeholderChar,t)}},{key:"_appendEager",value:function(){return new C}},{key:"extractTail",value:function(){var t;return(t=this.masked).extractTail.apply(t,arguments)}},{key:"appendTail",value:function(){var t;return(t=this.masked).appendTail.apply(t,arguments)}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2?arguments[2]:void 0;return this.masked.extractInput(t,e,n)}},{key:"nearestInputPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:x.NONE,n=this.value.length,i=Math.min(Math.max(t,0),n);switch(e){case x.LEFT:case x.FORCE_LEFT:return this.isComplete?i:0;case x.RIGHT:case x.FORCE_RIGHT:return this.isComplete?i:n;case x.NONE:default:return i}}},{key:"doValidate",value:function(){var t,e;return(t=this.masked).doValidate.apply(t,arguments)&&(!this.parent||(e=this.parent).doValidate.apply(e,arguments))}},{key:"doCommit",value:function(){this.masked.doCommit()}},{key:"state",get:function(){return{masked:this.masked.state,isFilled:this.isFilled}},set:function(t){this.masked.state=t.masked,this.isFilled=t.isFilled}}]),t}(),j=function(){function t(e){c(this,t),Object.assign(this,e),this._value="",this.isFixed=!0}return d(t,[{key:"value",get:function(){return this._value}},{key:"unmaskedValue",get:function(){return this.isUnmasking?this.value:""}},{key:"reset",value:function(){this._isRawInput=!1,this._value=""}},{key:"remove",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._value.length;return this._value=this._value.slice(0,t)+this._value.slice(e),this._value||(this._isRawInput=!1),new C}},{key:"nearestInputPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:x.NONE,n=this._value.length;switch(e){case x.LEFT:case x.FORCE_LEFT:return 0;case x.NONE:case x.RIGHT:case x.FORCE_RIGHT:default:return n}}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._value.length;return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).raw&&this._isRawInput&&this._value.slice(t,e)||""}},{key:"isComplete",get:function(){return!0}},{key:"isFilled",get:function(){return Boolean(this._value)}},{key:"_appendChar",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new C;if(this._value)return n;var i=this.char===t&&(this.isUnmasking||e.input||e.raw)&&!this.eager&&!e.tail;return i&&(n.rawInserted=this.char),this._value=n.inserted=this.char,this._isRawInput=i&&(e.raw||e.input),n}},{key:"_appendEager",value:function(){return this._appendChar(this.char)}},{key:"_appendPlaceholder",value:function(){var t=new C;return this._value?t:(this._value=t.inserted=this.char,t)}},{key:"extractTail",value:function(){return arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,new D("")}},{key:"appendTail",value:function(t){return T(t)&&(t=new D(String(t))),t.appendTo(this)}},{key:"append",value:function(t,e,n){var i=this._appendChar(t[0],e);return null!=n&&(i.tailShift+=this.appendTail(n).tailShift),i}},{key:"doCommit",value:function(){}},{key:"state",get:function(){return{_value:this._value,_isRawInput:this._isRawInput}},set:function(t){Object.assign(this,t)}}]),t}(),V=["chunks"],H=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;c(this,t),this.chunks=e,this.from=n}return d(t,[{key:"toString",value:function(){return this.chunks.map(String).join("")}},{key:"extend",value:function(e){if(String(e)){T(e)&&(e=new D(String(e)));var n=this.chunks[this.chunks.length-1],i=n&&(n.stop===e.stop||null==e.stop)&&e.from===n.from+n.toString().length;if(e instanceof D)i?n.extend(e.toString()):this.chunks.push(e);else if(e instanceof t){if(null==e.stop)for(var s;e.chunks.length&&null==e.chunks[0].stop;)(s=e.chunks.shift()).from+=e.from,this.extend(s);e.toString()&&(e.stop=e.blockIndex,this.chunks.push(e))}}}},{key:"appendTo",value:function(e){if(!(e instanceof B.MaskedPattern))return new D(this.toString()).appendTo(e);for(var n=new C,i=0;i=0)&&n.aggregate(e._appendPlaceholder(o)),a=s instanceof t&&e._blocks[o]),a){var u=a.appendTail(s);u.skip=!1,n.aggregate(u),e._value+=u.inserted;var l=s.toString().slice(u.rawInserted.length);l&&n.aggregate(e.append(l,{tail:!0}))}else n.aggregate(e.append(s.toString(),{tail:!0}))}return n}},{key:"state",get:function(){return{chunks:this.chunks.map(function(t){return t.state}),from:this.from,stop:this.stop,blockIndex:this.blockIndex}},set:function(e){var n=e.chunks,i=m(e,V);Object.assign(this,i),this.chunks=n.map(function(e){var n="chunks"in e?new t:new D;return n.state=e,n})}},{key:"unshift",value:function(t){if(!this.chunks.length||null!=t&&this.from>=t)return"";for(var e=null!=t?t-this.from:t,n=0;n=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.value.length))}},{key:"_pushLeft",value:function(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=(null===(e=this.block)||void 0===e?void 0:e.value.length)||0){var e;if(t())return this.ok=!0}return this.ok=!1}},{key:"_pushRight",value:function(t){for(this.pushState(),this.bindBlock();this.index=0}),b(p(n.prototype),"_update",this).call(this,t)}}]),n}();B.MaskedRegExp=$;var q=["_blocks"],W=function(t){f(n,I);var e=_(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c(this,n),t.definitions=Object.assign({},N,t.definitions),e.call(this,Object.assign({},n.DEFAULTS,t))}return d(n,[{key:"_update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.definitions=Object.assign({},this.definitions,t.definitions),b(p(n.prototype),"_update",this).call(this,t),this._rebuildMask()}},{key:"_rebuildMask",value:function(){var t=this,e=this.definitions;this._blocks=[],this._stops=[],this._maskedBlocks={};var i=this.mask;if(i&&e)for(var s=!1,r=!1,o=0;o1&&void 0!==arguments[1]?arguments[1]:{},n=this._mapPosToBlock(this.value.length),i=new C;if(!n)return i;for(var s=n.index;;++s){var r,o=this._blocks[s];if(!o)break;var a=o._appendChar(t,Object.assign({},e,{_beforeTailState:null===(r=e._beforeTailState)||void 0===r?void 0:r._blocks[s]})),u=a.skip;if(i.aggregate(a),u||a.rawInserted)break}return i}},{key:"extractTail",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=new H;return e===n?i:(this._forEachBlocksInRange(e,n,function(e,n,s,r){var o=e.extractTail(s,r);o.stop=t._findStopBefore(n),o.from=t._blockStartPos(n),o instanceof H&&(o.blockIndex=n),i.extend(o)}),i)}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t===e)return"";var i="";return this._forEachBlocksInRange(t,e,function(t,e,s,r){i+=t.extractInput(s,r,n)}),i}},{key:"_findStopBefore",value:function(t){for(var e,n=0;n1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=arguments.length>2?arguments[2]:void 0,i=this._mapPosToBlock(t);if(i){var s=this._mapPosToBlock(e),r=s&&i.index===s.index,o=i.offset,a=s&&r?s.offset:this._blocks[i.index].value.length;if(n(this._blocks[i.index],i.index,o,a),s&&!r){for(var u=i.index+1;u0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=b(p(n.prototype),"remove",this).call(this,t,e);return this._forEachBlocksInRange(t,e,function(t,e,n,s){i.aggregate(t.remove(n,s))}),i}},{key:"nearestInputPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:x.NONE;if(!this._blocks.length)return 0;var n=new z(this,t);if(e===x.NONE)return n.pushRightBeforeInput()?n.pos:(n.popState(),n.pushLeftBeforeInput()?n.pos:this.value.length);if(e===x.LEFT||e===x.FORCE_LEFT){if(e===x.LEFT){if(n.pushRightBeforeFilled(),n.ok&&n.pos===t)return t;n.popState()}if(n.pushLeftBeforeInput(),n.pushLeftBeforeRequired(),n.pushLeftBeforeFilled(),e===x.LEFT){if(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.ok&&n.pos<=t)return n.pos;if(n.popState(),n.ok&&n.pos<=t)return n.pos;n.popState()}return n.ok?n.pos:e===x.FORCE_LEFT?0:(n.popState(),n.ok?n.pos:(n.popState(),n.ok?n.pos:0))}return e===x.RIGHT||e===x.FORCE_RIGHT?(n.pushRightBeforeInput(),n.pushRightBeforeRequired(),n.pushRightBeforeFilled()?n.pos:e===x.FORCE_RIGHT?this.value.length:(n.popState(),n.ok?n.pos:(n.popState(),n.ok?n.pos:this.nearestInputPos(t,x.LEFT)))):t}},{key:"maskedBlock",value:function(t){return this.maskedBlocks(t)[0]}},{key:"maskedBlocks",value:function(t){var e=this,n=this._maskedBlocks[t];return n?n.map(function(t){return e._blocks[t]}):[]}}]),n}();W.DEFAULTS={lazy:!0,placeholderChar:"_"},W.STOP_CHAR="`",W.ESCAPE_CHAR="\\",W.InputDefinition=R,W.FixedDefinition=j,B.MaskedPattern=W;var U=function(t){f(n,W);var e=_(n);function n(){return c(this,n),e.apply(this,arguments)}return d(n,[{key:"_matchFrom",get:function(){return this.maxLength-String(this.from).length}},{key:"_update",value:function(t){t=Object.assign({to:this.to||0,from:this.from||0,maxLength:this.maxLength||0},t);var e=String(t.to).length;null!=t.maxLength&&(e=Math.max(e,t.maxLength)),t.maxLength=e;for(var i=String(t.from).padStart(e,"0"),s=String(t.to).padStart(e,"0"),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},s=A(S(b(p(n.prototype),"doPrepare",this).call(this,t.replace(/\D/g,""),i)),2);if(t=s[0],e=s[1],!this.autofix||!t)return t;var r=String(this.from).padStart(this.maxLength,"0"),o=String(this.to).padStart(this.maxLength,"0"),a=this.value+t;if(a.length>this.maxLength)return"";var u=A(this.boundaries(a),2),l=u[0],c=u[1];return Number(c)this.to?"pad"===this.autofix&&a.length=0}},{key:"date",get:function(){return this.typedValue},set:function(t){this.typedValue=t}},{key:"typedValue",get:function(){return this.isComplete?b(p(n.prototype),"typedValue",this):null},set:function(t){w(p(n.prototype),"typedValue",t,this,!0)}},{key:"maskEquals",value:function(t){return t===Date||b(p(n.prototype),"maskEquals",this).call(this,t)}}]),n}();Y.DEFAULTS={pattern:"d{.}`m{.}`Y",format:function(t){return t?[String(t.getDate()).padStart(2,"0"),String(t.getMonth()+1).padStart(2,"0"),t.getFullYear()].join("."):""},parse:function(t){var e=A(t.split("."),3),n=e[0],i=e[1],s=e[2];return new Date(s,i-1,n)}},Y.GET_DEFAULT_BLOCKS=function(){return{d:{mask:U,from:1,to:31,maxLength:2},m:{mask:U,from:1,to:12,maxLength:2},Y:{mask:U,from:1900,to:9999}}},B.MaskedDate=Y;var K=function(){function t(){c(this,t)}return d(t,[{key:"selectionStart",get:function(){var t;try{t=this._unsafeSelectionStart}catch(t){}return null!=t?t:this.value.length}},{key:"selectionEnd",get:function(){var t;try{t=this._unsafeSelectionEnd}catch(t){}return null!=t?t:this.value.length}},{key:"select",value:function(t,e){if(null!=t&&null!=e&&(t!==this.selectionStart||e!==this.selectionEnd))try{this._unsafeSelect(t,e)}catch(t){}}},{key:"_unsafeSelect",value:function(t,e){}},{key:"isActive",get:function(){return!1}},{key:"bindEvents",value:function(t){}},{key:"unbindEvents",value:function(){}}]),t}();B.MaskElement=K;var G=function(t){f(n,K);var e=_(n);function n(t){var i;return c(this,n),(i=e.call(this)).input=t,i._handlers={},i}return d(n,[{key:"rootElement",get:function(){var t,e,n;return null!==(t=null===(e=(n=this.input).getRootNode)||void 0===e?void 0:e.call(n))&&void 0!==t?t:document}},{key:"isActive",get:function(){return this.input===this.rootElement.activeElement}},{key:"_unsafeSelectionStart",get:function(){return this.input.selectionStart}},{key:"_unsafeSelectionEnd",get:function(){return this.input.selectionEnd}},{key:"_unsafeSelect",value:function(t,e){this.input.setSelectionRange(t,e)}},{key:"value",get:function(){return this.input.value},set:function(t){this.input.value=t}},{key:"bindEvents",value:function(t){var e=this;Object.keys(t).forEach(function(i){return e._toggleEventHandler(n.EVENTS_MAP[i],t[i])})}},{key:"unbindEvents",value:function(){var t=this;Object.keys(this._handlers).forEach(function(e){return t._toggleEventHandler(e)})}},{key:"_toggleEventHandler",value:function(t,e){this._handlers[t]&&(this.input.removeEventListener(t,this._handlers[t]),delete this._handlers[t]),e&&(this.input.addEventListener(t,e),this._handlers[t]=e)}}]),n}();G.EVENTS_MAP={selectionChange:"keydown",input:"input",drop:"drop",click:"click",focus:"focus",commit:"blur"},B.HTMLMaskElement=G;var X=function(t){f(n,G);var e=_(n);function n(){return c(this,n),e.apply(this,arguments)}return d(n,[{key:"_unsafeSelectionStart",get:function(){var t=this.rootElement,e=t.getSelection&&t.getSelection(),n=e&&e.anchorOffset,i=e&&e.focusOffset;return null==i||null==n||ni?n:i}},{key:"_unsafeSelect",value:function(t,e){if(this.rootElement.createRange){var n=this.rootElement.createRange();n.setStart(this.input.firstChild||this.input,t),n.setEnd(this.input.lastChild||this.input,e);var i=this.rootElement,s=i.getSelection&&i.getSelection();s&&(s.removeAllRanges(),s.addRange(n))}}},{key:"value",get:function(){return this.input.textContent},set:function(t){this.input.textContent=t}}]),n}();B.HTMLContenteditableMaskElement=X;var Q=["mask"],Z=function(){function t(e,n){c(this,t),this.el=e instanceof K?e:e.isContentEditable&&"INPUT"!==e.tagName&&"TEXTAREA"!==e.tagName?new X(e):new G(e),this.masked=M(n),this._listeners={},this._value="",this._unmaskedValue="",this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}return d(t,[{key:"mask",get:function(){return this.masked.mask},set:function(t){if(!this.maskEquals(t))if(t instanceof B.Masked||this.masked.constructor!==L(t)){var e=M({mask:t});e.unmaskedValue=this.masked.unmaskedValue,this.masked=e}else this.masked.updateOptions({mask:t})}},{key:"maskEquals",value:function(t){var e;return null==t||(null===(e=this.masked)||void 0===e?void 0:e.maskEquals(t))}},{key:"value",get:function(){return this._value},set:function(t){this.masked.value=t,this.updateControl(),this.alignCursor()}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(t){this.masked.unmaskedValue=t,this.updateControl(),this.alignCursor()}},{key:"typedValue",get:function(){return this.masked.typedValue},set:function(t){this.masked.typedValue=t,this.updateControl(),this.alignCursor()}},{key:"_bindEvents",value:function(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange})}},{key:"_unbindEvents",value:function(){this.el&&this.el.unbindEvents()}},{key:"_fireEvent",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i=0&&this._listeners[t].splice(n,1),this}},{key:"_onInput",value:function(t){if(this._inputEvent=t,this._abortUpdateCursor(),!this._selection)return this.updateValue();var e=new O(this.el.value,this.cursorPos,this.value,this._selection),n=this.masked.rawInputValue,i=this.masked.splice(e.startChangePos,e.removed.length,e.inserted,e.removeDirection).offset,s=n===this.masked.rawInputValue?e.removeDirection:x.NONE,r=this.masked.nearestInputPos(e.startChangePos+i,s);s!==x.NONE&&(r=this.masked.nearestInputPos(r,x.NONE)),this.updateControl(),this.updateCursor(r),delete this._inputEvent}},{key:"_onChange",value:function(){this.value!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}},{key:"_onDrop",value:function(t){t.preventDefault(),t.stopPropagation()}},{key:"_onFocus",value:function(t){this.alignCursorFriendly()}},{key:"_onClick",value:function(t){this.alignCursorFriendly()}},{key:"destroy",value:function(){this._unbindEvents(),this._listeners.length=0,delete this.el}}]),t}();B.InputMask=Z;var J=function(t){f(n,W);var e=_(n);function n(){return c(this,n),e.apply(this,arguments)}return d(n,[{key:"_update",value:function(t){t.enum&&(t.mask="*".repeat(t.enum[0].length)),b(p(n.prototype),"_update",this).call(this,t)}},{key:"doValidate",value:function(){for(var t,e=this,i=arguments.length,s=new Array(i),r=0;r=0})&&(t=b(p(n.prototype),"doValidate",this)).call.apply(t,[this].concat(s))}}]),n}();B.MaskedEnum=J;var tt=function(t){f(n,I);var e=_(n);function n(t){return c(this,n),e.call(this,Object.assign({},n.DEFAULTS,t))}return d(n,[{key:"_update",value:function(t){b(p(n.prototype),"_update",this).call(this,t),this._updateRegExps()}},{key:"_updateRegExps",value:function(){var t="^"+(this.allowNegative?"[+|\\-]?":""),e=(this.scale?"("+F(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExpInput=new RegExp(t+"(0|([1-9]+\\d*))?"+e),this._numberRegExp=new RegExp(t+"\\d*"+e),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(F).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(F(this.thousandsSeparator),"g")}},{key:"_removeThousandsSeparators",value:function(t){return t.replace(this._thousandsSeparatorRegExp,"")}},{key:"_insertThousandsSeparators",value:function(t){var e=t.split(this.radix);return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),e.join(this.radix)}},{key:"doPrepare",value:function(t){var e;t=t.replace(this._mapToRadixRegExp,this.radix);for(var i=this._removeThousandsSeparators(t),s=arguments.length,r=new Array(s>1?s-1:0),o=1;o1&&void 0!==arguments[1]&&arguments[1],n=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:this._value;return this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}},{key:"extractInput",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,i=arguments.length>2?arguments[2]:void 0,s=A(this._adjustRangeWithSeparators(t,e),2);return t=s[0],e=s[1],this._removeThousandsSeparators(b(p(n.prototype),"extractInput",this).call(this,t,e,i))}},{key:"_appendCharRaw",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.thousandsSeparator)return b(p(n.prototype),"_appendCharRaw",this).call(this,t,e);var i=e.tail&&e._beforeTailState?e._beforeTailState._value:this._value,s=this._separatorsCountFromSlice(i);this._value=this._removeThousandsSeparators(this.value);var r=b(p(n.prototype),"_appendCharRaw",this).call(this,t,e);this._value=this._insertThousandsSeparators(this._value);var o=e.tail&&e._beforeTailState?e._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(o);return r.tailShift+=(a-s)*this.thousandsSeparator.length,r.skip=!r.rawInserted&&t===this.thousandsSeparator,r}},{key:"_findSeparatorAround",value:function(t){if(this.thousandsSeparator){var e=t-this.thousandsSeparator.length+1,n=this.value.indexOf(this.thousandsSeparator,e);if(n<=t)return n}return-1}},{key:"_adjustRangeWithSeparators",value:function(t,e){var n=this._findSeparatorAround(t);n>=0&&(t=n);var i=this._findSeparatorAround(e);return i>=0&&(e=i+this.thousandsSeparator.length),[t,e]}},{key:"remove",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=A(this._adjustRangeWithSeparators(t,e),2);t=n[0],e=n[1];var i=this.value.slice(0,t),s=this.value.slice(e),r=this._separatorsCount(i.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(i+s));var o=this._separatorsCountFromSlice(i);return new C({tailShift:(o-r)*this.thousandsSeparator.length})}},{key:"nearestInputPos",value:function(t,e){if(!this.thousandsSeparator)return t;switch(e){case x.NONE:case x.LEFT:case x.FORCE_LEFT:var n=this._findSeparatorAround(t-1);if(n>=0){var i=n+this.thousandsSeparator.length;if(t=0)return s+this.thousandsSeparator.length}return t}},{key:"doValidate",value:function(t){var e=(t.input?this._numberRegExpInput:this._numberRegExp).test(this._removeThousandsSeparators(this.value));if(e){var i=this.number;e=e&&!isNaN(i)&&(null==this.min||this.min>=0||this.min<=this.number)&&(null==this.max||this.max<=0||this.number<=this.max)}return e&&b(p(n.prototype),"doValidate",this).call(this,t)}},{key:"doCommit",value:function(){if(this.value){var t=this.number,e=t;null!=this.min&&(e=Math.max(e,this.min)),null!=this.max&&(e=Math.min(e,this.max)),e!==t&&(this.unmaskedValue=String(e));var i=this.value;this.normalizeZeros&&(i=this._normalizeZeros(i)),this.padFractionalZeros&&this.scale>0&&(i=this._padFractionalZeros(i)),this._value=i}b(p(n.prototype),"doCommit",this).call(this)}},{key:"_normalizeZeros",value:function(t){var e=this._removeThousandsSeparators(t).split(this.radix);return e[0]=e[0].replace(/^(\D*)(0*)(\d*)/,function(t,e,n,i){return e+i}),t.length&&!/\d$/.test(e[0])&&(e[0]=e[0]+"0"),e.length>1&&(e[1]=e[1].replace(/0*$/,""),e[1].length||(e.length=1)),this._insertThousandsSeparators(e.join(this.radix))}},{key:"_padFractionalZeros",value:function(t){if(!t)return t;var e=t.split(this.radix);return e.length<2&&e.push(""),e[1]=e[1].padEnd(this.scale,"0"),e.join(this.radix)}},{key:"unmaskedValue",get:function(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,".")},set:function(t){w(p(n.prototype),"unmaskedValue",t.replace(".",this.radix),this,!0)}},{key:"typedValue",get:function(){return Number(this.unmaskedValue)},set:function(t){w(p(n.prototype),"unmaskedValue",String(t),this,!0)}},{key:"number",get:function(){return this.typedValue},set:function(t){this.typedValue=t}},{key:"allowNegative",get:function(){return this.signed||null!=this.min&&this.min<0||null!=this.max&&this.max<0}}]),n}();tt.DEFAULTS={radix:",",thousandsSeparator:"",mapToRadix:["."],scale:2,signed:!1,normalizeZeros:!0,padFractionalZeros:!1},B.MaskedNumber=tt;var et=function(t){f(n,I);var e=_(n);function n(){return c(this,n),e.apply(this,arguments)}return d(n,[{key:"_update",value:function(t){t.mask&&(t.validate=t.mask),b(p(n.prototype),"_update",this).call(this,t)}}]),n}();B.MaskedFunction=et;var nt=["compiledMasks","currentMaskRef","currentMask"],it=function(t){f(n,I);var e=_(n);function n(t){var i;return c(this,n),(i=e.call(this,Object.assign({},n.DEFAULTS,t))).currentMask=null,i}return d(n,[{key:"_update",value:function(t){b(p(n.prototype),"_update",this).call(this,t),"mask"in t&&(this.compiledMasks=Array.isArray(t.mask)?t.mask.map(function(t){return M(t)}):[])}},{key:"_appendCharRaw",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this._applyDispatch(t,e);return this.currentMask&&n.aggregate(this.currentMask._appendChar(t,e)),n}},{key:"_applyDispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.tail&&null!=e._beforeTailState?e._beforeTailState._value:this.value,i=this.rawInputValue,s=e.tail&&null!=e._beforeTailState?e._beforeTailState._rawInputValue:i,r=i.slice(s.length),o=this.currentMask,a=new C,u=o&&o.state;if(this.currentMask=this.doDispatch(t,Object.assign({},e)),this.currentMask)if(this.currentMask!==o){if(this.currentMask.reset(),s){var l=this.currentMask.append(s,{raw:!0});a.tailShift=l.inserted.length-n.length}r&&(a.tailShift+=this.currentMask.append(r,{raw:!0,tail:!0}).tailShift)}else this.currentMask.state=u;return a}},{key:"_appendPlaceholder",value:function(){var t=this._applyDispatch.apply(this,arguments);return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}},{key:"_appendEager",value:function(){var t=this._applyDispatch.apply(this,arguments);return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}},{key:"doDispatch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.dispatch(t,this,e)}},{key:"doValidate",value:function(){for(var t,e,i=arguments.length,s=new Array(i),r=0;r1&&void 0!==arguments[1]?arguments[1]:st.MASKED,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:st.MASKED,i=M(t);return function(t){return i.runIsolated(function(i){return i[e]=t,i[n]})}}B.PIPE_TYPE=st,B.createPipe=rt,B.pipe=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i0&&(i=Ot(n.width)/o||1),r>0&&(s=Ot(n.height)/r||1)}return{width:n.width/i,height:n.height/s,top:n.top/s,right:n.right/i,bottom:n.bottom/s,left:n.left/i,x:n.left/i,y:n.top/s}}function Bt(t){var e=Dt(t),n=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:i}}function It(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&Ct(n)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function Lt(t){return wt(t).getComputedStyle(t)}function Mt(t){return["table","td","th"].indexOf(kt(t))>=0}function Pt(t){return((At(t)?t.ownerDocument:t.document)||window.document).documentElement}function Nt(t){return"html"===kt(t)?t:t.assignedSlot||t.parentNode||(Ct(t)?t.host:null)||Pt(t)}function Rt(t){return Et(t)&&"fixed"!==Lt(t).position?t.offsetParent:null}function jt(t){for(var e=wt(t),n=Rt(t);n&&Mt(n)&&"static"===Lt(n).position;)n=Rt(n);return n&&("html"===kt(n)||"body"===kt(n)&&"static"===Lt(n).position)?e:n||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Et(t)&&"fixed"===Lt(t).position)return null;var n=Nt(t);for(Ct(n)&&(n=n.host);Et(n)&&["html","body"].indexOf(kt(n))<0;){var i=Lt(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||e&&"filter"===i.willChange||e&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(t)||e}function Vt(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ht(t,e,n){return Ft(t,St(e,n))}function zt(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function $t(t,e){return e.reduce(function(e,n){return e[n]=t,e},{})}var qt=function(t,e){return zt("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:$t(t,ht))};var Wt={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,n=t.state,i=t.name,s=t.options,r=n.elements.arrow,o=n.modifiersData.popperOffsets,a=xt(n.placement),u=Vt(a),l=[lt,ut].indexOf(a)>=0?"height":"width";if(r&&o){var c=qt(s.padding,n),h=Bt(r),d="y"===u?ot:lt,f="y"===u?at:ut,p=n.rects.reference[l]+n.rects.reference[u]-o[u]-n.rects.popper[l],g=o[u]-n.rects.reference[u],m=jt(r),v=m?"y"===u?m.clientHeight||0:m.clientWidth||0:0,_=p/2-g/2,y=c[d],b=v-h[l]-c[f],k=v/2-h[l]/2+_,w=Ht(y,k,b),A=u;n.modifiersData[i]=((e={})[A]=w,e.centerOffset=w-k,e)}},effect:function(t){var e=t.state,n=t.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=e.elements.popper.querySelector(i)))&&It(e.elements.popper,i)&&(e.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ut(t){return t.split("-")[1]}var Yt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Kt(t){var e,n=t.popper,i=t.popperRect,s=t.placement,r=t.variation,o=t.offsets,a=t.position,u=t.gpuAcceleration,l=t.adaptive,c=t.roundOffsets,h=t.isFixed,d=o.x,f=void 0===d?0:d,p=o.y,g=void 0===p?0:p,m="function"==typeof c?c({x:f,y:g}):{x:f,y:g};f=m.x,g=m.y;var v=o.hasOwnProperty("x"),_=o.hasOwnProperty("y"),y=lt,b=ot,k=window;if(l){var w=jt(n),A="clientHeight",E="clientWidth";if(w===wt(n)&&"static"!==Lt(w=Pt(n)).position&&"absolute"===a&&(A="scrollHeight",E="scrollWidth"),w=w,s===ot||(s===lt||s===ut)&&r===ft)b=at,g-=(h&&w===k&&k.visualViewport?k.visualViewport.height:w[A])-i.height,g*=u?1:-1;if(s===lt||(s===ot||s===at)&&r===ft)y=ut,f-=(h&&w===k&&k.visualViewport?k.visualViewport.width:w[E])-i.width,f*=u?1:-1}var C,T=Object.assign({position:a},l&&Yt),x=!0===c?function(t){var e=t.x,n=t.y,i=window.devicePixelRatio||1;return{x:Ot(e*i)/i||0,y:Ot(n*i)/i||0}}({x:f,y:g}):{x:f,y:g};return f=x.x,g=x.y,u?Object.assign({},T,((C={})[b]=_?"0":"",C[y]=v?"0":"",C.transform=(k.devicePixelRatio||1)<=1?"translate("+f+"px, "+g+"px)":"translate3d("+f+"px, "+g+"px, 0)",C)):Object.assign({},T,((e={})[b]=_?g+"px":"",e[y]=v?f+"px":"",e.transform="",e))}var Gt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,i=n.gpuAcceleration,s=void 0===i||i,r=n.adaptive,o=void 0===r||r,a=n.roundOffsets,u=void 0===a||a,l={placement:xt(e.placement),variation:Ut(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Kt(Object.assign({},l,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:o,roundOffsets:u})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Kt(Object.assign({},l,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},Xt={passive:!0};var Qt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,i=t.options,s=i.scroll,r=void 0===s||s,o=i.resize,a=void 0===o||o,u=wt(e.elements.popper),l=[].concat(e.scrollParents.reference,e.scrollParents.popper);return r&&l.forEach(function(t){t.addEventListener("scroll",n.update,Xt)}),a&&u.addEventListener("resize",n.update,Xt),function(){r&&l.forEach(function(t){t.removeEventListener("scroll",n.update,Xt)}),a&&u.removeEventListener("resize",n.update,Xt)}},data:{}},Zt={left:"right",right:"left",bottom:"top",top:"bottom"};function Jt(t){return t.replace(/left|right|bottom|top/g,function(t){return Zt[t]})}var te={start:"end",end:"start"};function ee(t){return t.replace(/start|end/g,function(t){return te[t]})}function ne(t){var e=wt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ie(t){return Dt(Pt(t)).left+ne(t).scrollLeft}function se(t){var e=Lt(t),n=e.overflow,i=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function re(t,e){var n;void 0===e&&(e=[]);var i=function t(e){return["html","body","#document"].indexOf(kt(e))>=0?e.ownerDocument.body:Et(e)&&se(e)?e:t(Nt(e))}(t),s=i===(null==(n=t.ownerDocument)?void 0:n.body),r=wt(i),o=s?[r].concat(r.visualViewport||[],se(i)?i:[]):i,a=e.concat(o);return s?a:a.concat(re(Nt(o)))}function oe(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ae(t,e){return e===gt?oe(function(t){var e=wt(t),n=Pt(t),i=e.visualViewport,s=n.clientWidth,r=n.clientHeight,o=0,a=0;return i&&(s=i.width,r=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=i.offsetLeft,a=i.offsetTop)),{width:s,height:r,x:o+ie(t),y:a}}(t)):At(e)?function(t){var e=Dt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):oe(function(t){var e,n=Pt(t),i=ne(t),s=null==(e=t.ownerDocument)?void 0:e.body,r=Ft(n.scrollWidth,n.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),o=Ft(n.scrollHeight,n.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-i.scrollLeft+ie(t),u=-i.scrollTop;return"rtl"===Lt(s||n).direction&&(a+=Ft(n.clientWidth,s?s.clientWidth:0)-r),{width:r,height:o,x:a,y:u}}(Pt(t)))}function ue(t,e,n){var i="clippingParents"===e?function(t){var e=re(Nt(t)),n=["absolute","fixed"].indexOf(Lt(t).position)>=0&&Et(t)?jt(t):t;return At(n)?e.filter(function(t){return At(t)&&It(t,n)&&"body"!==kt(t)}):[]}(t):[].concat(e),s=[].concat(i,[n]),r=s[0],o=s.reduce(function(e,n){var i=ae(t,n);return e.top=Ft(i.top,e.top),e.right=St(i.right,e.right),e.bottom=St(i.bottom,e.bottom),e.left=Ft(i.left,e.left),e},ae(t,r));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function le(t){var e,n=t.reference,i=t.element,s=t.placement,r=s?xt(s):null,o=s?Ut(s):null,a=n.x+n.width/2-i.width/2,u=n.y+n.height/2-i.height/2;switch(r){case ot:e={x:a,y:n.y-i.height};break;case at:e={x:a,y:n.y+n.height};break;case ut:e={x:n.x+n.width,y:u};break;case lt:e={x:n.x-i.width,y:u};break;default:e={x:n.x,y:n.y}}var l=r?Vt(r):null;if(null!=l){var c="y"===l?"height":"width";switch(o){case dt:e[l]=e[l]-(n[c]/2-i[c]/2);break;case ft:e[l]=e[l]+(n[c]/2-i[c]/2)}}return e}function ce(t,e){void 0===e&&(e={});var n=e,i=n.placement,s=void 0===i?t.placement:i,r=n.boundary,o=void 0===r?pt:r,a=n.rootBoundary,u=void 0===a?gt:a,l=n.elementContext,c=void 0===l?mt:l,h=n.altBoundary,d=void 0!==h&&h,f=n.padding,p=void 0===f?0:f,g=zt("number"!=typeof p?p:$t(p,ht)),m=c===mt?vt:mt,v=t.rects.popper,_=t.elements[d?m:c],y=ue(At(_)?_:_.contextElement||Pt(t.elements.popper),o,u),b=Dt(t.elements.reference),k=le({reference:b,element:v,strategy:"absolute",placement:s}),w=oe(Object.assign({},v,k)),A=c===mt?w:b,E={top:y.top-A.top+g.top,bottom:A.bottom-y.bottom+g.bottom,left:y.left-A.left+g.left,right:A.right-y.right+g.right},C=t.modifiersData.offset;if(c===mt&&C){var T=C[s];Object.keys(E).forEach(function(t){var e=[ut,at].indexOf(t)>=0?1:-1,n=[ot,at].indexOf(t)>=0?"y":"x";E[t]+=T[n]*e})}return E}function he(t,e){void 0===e&&(e={});var n=e,i=n.placement,s=n.boundary,r=n.rootBoundary,o=n.padding,a=n.flipVariations,u=n.allowedAutoPlacements,l=void 0===u?yt:u,c=Ut(i),h=c?a?_t:_t.filter(function(t){return Ut(t)===c}):ht,d=h.filter(function(t){return l.indexOf(t)>=0});0===d.length&&(d=h);var f=d.reduce(function(e,n){return e[n]=ce(t,{placement:n,boundary:s,rootBoundary:r,padding:o})[xt(n)],e},{});return Object.keys(f).sort(function(t,e){return f[t]-f[e]})}var de={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,i=t.name;if(!e.modifiersData[i]._skip){for(var s=n.mainAxis,r=void 0===s||s,o=n.altAxis,a=void 0===o||o,u=n.fallbackPlacements,l=n.padding,c=n.boundary,h=n.rootBoundary,d=n.altBoundary,f=n.flipVariations,p=void 0===f||f,g=n.allowedAutoPlacements,m=e.options.placement,v=xt(m),_=u||(v!==m&&p?function(t){if(xt(t)===ct)return[];var e=Jt(t);return[ee(t),e,ee(e)]}(m):[Jt(m)]),y=[m].concat(_).reduce(function(t,n){return t.concat(xt(n)===ct?he(e,{placement:n,boundary:c,rootBoundary:h,padding:l,flipVariations:p,allowedAutoPlacements:g}):n)},[]),b=e.rects.reference,k=e.rects.popper,w=new Map,A=!0,E=y[0],C=0;C=0,O=S?"width":"height",D=ce(e,{placement:T,boundary:c,rootBoundary:h,altBoundary:d,padding:l}),B=S?F?ut:lt:F?at:ot;b[O]>k[O]&&(B=Jt(B));var I=Jt(B),L=[];if(r&&L.push(D[x]<=0),a&&L.push(D[B]<=0,D[I]<=0),L.every(function(t){return t})){E=T,A=!1;break}w.set(T,L)}if(A)for(var M=function(t){var e=y.find(function(e){var n=w.get(e);if(n)return n.slice(0,t).every(function(t){return t})});if(e)return E=e,"break"},P=p?3:1;P>0&&"break"!==M(P);P--);e.placement!==E&&(e.modifiersData[i]._skip=!0,e.placement=E,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function fe(t,e,n){return void 0===n&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function pe(t){return[ot,ut,at,lt].some(function(e){return t[e]>=0})}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,i=e.rects.reference,s=e.rects.popper,r=e.modifiersData.preventOverflow,o=ce(e,{elementContext:"reference"}),a=ce(e,{altBoundary:!0}),u=fe(o,i),l=fe(a,s,r),c=pe(u),h=pe(l);e.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:h},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":h})}};var me={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,n=t.options,i=t.name,s=n.offset,r=void 0===s?[0,0]:s,o=yt.reduce(function(t,n){return t[n]=function(t,e,n){var i=xt(t),s=[lt,ot].indexOf(i)>=0?-1:1,r="function"==typeof n?n(Object.assign({},e,{placement:t})):n,o=r[0],a=r[1];return o=o||0,a=(a||0)*s,[lt,ut].indexOf(i)>=0?{x:a,y:o}:{x:o,y:a}}(n,e.rects,r),t},{}),a=o[e.placement],u=a.x,l=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=u,e.modifiersData.popperOffsets.y+=l),e.modifiersData[i]=o}};var ve={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=le({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}};var _e={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,i=t.name,s=n.mainAxis,r=void 0===s||s,o=n.altAxis,a=void 0!==o&&o,u=n.boundary,l=n.rootBoundary,c=n.altBoundary,h=n.padding,d=n.tether,f=void 0===d||d,p=n.tetherOffset,g=void 0===p?0:p,m=ce(e,{boundary:u,rootBoundary:l,padding:h,altBoundary:c}),v=xt(e.placement),_=Ut(e.placement),y=!_,b=Vt(v),k="x"===b?"y":"x",w=e.modifiersData.popperOffsets,A=e.rects.reference,E=e.rects.popper,C="function"==typeof g?g(Object.assign({},e.rects,{placement:e.placement})):g,T="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,F={x:0,y:0};if(w){if(r){var S,O="y"===b?ot:lt,D="y"===b?at:ut,B="y"===b?"height":"width",I=w[b],L=I+m[O],M=I-m[D],P=f?-E[B]/2:0,N=_===dt?A[B]:E[B],R=_===dt?-E[B]:-A[B],j=e.elements.arrow,V=f&&j?Bt(j):{width:0,height:0},H=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=H[O],$=H[D],q=Ht(0,A[B],V[B]),W=y?A[B]/2-P-q-z-T.mainAxis:N-q-z-T.mainAxis,U=y?-A[B]/2+P+q+$+T.mainAxis:R+q+$+T.mainAxis,Y=e.elements.arrow&&jt(e.elements.arrow),K=Y?"y"===b?Y.clientTop||0:Y.clientLeft||0:0,G=null!=(S=null==x?void 0:x[b])?S:0,X=I+U-G,Q=Ht(f?St(L,I+W-G-K):L,I,f?Ft(M,X):M);w[b]=Q,F[b]=Q-I}if(a){var Z,J="x"===b?ot:lt,tt="x"===b?at:ut,et=w[k],nt="y"===k?"height":"width",it=et+m[J],st=et-m[tt],rt=-1!==[ot,lt].indexOf(v),ct=null!=(Z=null==x?void 0:x[k])?Z:0,ht=rt?it:et-A[nt]-E[nt]-ct+T.altAxis,ft=rt?et+A[nt]+E[nt]-ct-T.altAxis:st,pt=f&&rt?function(t,e,n){var i=Ht(t,e,n);return i>n?n:i}(ht,et,ft):Ht(f?ht:it,et,f?ft:st);w[k]=pt,F[k]=pt-et}e.modifiersData[i]=F}},requiresIfExists:["offset"]};function ye(t,e,n){void 0===n&&(n=!1);var i,s,r=Et(e),o=Et(e)&&function(t){var e=t.getBoundingClientRect(),n=Ot(e.width)/t.offsetWidth||1,i=Ot(e.height)/t.offsetHeight||1;return 1!==n||1!==i}(e),a=Pt(e),u=Dt(t,o),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&(("body"!==kt(e)||se(a))&&(l=(i=e)!==wt(i)&&Et(i)?{scrollLeft:(s=i).scrollLeft,scrollTop:s.scrollTop}:ne(i)),Et(e)?((c=Dt(e,!0)).x+=e.clientLeft,c.y+=e.clientTop):a&&(c.x=ie(a))),{x:u.left+l.scrollLeft-c.x,y:u.top+l.scrollTop-c.y,width:u.width,height:u.height}}function be(t){var e=new Map,n=new Set,i=[];return t.forEach(function(t){e.set(t.name,t)}),t.forEach(function(t){n.has(t.name)||function t(s){n.add(s.name),[].concat(s.requires||[],s.requiresIfExists||[]).forEach(function(i){if(!n.has(i)){var s=e.get(i);s&&t(s)}}),i.push(s)}(t)}),i}var ke={placement:"bottom",modifiers:[],strategy:"absolute"};function we(){for(var t=arguments.length,e=new Array(t),n=0;nnull==t?`${t}`:Object.prototype.toString.call(t).match(/\s([a-z]+)/i)[1].toLowerCase(),Se=t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},Oe=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let n=t.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),e=n&&"#"!==n?n.trim():null}return e},De=t=>{const e=Oe(t);return e&&document.querySelector(e)?e:null},Be=t=>{const e=Oe(t);return e?document.querySelector(e):null},Ie=t=>{t.dispatchEvent(new Event("transitionend"))},Le=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Me=t=>Le(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,Pe=t=>{if(!Le(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),n=t.closest("details:not([open])");if(!n)return e;if(n!==t){const e=t.closest("summary");if(e&&e.parentNode!==n)return!1;if(null===e)return!1}return e},Ne=t=>!t||t.nodeType!==Node.ELEMENT_NODE||(!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled"))),Re=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?Re(t.parentNode):null},je=()=>{},Ve=t=>{t.offsetHeight},He=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,ze=[],$e=()=>"rtl"===document.documentElement.dir,qe=t=>{(t=>{"loading"===document.readyState?(ze.length||document.addEventListener("DOMContentLoaded",()=>{for(const t of ze)t()}),ze.push(t)):t()})(()=>{const e=He();if(e){const n=t.NAME,i=e.fn[n];e.fn[n]=t.jQueryInterface,e.fn[n].Constructor=t,e.fn[n].noConflict=(()=>(e.fn[n]=i,t.jQueryInterface))}})},We=t=>{"function"==typeof t&&t()},Ue=(t,e,n=!0)=>{if(!n)return void We(t);const i=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:n}=window.getComputedStyle(t);const i=Number.parseFloat(e),s=Number.parseFloat(n);return i||s?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0})(e)+5;let s=!1;const r=({target:n})=>{n===e&&(s=!0,e.removeEventListener("transitionend",r),We(t))};e.addEventListener("transitionend",r),setTimeout(()=>{s||Ie(e)},i)},Ye=(t,e,n,i)=>{const s=t.length;let r=t.indexOf(e);return-1===r?!n&&i?t[s-1]:t[0]:(r+=n?1:-1,i&&(r=(r+s)%s),t[Math.max(0,Math.min(r,s-1))])},Ke=/[^.]*(?=\..*)\.|.*/,Ge=/\..*/,Xe=/::\d+$/,Qe={};let Ze=1;const Je={mouseenter:"mouseover",mouseleave:"mouseout"},tn=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function en(t,e){return e&&`${e}::${Ze++}`||t.uidEvent||Ze++}function nn(t){const e=en(t);return t.uidEvent=e,Qe[e]=Qe[e]||{},Qe[e]}function sn(t,e,n=null){return Object.values(t).find(t=>t.callable===e&&t.delegationSelector===n)}function rn(t,e,n){const i="string"==typeof e,s=i?n:e||n;let r=ln(t);return tn.has(r)||(r=t),[i,s,r]}function on(t,e,n,i,s){if("string"!=typeof e||!t)return;let[r,o,a]=rn(e,n,i);if(e in Je){o=(t=>(function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)}))(o)}const u=nn(t),l=u[a]||(u[a]={}),c=sn(l,o,r?n:null);if(c)return void(c.oneOff=c.oneOff&&s);const h=en(o,e.replace(Ke,"")),d=r?function(t,e,n){return function i(s){const r=t.querySelectorAll(e);for(let{target:o}=s;o&&o!==this;o=o.parentNode)for(const a of r)if(a===o)return hn(s,{delegateTarget:o}),i.oneOff&&cn.off(t,s.type,e,n),n.apply(o,[s])}}(t,n,o):function(t,e){return function n(i){return hn(i,{delegateTarget:t}),n.oneOff&&cn.off(t,i.type,e),e.apply(t,[i])}}(t,o);d.delegationSelector=r?n:null,d.callable=o,d.oneOff=s,d.uidEvent=h,l[h]=d,t.addEventListener(a,d,r)}function an(t,e,n,i,s){const r=sn(e[n],i,s);r&&(t.removeEventListener(n,r,Boolean(s)),delete e[n][r.uidEvent])}function un(t,e,n,i){const s=e[n]||{};for(const r of Object.keys(s))if(r.includes(i)){const i=s[r];an(t,e,n,i.callable,i.delegationSelector)}}function ln(t){return t=t.replace(Ge,""),Je[t]||t}const cn={on(t,e,n,i){on(t,e,n,i,!1)},one(t,e,n,i){on(t,e,n,i,!0)},off(t,e,n,i){if("string"!=typeof e||!t)return;const[s,r,o]=rn(e,n,i),a=o!==e,u=nn(t),l=u[o]||{},c=e.startsWith(".");if(void 0===r){if(c)for(const n of Object.keys(u))un(t,u,n,e.slice(1));for(const n of Object.keys(l)){const i=n.replace(Xe,"");if(!a||e.includes(i)){const e=l[n];an(t,u,o,e.callable,e.delegationSelector)}}}else{if(!Object.keys(l).length)return;an(t,u,o,r,s?n:null)}},trigger(t,e,n){if("string"!=typeof e||!t)return null;const i=He();let s=null,r=!0,o=!0,a=!1;e!==ln(e)&&i&&(s=i.Event(e,n),i(t).trigger(s),r=!s.isPropagationStopped(),o=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());let u=new Event(e,{bubbles:r,cancelable:!0});return u=hn(u,n),a&&u.preventDefault(),o&&t.dispatchEvent(u),u.defaultPrevented&&s&&s.preventDefault(),u}};function hn(t,e){for(const[n,i]of Object.entries(e||{}))try{t[n]=i}catch(e){Object.defineProperty(t,n,{configurable:!0,get:()=>i})}return t}const dn=new Map,fn={set(t,e,n){dn.has(t)||dn.set(t,new Map);const i=dn.get(t);i.has(e)||0===i.size?i.set(e,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`)},get:(t,e)=>dn.has(t)&&dn.get(t).get(e)||null,remove(t,e){if(!dn.has(t))return;const n=dn.get(t);n.delete(e),0===n.size&&dn.delete(t)}};function pn(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function gn(t){return t.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}const mn={setDataAttribute(t,e,n){t.setAttribute(`data-bs-${gn(e)}`,n)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${gn(e)}`)},getDataAttributes(t){if(!t)return{};const e={},n=Object.keys(t.dataset).filter(t=>t.startsWith("bs")&&!t.startsWith("bsConfig"));for(const i of n){let n=i.replace(/^bs/,"");e[n=n.charAt(0).toLowerCase()+n.slice(1,n.length)]=pn(t.dataset[i])}return e},getDataAttribute:(t,e)=>pn(t.getAttribute(`data-bs-${gn(e)}`))};class vn{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const n=Le(e)?mn.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Le(e)?mn.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const n of Object.keys(e)){const i=e[n],s=t[n],r=Le(s)?"element":Fe(s);if(!new RegExp(i).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${i}".`)}}}const _n="5.2.0";class yn extends vn{constructor(t,e){super(),(t=Me(t))&&(this._element=t,this._config=this._getConfig(e),fn.set(this._element,this.constructor.DATA_KEY,this))}dispose(){fn.remove(this._element,this.constructor.DATA_KEY),cn.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,n=!0){Ue(t,e,n)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return fn.get(Me(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return _n}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const bn=(t,e="hide")=>{const n=`click.dismiss${t.EVENT_KEY}`,i=t.NAME;cn.on(document,n,`[data-bs-dismiss="${i}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),Ne(this))return;const s=Be(this)||this.closest(`.${i}`);t.getOrCreateInstance(s)[e]()})},kn="alert",wn="close.bs.alert",An="closed.bs.alert",En="fade",Cn="show";class Tn extends yn{static get NAME(){return kn}close(){if(cn.trigger(this._element,wn).defaultPrevented)return;this._element.classList.remove(Cn);const t=this._element.classList.contains(En);this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),cn.trigger(this._element,An),this.dispose()}static jQueryInterface(t){return this.each(function(){const e=Tn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}bn(Tn,"close"),qe(Tn);const xn="button",Fn="active";class Sn extends yn{static get NAME(){return xn}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(Fn))}static jQueryInterface(t){return this.each(function(){const e=Sn.getOrCreateInstance(this);"toggle"===t&&e[t]()})}}cn.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');Sn.getOrCreateInstance(e).toggle()}),qe(Sn);const On={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const n=[];let i=t.parentNode.closest(e);for(;i;)n.push(i),i=i.parentNode.closest(e);return n},prev(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return[n];n=n.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(t=>`${t}:not([tabindex^="-"])`).join(",");return this.find(e,t).filter(t=>!Ne(t)&&Pe(t))}},Dn="swipe",Bn=".bs.swipe",In=`touchstart${Bn}`,Ln=`touchmove${Bn}`,Mn=`touchend${Bn}`,Pn=`pointerdown${Bn}`,Nn=`pointerup${Bn}`,Rn="touch",jn="pen",Vn="pointer-event",Hn=40,zn={endCallback:null,leftCallback:null,rightCallback:null},$n={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class qn extends vn{constructor(t,e){super(),this._element=t,t&&qn.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return zn}static get DefaultType(){return $n}static get NAME(){return Dn}dispose(){cn.off(this._element,Bn)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),We(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=Hn)return;const e=t/this._deltaX;this._deltaX=0,e&&We(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(cn.on(this._element,Pn,t=>this._start(t)),cn.on(this._element,Nn,t=>this._end(t)),this._element.classList.add(Vn)):(cn.on(this._element,In,t=>this._start(t)),cn.on(this._element,Ln,t=>this._move(t)),cn.on(this._element,Mn,t=>this._end(t)))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&(t.pointerType===jn||t.pointerType===Rn)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Wn="carousel",Un=500,Yn="next",Kn="prev",Gn="left",Xn="right",Qn="slide.bs.carousel",Zn="slid.bs.carousel",Jn="keydown.bs.carousel",ti="mouseenter.bs.carousel",ei="mouseleave.bs.carousel",ni="dragstart.bs.carousel",ii="carousel",si="active",ri="slide",oi="carousel-item-end",ai="carousel-item-start",ui="carousel-item-next",li="carousel-item-prev",ci=".active",hi=".carousel-item",di=ci+hi,fi=".carousel-item img",pi=".carousel-indicators",gi={ArrowLeft:Xn,ArrowRight:Gn},mi={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},vi={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class _i extends yn{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=On.findOne(pi,this._element),this._addEventListeners(),this._config.ride===ii&&this.cycle()}static get Default(){return mi}static get DefaultType(){return vi}static get NAME(){return Wn}next(){this._slide(Yn)}nextWhenVisible(){!document.hidden&&Pe(this._element)&&this.next()}prev(){this._slide(Kn)}pause(){this._isSliding&&Ie(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?cn.one(this._element,Zn,()=>this.cycle()):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void cn.one(this._element,Zn,()=>this.to(t));const n=this._getItemIndex(this._getActive());if(n===t)return;const i=t>n?Yn:Kn;this._slide(i,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&cn.on(this._element,Jn,t=>this._keydown(t)),"hover"===this._config.pause&&(cn.on(this._element,ti,()=>this.pause()),cn.on(this._element,ei,()=>this._maybeEnableCycle())),this._config.touch&&qn.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of On.find(fi,this._element))cn.on(t,ni,t=>t.preventDefault());const t={leftCallback:()=>this._slide(this._directionToOrder(Gn)),rightCallback:()=>this._slide(this._directionToOrder(Xn)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),Un+this._config.interval))}};this._swipeHelper=new qn(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=gi[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=On.findOne(ci,this._indicatorsElement);e.classList.remove(si),e.removeAttribute("aria-current");const n=On.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);n&&(n.classList.add(si),n.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const n=this._getActive(),i=t===Yn,s=e||Ye(this._getItems(),n,i,this._config.wrap);if(s===n)return;const r=this._getItemIndex(s),o=e=>cn.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(n),to:r});if(o(Qn).defaultPrevented)return;if(!n||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(r),this._activeElement=s;const u=i?ai:oi,l=i?ui:li;s.classList.add(l),Ve(s),n.classList.add(u),s.classList.add(u);this._queueCallback(()=>{s.classList.remove(u,l),s.classList.add(si),n.classList.remove(si,l,u),this._isSliding=!1,o(Zn)},n,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains(ri)}_getActive(){return On.findOne(di,this._element)}_getItems(){return On.find(hi,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return $e()?t===Gn?Kn:Yn:t===Gn?Yn:Kn}_orderToDirection(t){return $e()?t===Kn?Gn:Xn:t===Kn?Xn:Gn}static jQueryInterface(t){return this.each(function(){const e=_i.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)})}}cn.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",function(t){const e=Be(this);if(!e||!e.classList.contains(ii))return;t.preventDefault();const n=_i.getOrCreateInstance(e),i=this.getAttribute("data-bs-slide-to");return i?(n.to(i),void n._maybeEnableCycle()):"next"===mn.getDataAttribute(this,"slide")?(n.next(),void n._maybeEnableCycle()):(n.prev(),void n._maybeEnableCycle())}),cn.on(window,"load.bs.carousel.data-api",()=>{const t=On.find('[data-bs-ride="carousel"]');for(const e of t)_i.getOrCreateInstance(e)}),qe(_i);const yi="collapse",bi="show.bs.collapse",ki="shown.bs.collapse",wi="hide.bs.collapse",Ai="hidden.bs.collapse",Ei="show",Ci="collapse",Ti="collapsing",xi="collapsed",Fi=`:scope .${Ci} .${Ci}`,Si="collapse-horizontal",Oi="width",Di="height",Bi=".collapse.show, .collapse.collapsing",Ii='[data-bs-toggle="collapse"]',Li={parent:null,toggle:!0},Mi={parent:"(null|element)",toggle:"boolean"};class Pi extends yn{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const n=On.find(Ii);for(const t of n){const e=De(t),n=On.find(e).filter(t=>t===this._element);null!==e&&n.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Li}static get DefaultType(){return Mi}static get NAME(){return yi}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(Bi).filter(t=>t!==this._element).map(t=>Pi.getOrCreateInstance(t,{toggle:!1}))),t.length&&t[0]._isTransitioning)return;if(cn.trigger(this._element,bi).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Ci),this._element.classList.add(Ti),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(Ti),this._element.classList.add(Ci,Ei),this._element.style[e]="",cn.trigger(this._element,ki)},this._element,!0),this._element.style[e]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(cn.trigger(this._element,wi).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,Ve(this._element),this._element.classList.add(Ti),this._element.classList.remove(Ci,Ei);for(const t of this._triggerArray){const e=Be(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0;this._element.style[t]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(Ti),this._element.classList.add(Ci),cn.trigger(this._element,Ai)},this._element,!0)}_isShown(t=this._element){return t.classList.contains(Ei)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Me(t.parent),t}_getDimension(){return this._element.classList.contains(Si)?Oi:Di}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ii);for(const e of t){const t=Be(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=On.find(Fi,this._config.parent);return On.find(t,this._config.parent).filter(t=>!e.includes(t))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const n of t)n.classList.toggle(xi,!e),n.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each(function(){const n=Pi.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}})}}cn.on(document,"click.bs.collapse.data-api",Ii,function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=De(this),n=On.find(e);for(const t of n)Pi.getOrCreateInstance(t,{toggle:!1}).toggle()}),qe(Pi);const Ni="dropdown",Ri="Escape",ji="Tab",Vi="ArrowUp",Hi="ArrowDown",zi=2,$i="hide.bs.dropdown",qi="hidden.bs.dropdown",Wi="show.bs.dropdown",Ui="shown.bs.dropdown",Yi="show",Ki="dropup",Gi="dropend",Xi="dropstart",Qi="dropup-center",Zi="dropdown-center",Ji='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',ts=`${Ji}.${Yi}`,es=".dropdown-menu",ns=".navbar",is=".navbar-nav",ss=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",rs=$e()?"top-end":"top-start",os=$e()?"top-start":"top-end",as=$e()?"bottom-end":"bottom-start",us=$e()?"bottom-start":"bottom-end",ls=$e()?"left-start":"right-start",cs=$e()?"right-start":"left-start",hs="top",ds="bottom",fs={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},ps={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class gs extends yn{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=On.findOne(es,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return fs}static get DefaultType(){return ps}static get NAME(){return Ni}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Ne(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!cn.trigger(this._element,Wi,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(is))for(const t of[].concat(...document.body.children))cn.on(t,"mouseover",je);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Yi),this._element.classList.add(Yi),cn.trigger(this._element,Ui,t)}}hide(){if(Ne(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!cn.trigger(this._element,$i,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))cn.off(t,"mouseover",je);this._popper&&this._popper.destroy(),this._menu.classList.remove(Yi),this._element.classList.remove(Yi),this._element.setAttribute("aria-expanded","false"),mn.removeDataAttribute(this._menu,"popper"),cn.trigger(this._element,qi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!Le(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ni.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===xe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:Le(this._config.reference)?t=Me(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=Te(t,this._menu,e)}_isShown(){return this._menu.classList.contains(Yi)}_getPlacement(){const t=this._parent;if(t.classList.contains(Gi))return ls;if(t.classList.contains(Xi))return cs;if(t.classList.contains(Qi))return hs;if(t.classList.contains(Zi))return ds;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains(Ki)?e?os:rs:e?us:as}_detectNavbar(){return null!==this._element.closest(ns)}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(mn.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const n=On.find(ss,this._menu).filter(t=>Pe(t));n.length&&Ye(n,e,t===Hi,!n.includes(e)).focus()}static jQueryInterface(t){return this.each(function(){const e=gs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}static clearMenus(t){if(t.button===zi||"keyup"===t.type&&t.key!==ji)return;const e=On.find(ts);for(const n of e){const e=gs.getInstance(n);if(!e||!1===e._config.autoClose)continue;const i=t.composedPath(),s=i.includes(e._menu);if(i.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&t.key===ji||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const r={relatedTarget:e._element};"click"===t.type&&(r.clickEvent=t),e._completeHide(r)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),n=t.key===Ri,i=[Vi,Hi].includes(t.key);if(!i&&!n)return;if(e&&!n)return;t.preventDefault();const s=On.findOne(Ji,t.delegateTarget.parentNode),r=gs.getOrCreateInstance(s);if(i)return t.stopPropagation(),r.show(),void r._selectMenuItem(t);r._isShown()&&(t.stopPropagation(),r.hide(),s.focus())}}cn.on(document,"keydown.bs.dropdown.data-api",Ji,gs.dataApiKeydownHandler),cn.on(document,"keydown.bs.dropdown.data-api",es,gs.dataApiKeydownHandler),cn.on(document,"click.bs.dropdown.data-api",gs.clearMenus),cn.on(document,"keyup.bs.dropdown.data-api",gs.clearMenus),cn.on(document,"click.bs.dropdown.data-api",Ji,function(t){t.preventDefault(),gs.getOrCreateInstance(this).toggle()}),qe(gs);const ms=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",vs=".sticky-top",_s="padding-right",ys="margin-right";class bs{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,_s,e=>e+t),this._setElementAttributes(ms,_s,e=>e+t),this._setElementAttributes(vs,ys,e=>e-t)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,_s),this._resetElementAttributes(ms,_s),this._resetElementAttributes(vs,ys)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,n){const i=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+i)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${n(Number.parseFloat(s))}px`)})}_saveInitialAttribute(t,e){const n=t.style.getPropertyValue(e);n&&mn.setDataAttribute(t,e,n)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const n=mn.getDataAttribute(t,e);null!==n?(mn.removeDataAttribute(t,e),t.style.setProperty(e,n)):t.style.removeProperty(e)})}_applyManipulationCallback(t,e){if(Le(t))e(t);else for(const n of On.find(t,this._element))e(n)}}const ks="backdrop",ws="fade",As="show",Es=`mousedown.bs.${ks}`,Cs={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ts={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class xs extends vn{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Cs}static get DefaultType(){return Ts}static get NAME(){return ks}show(t){if(!this._config.isVisible)return void We(t);this._append();const e=this._getElement();this._config.isAnimated&&Ve(e),e.classList.add(As),this._emulateAnimation(()=>{We(t)})}hide(t){this._config.isVisible?(this._getElement().classList.remove(As),this._emulateAnimation(()=>{this.dispose(),We(t)})):We(t)}dispose(){this._isAppended&&(cn.off(this._element,Es),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add(ws),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=Me(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),cn.on(t,Es,()=>{We(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(t){Ue(t,this._getElement(),this._config.isAnimated)}}const Fs="focustrap",Ss=".bs.focustrap",Os=`focusin${Ss}`,Ds=`keydown.tab${Ss}`,Bs="Tab",Is="forward",Ls="backward",Ms={autofocus:!0,trapElement:null},Ps={autofocus:"boolean",trapElement:"element"};class Ns extends vn{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Ms}static get DefaultType(){return Ps}static get NAME(){return Fs}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),cn.off(document,Ss),cn.on(document,Os,t=>this._handleFocusin(t)),cn.on(document,Ds,t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,cn.off(document,Ss))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const n=On.focusableChildren(e);0===n.length?e.focus():this._lastTabNavDirection===Ls?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){t.key===Bs&&(this._lastTabNavDirection=t.shiftKey?Ls:Is)}}const Rs="modal",js=".bs.modal",Vs="Escape",Hs=`hide${js}`,zs=`hidePrevented${js}`,$s=`hidden${js}`,qs=`show${js}`,Ws=`shown${js}`,Us=`resize${js}`,Ys=`mousedown.dismiss${js}`,Ks=`keydown.dismiss${js}`,Gs=`click${js}.data-api`,Xs="modal-open",Qs="fade",Zs="show",Js="modal-static",tr=".modal-dialog",er=".modal-body",nr={backdrop:!0,focus:!0,keyboard:!0},ir={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class sr extends yn{constructor(t,e){super(t,e),this._dialog=On.findOne(tr,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new bs,this._addEventListeners()}static get Default(){return nr}static get DefaultType(){return ir}static get NAME(){return Rs}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(this._isShown||this._isTransitioning)return;cn.trigger(this._element,qs,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Xs),this._adjustDialog(),this._backdrop.show(()=>this._showElement(t)))}hide(){if(!this._isShown||this._isTransitioning)return;cn.trigger(this._element,Hs).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Zs),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){for(const t of[window,this._dialog])cn.off(t,js);this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new xs({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ns({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=On.findOne(er,this._dialog);e&&(e.scrollTop=0),Ve(this._element),this._element.classList.add(Zs);this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,cn.trigger(this._element,Ws,{relatedTarget:t})},this._dialog,this._isAnimated())}_addEventListeners(){cn.on(this._element,Ks,t=>{if(t.key===Vs)return this._config.keyboard?(t.preventDefault(),void this.hide()):void this._triggerBackdropTransition()}),cn.on(window,Us,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),cn.on(this._element,Ys,t=>{t.target===t.currentTarget&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Xs),this._resetAdjustments(),this._scrollBar.reset(),cn.trigger(this._element,$s)})}_isAnimated(){return this._element.classList.contains(Qs)}_triggerBackdropTransition(){if(cn.trigger(this._element,zs).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(Js)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(Js),this._queueCallback(()=>{this._element.classList.remove(Js),this._queueCallback(()=>{this._element.style.overflowY=e},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),n=e>0;if(n&&!t){const t=$e()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!n&&t){const t=$e()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each(function(){const n=sr.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t](e)}})}}cn.on(document,Gs,'[data-bs-toggle="modal"]',function(t){const e=Be(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),cn.one(e,qs,t=>{t.defaultPrevented||cn.one(e,$s,()=>{Pe(this)&&this.focus()})});const n=On.findOne(".modal.show");n&&sr.getInstance(n).hide(),sr.getOrCreateInstance(e).toggle(this)}),bn(sr),qe(sr);const rr="offcanvas",or="Escape",ar="show",ur="showing",lr="hiding",cr="offcanvas-backdrop",hr="show.bs.offcanvas",dr="shown.bs.offcanvas",fr="hide.bs.offcanvas",pr="hidePrevented.bs.offcanvas",gr="hidden.bs.offcanvas",mr="keydown.dismiss.bs.offcanvas",vr={backdrop:!0,keyboard:!0,scroll:!1},_r={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class yr extends yn{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return vr}static get DefaultType(){return _r}static get NAME(){return rr}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(this._isShown)return;if(cn.trigger(this._element,hr,{relatedTarget:t}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||(new bs).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(ur);this._queueCallback(()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(ar),this._element.classList.remove(ur),cn.trigger(this._element,dr,{relatedTarget:t})},this._element,!0)}hide(){if(!this._isShown)return;if(cn.trigger(this._element,fr).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(lr),this._backdrop.hide();this._queueCallback(()=>{this._element.classList.remove(ar,lr),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new bs).reset(),cn.trigger(this._element,gr)},this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new xs({className:cr,isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():cn.trigger(this._element,pr)}:null})}_initializeFocusTrap(){return new Ns({trapElement:this._element})}_addEventListeners(){cn.on(this._element,mr,t=>{t.key===or&&(this._config.keyboard?this.hide():cn.trigger(this._element,pr))})}static jQueryInterface(t){return this.each(function(){const e=yr.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}cn.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',function(t){const e=Be(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Ne(this))return;cn.one(e,gr,()=>{Pe(this)&&this.focus()});const n=On.findOne(".offcanvas.show");n&&n!==e&&yr.getInstance(n).hide(),yr.getOrCreateInstance(e).toggle(this)}),cn.on(window,"load.bs.offcanvas.data-api",()=>{for(const t of On.find(".offcanvas.show"))yr.getOrCreateInstance(t).show()}),cn.on(window,"resize.bs.offcanvas",()=>{for(const t of On.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&yr.getOrCreateInstance(t).hide()}),bn(yr),qe(yr);const br=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),kr=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,wr=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Ar=(t,e)=>{const n=t.nodeName.toLowerCase();return e.includes(n)?!br.has(n)||Boolean(kr.test(t.nodeValue)||wr.test(t.nodeValue)):e.filter(t=>t instanceof RegExp).some(t=>t.test(n))},Er={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};const Cr="TemplateFactory",Tr={allowList:Er,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
    "},xr={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Fr={entry:"(string|element|function|null)",selector:"(string|element)"};class Sr extends vn{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Tr}static get DefaultType(){return xr}static get NAME(){return Cr}getContent(){return Object.values(this._config.content).map(t=>this._resolvePossibleFunction(t)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,n]of Object.entries(this._config.content))this._setContent(t,n,e);const e=t.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&e.classList.add(...n.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,n]of Object.entries(t))super._typeCheckConfig({selector:e,entry:n},Fr)}_setContent(t,e,n){const i=On.findOne(n,t);i&&((e=this._resolvePossibleFunction(e))?Le(e)?this._putElementInTemplate(Me(e),i):this._config.html?i.innerHTML=this._maybeSanitize(e):i.textContent=e:i.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);const i=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...i.body.querySelectorAll("*"));for(const t of s){const n=t.nodeName.toLowerCase();if(!Object.keys(e).includes(n)){t.remove();continue}const i=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[n]||[]);for(const e of i)Ar(e,s)||t.removeAttribute(e.nodeName)}return i.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return"function"==typeof t?t(this):t}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Or="tooltip",Dr=new Set(["sanitize","allowList","sanitizeFn"]),Br="fade",Ir="show",Lr=".tooltip-inner",Mr=".modal",Pr="hide.bs.modal",Nr="hover",Rr="focus",jr="click",Vr="manual",Hr="hide",zr="hidden",$r="show",qr="shown",Wr="inserted",Ur="click",Yr="focusin",Kr="focusout",Gr="mouseenter",Xr="mouseleave",Qr={AUTO:"auto",TOP:"top",RIGHT:$e()?"left":"right",BOTTOM:"bottom",LEFT:$e()?"right":"left"},Zr={allowList:Er,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,0],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Jr={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class to extends yn{constructor(t,e){if(void 0===xe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=!1,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners()}static get Default(){return Zr}static get DefaultType(){return Jr}static get NAME(){return Or}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled){if(t){const e=this._initializeOnDelegatedTarget(t);return e._activeTrigger.click=!e._activeTrigger.click,void(e._isWithActiveTrigger()?e._enter():e._leave())}this._isShown()?this._leave():this._enter()}}dispose(){clearTimeout(this._timeout),cn.off(this._element.closest(Mr),Pr,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=cn.trigger(this._element,this.constructor.eventName($r)),e=(Re(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this.tip&&(this.tip.remove(),this.tip=null);const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),cn.trigger(this._element,this.constructor.eventName(Wr))),this._popper?this._popper.update():this._popper=this._createPopper(n),n.classList.add(Ir),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))cn.on(t,"mouseover",je);this._queueCallback(()=>{const t=this._isHovered;this._isHovered=!1,cn.trigger(this._element,this.constructor.eventName(qr)),t&&this._leave()},this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(cn.trigger(this._element,this.constructor.eventName(Hr)).defaultPrevented)return;const t=this._getTipElement();if(t.classList.remove(Ir),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))cn.off(t,"mouseover",je);this._activeTrigger[jr]=!1,this._activeTrigger[Rr]=!1,this._activeTrigger[Nr]=!1,this._isHovered=!1;this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||t.remove(),this._element.removeAttribute("aria-describedby"),cn.trigger(this._element,this.constructor.eventName(zr)),this._disposePopper())},this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Br,Ir),e.classList.add(`bs-${this.constructor.NAME}-auto`);const n=Se(this.constructor.NAME).toString();return e.setAttribute("id",n),this._isAnimated()&&e.classList.add(Br),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Sr({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Lr]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._config.originalTitle}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Br)}_isShown(){return this.tip&&this.tip.classList.contains(Ir)}_createPopper(t){const e="function"==typeof this._config.placement?this._config.placement.call(this,t,this._element):this._config.placement,n=Qr[e.toUpperCase()];return Te(this._element,t,this._getPopperConfig(n))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)cn.on(this._element,this.constructor.eventName(Ur),this._config.selector,t=>this.toggle(t));else if(e!==Vr){const t=e===Nr?this.constructor.eventName(Gr):this.constructor.eventName(Yr),n=e===Nr?this.constructor.eventName(Xr):this.constructor.eventName(Kr);cn.on(this._element,t,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?Rr:Nr]=!0,e._enter()}),cn.on(this._element,n,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?Rr:Nr]=e._element.contains(t.relatedTarget),e._leave()})}this._hideModalHandler=(()=>{this._element&&this.hide()}),cn.on(this._element.closest(Mr),Pr,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._config.originalTitle;t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=mn.getDataAttributes(this._element);for(const t of Object.keys(e))Dr.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Me(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t.originalTitle=this._element.getAttribute("title")||"","number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each(function(){const e=to.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}qe(to);const eo="popover",no=".popover-header",io=".popover-body",so={...to.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ro={...to.DefaultType,content:"(null|string|element|function)"};class oo extends to{static get Default(){return so}static get DefaultType(){return ro}static get NAME(){return eo}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[no]:this._getTitle(),[io]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each(function(){const e=oo.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}qe(oo);const ao="scrollspy",uo="activate.bs.scrollspy",lo="click.bs.scrollspy",co="dropdown-item",ho="active",fo="[href]",po=".nav, .list-group",go=".nav-link, .nav-item > .nav-link, .list-group-item",mo=".dropdown",vo=".dropdown-toggle",_o={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null},yo={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element"};class bo extends yn{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return _o}static get DefaultType(){return yo}static get NAME(){return ao}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=Me(t.target)||document.body,t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(cn.off(this._config.target,lo),cn.on(this._config.target,lo,fo,t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const n=this._rootElement||window,i=e.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:i,behavior:"smooth"});n.scrollTop=i}}))}_getNewObserver(){const t={root:this._rootElement,threshold:[.1,.5,1],rootMargin:this._getRootMargin()};return new IntersectionObserver(t=>this._observerCallback(t),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),n=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},i=(this._rootElement||document.documentElement).scrollTop,s=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const r of t){if(!r.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(r));continue}const t=r.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(n(r),!i)return}else s||t||n(r)}}_getRootMargin(){return this._config.offset?`${this._config.offset}px 0px -30%`:this._config.rootMargin}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=On.find(fo,this._config.target);for(const e of t){if(!e.hash||Ne(e))continue;const t=On.findOne(e.hash,this._element);Pe(t)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(ho),this._activateParents(t),cn.trigger(this._element,uo,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains(co))On.findOne(vo,t.closest(mo)).classList.add(ho);else for(const e of On.parents(t,po))for(const t of On.prev(e,go))t.classList.add(ho)}_clearActiveClass(t){t.classList.remove(ho);const e=On.find(`${fo}.${ho}`,t);for(const t of e)t.classList.remove(ho)}static jQueryInterface(t){return this.each(function(){const e=bo.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}})}}cn.on(window,"load.bs.scrollspy.data-api",()=>{for(const t of On.find('[data-bs-spy="scroll"]'))bo.getOrCreateInstance(t)}),qe(bo);const ko="tab",wo="hide.bs.tab",Ao="hidden.bs.tab",Eo="show.bs.tab",Co="shown.bs.tab",To="keydown.bs.tab",xo="ArrowLeft",Fo="ArrowRight",So="ArrowUp",Oo="ArrowDown",Do="active",Bo="fade",Io="show",Lo="dropdown",Mo=".dropdown-toggle",Po=".dropdown-menu",No=".dropdown-item",Ro='.list-group, .nav, [role="tablist"]',jo=".nav-item, .list-group-item",Vo='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Ho=`.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${Vo}`,zo=`.${Do}[data-bs-toggle="tab"], .${Do}[data-bs-toggle="pill"], .${Do}[data-bs-toggle="list"]`;class $o extends yn{constructor(t){super(t),this._parent=this._element.closest(Ro),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),cn.on(this._element,To,t=>this._keydown(t)))}static get NAME(){return ko}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),n=e?cn.trigger(e,wo,{relatedTarget:t}):null;cn.trigger(t,Eo,{relatedTarget:e}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){if(!t)return;t.classList.add(Do),this._activate(Be(t));this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.focus(),t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),cn.trigger(t,Co,{relatedTarget:e})):t.classList.add(Io)},t,t.classList.contains(Bo))}_deactivate(t,e){if(!t)return;t.classList.remove(Do),t.blur(),this._deactivate(Be(t));this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),cn.trigger(t,Ao,{relatedTarget:e})):t.classList.remove(Io)},t,t.classList.contains(Bo))}_keydown(t){if(![xo,Fo,So,Oo].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[Fo,Oo].includes(t.key),n=Ye(this._getChildren().filter(t=>!Ne(t)),t.target,e,!0);n&&$o.getOrCreateInstance(n).show()}_getChildren(){return On.find(Ho,this._parent)}_getActiveElem(){return this._getChildren().find(t=>this._elemIsActive(t))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),n=this._getOuterElement(t);t.setAttribute("aria-selected",e),n!==t&&this._setAttributeIfNotExists(n,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=Be(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`#${t.id}`))}_toggleDropDown(t,e){const n=this._getOuterElement(t);if(!n.classList.contains(Lo))return;const i=(t,i)=>{const s=On.findOne(t,n);s&&s.classList.toggle(i,e)};i(Mo,Do),i(Po,Io),i(No,Do),n.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,n){t.hasAttribute(e)||t.setAttribute(e,n)}_elemIsActive(t){return t.classList.contains(Do)}_getInnerElement(t){return t.matches(Ho)?t:On.findOne(Ho,t)}_getOuterElement(t){return t.closest(jo)||t}static jQueryInterface(t){return this.each(function(){const e=$o.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}})}}cn.on(document,"click.bs.tab",Vo,function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),Ne(this)||$o.getOrCreateInstance(this).show()}),cn.on(window,"load.bs.tab",()=>{for(const t of On.find(zo))$o.getOrCreateInstance(t)}),qe($o);const qo="toast",Wo="mouseover.bs.toast",Uo="mouseout.bs.toast",Yo="focusin.bs.toast",Ko="focusout.bs.toast",Go="hide.bs.toast",Xo="hidden.bs.toast",Qo="show.bs.toast",Zo="shown.bs.toast",Jo="fade",ta="hide",ea="show",na="showing",ia={animation:"boolean",autohide:"boolean",delay:"number"},sa={animation:!0,autohide:!0,delay:5e3};class ra extends yn{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return sa}static get DefaultType(){return ia}static get NAME(){return qo}show(){if(cn.trigger(this._element,Qo).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(Jo);this._element.classList.remove(ta),Ve(this._element),this._element.classList.add(ea,na),this._queueCallback(()=>{this._element.classList.remove(na),cn.trigger(this._element,Zo),this._maybeScheduleHide()},this._element,this._config.animation)}hide(){if(!this.isShown())return;if(cn.trigger(this._element,Go).defaultPrevented)return;this._element.classList.add(na),this._queueCallback(()=>{this._element.classList.add(ta),this._element.classList.remove(na,ea),cn.trigger(this._element,Xo)},this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ea),super.dispose()}isShown(){return this._element.classList.contains(ea)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const n=t.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){cn.on(this._element,Wo,t=>this._onInteraction(t,!0)),cn.on(this._element,Uo,t=>this._onInteraction(t,!1)),cn.on(this._element,Yo,t=>this._onInteraction(t,!0)),cn.on(this._element,Ko,t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each(function(){const e=ra.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}})}}bn(ra),qe(ra);var oa=Object.freeze({__proto__:null,Alert:Tn,Button:Sn,Carousel:_i,Collapse:Pi,Dropdown:gs,Modal:sr,Offcanvas:yr,Popover:oo,ScrollSpy:bo,Tab:$o,Toast:ra,Tooltip:to});[].slice.call(document.querySelectorAll('[data-bs-toggle="dropdown"]')).map(function(t){return new gs(t)}),[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map(function(t){var e,n,i={delay:{show:50,hide:50},html:null!==(e="true"===t.getAttribute("data-bs-html"))&&void 0!==e&&e,placement:null!==(n=t.getAttribute("data-bs-placement"))&&void 0!==n?n:"auto"};return new to(t,i)}),[].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')).map(function(t){var e,n,i={delay:{show:50,hide:50},html:null!==(e="true"===t.getAttribute("data-bs-html"))&&void 0!==e&&e,placement:null!==(n=t.getAttribute("data-bs-placement"))&&void 0!==n?n:"auto"};return new oo(t,i)}),[].slice.call(document.querySelectorAll('[data-bs-toggle="switch-icon"]')).map(function(t){t.addEventListener("click",function(e){e.stopPropagation(),t.classList.toggle("active")})});var aa;(aa=window.location.hash)&&[].slice.call(document.querySelectorAll('[data-bs-toggle="tab"]')).filter(function(t){return t.hash===aa}).map(function(t){new $o(t).show()}),[].slice.call(document.querySelectorAll('[data-bs-toggle="toast"]')).map(function(t){return new ra(t)}),window.bootstrap=oa}); \ No newline at end of file diff --git a/demo/dist/libs/apexcharts/dist/apexcharts.amd.js b/demo/dist/libs/apexcharts/dist/apexcharts.amd.js new file mode 100644 index 000000000..bd2177e9d --- /dev/null +++ b/demo/dist/libs/apexcharts/dist/apexcharts.amd.js @@ -0,0 +1,2 @@ +/*! For license information please see apexcharts.amd.js.LICENSE.txt */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ApexCharts=e():t.ApexCharts=e()}(self,(function(){return(()=>{var t={922:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i=function(t,e){var i,a,s,r=t[1]||"",n=t[3];if(!n)return r;if(e&&"function"==typeof btoa){var o=(i=n,a=btoa(unescape(encodeURIComponent(JSON.stringify(i)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),"/*# ".concat(s," */")),l=n.sources.map((function(t){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(t," */")}));return[r].concat(l).concat([o]).join("\n")}return[r].join("\n")}(e,t);return e[2]?"@media ".concat(e[2]," {").concat(i,"}"):i})).join("")},e.i=function(t,i){"string"==typeof t&&(t=[[null,t,""]]);for(var a=0;an.maxX-i.width&&(o=(s=n.maxX-i.width)-this.startPoints.box.x),null!=n.minY&&rn.maxY-i.height&&(l=(r=n.maxY-i.height)-this.startPoints.box.y),null!=n.snapToGrid&&(s-=s%n.snapToGrid,r-=r%n.snapToGrid,o-=o%n.snapToGrid,l-=l%n.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:l},!0):this.el.move(s,r));return a},e.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(i,a){"function"!=typeof i&&"object"!=t(i)||(a=i,i=!0);var s=this.remember("_draggable")||new e(this);return(i=void 0===i||i)?s.init(a||{},i):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}).call(this)},872:function(){(function(){SVG.Filter=SVG.invent({create:"filter",inherit:SVG.Parent,extend:{source:"SourceGraphic",sourceAlpha:"SourceAlpha",background:"BackgroundImage",backgroundAlpha:"BackgroundAlpha",fill:"FillPaint",stroke:"StrokePaint",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr("in")&&this.autoSetIn&&t.attr("in",this.source),t.attr("result")||t.attr("result",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return"url(#"+this.attr("id")+")"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return"function"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr("filter",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr("filter",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr("in",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||"normal"})},colorMatrix:function(t,e){"matrix"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(" ").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr("flood-color",t),null!=e&&this.attr("flood-opacity",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr("href",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr("stdDeviation",r(Array.prototype.slice.call(arguments))):this.attr("stdDeviation","0 0")},morphology:function(t,e){this.attr({operator:t,radius:e})},tile:function(){},turbulence:function(t,e,i,a,s){this.attr({numOctaves:e,seed:i,stitchTiles:a,baseFrequency:t,type:s})}},i={merge:function(){var t;if(arguments[0]instanceof SVG.Set){var e=this;arguments[0].each((function(t){this instanceof SVG.MergeNode?e.put(this):(this instanceof SVG.Effect||this instanceof SVG.ParentEffect)&&e.put(new SVG.MergeNode(this))}))}else{t=Array.isArray(arguments[0])?arguments[0]:arguments;for(var i=0;i{!function(){"use strict";function t(t,s,r,n,o,l,c){for(var h=t.slice(s,r||c),d=n.slice(o,l||c),u=0,g={pos:[0,0],start:[0,0]},f={pos:[0,0],start:[0,0]};h[u]=e.call(g,h[u]),d[u]=e.call(f,d[u]),h[u][0]!=d[u][0]||"M"==h[u][0]||"A"==h[u][0]&&(h[u][4]!=d[u][4]||h[u][5]!=d[u][5])?(Array.prototype.splice.apply(h,[u,1].concat(a.call(g,h[u]))),Array.prototype.splice.apply(d,[u,1].concat(a.call(f,d[u])))):(h[u]=i.call(g,h[u]),d[u]=i.call(f,d[u])),++u!=h.length||u!=d.length;)u==h.length&&h.push(["C",g.pos[0],g.pos[1],g.pos[0],g.pos[1],g.pos[0],g.pos[1]]),u==d.length&&d.push(["C",f.pos[0],f.pos[1],f.pos[0],f.pos[1],f.pos[0],f.pos[1]]);return{start:h,dest:d}}function e(t){switch(t[0]){case"z":case"Z":t[0]="L",t[1]=this.start[0],t[2]=this.start[1];break;case"H":t[0]="L",t[2]=this.pos[1];break;case"V":t[0]="L",t[2]=t[1],t[1]=this.pos[0];break;case"T":t[0]="Q",t[3]=t[1],t[4]=t[2],t[1]=this.reflection[1],t[2]=this.reflection[0];break;case"S":t[0]="C",t[6]=t[4],t[5]=t[3],t[4]=t[2],t[3]=t[1],t[2]=this.reflection[1],t[1]=this.reflection[0]}return t}function i(t){var e=t.length;return this.pos=[t[e-2],t[e-1]],-1!="SCQT".indexOf(t[0])&&(this.reflection=[2*this.pos[0]-t[e-4],2*this.pos[1]-t[e-3]]),t}function a(t){var e=[t];switch(t[0]){case"M":return this.pos=this.start=[t[1],t[2]],e;case"L":t[5]=t[3]=t[1],t[6]=t[4]=t[2],t[1]=this.pos[0],t[2]=this.pos[1];break;case"Q":t[6]=t[4],t[5]=t[3],t[4]=1*t[4]/3+2*t[2]/3,t[3]=1*t[3]/3+2*t[1]/3,t[2]=1*this.pos[1]/3+2*t[2]/3,t[1]=1*this.pos[0]/3+2*t[1]/3;break;case"A":t=(e=function(t,e){var i,a,s,r,n,o,l,c,h,d,u,g,f,p,x,b,v,m,y,w,k,A,S,C,P,L,T=Math.abs(e[1]),O=Math.abs(e[2]),E=e[3]%360,M=e[4],I=e[5],z=e[6],X=e[7],Y=new SVG.Point(t),F=new SVG.Point(z,X),R=[];if(0===T||0===O||Y.x===F.x&&Y.y===F.y)return[["C",Y.x,Y.y,F.x,F.y,F.x,F.y]];for((a=(i=new SVG.Point((Y.x-F.x)/2,(Y.y-F.y)/2).transform((new SVG.Matrix).rotate(E))).x*i.x/(T*T)+i.y*i.y/(O*O))>1&&(T*=a=Math.sqrt(a),O*=a),s=(new SVG.Matrix).rotate(E).scale(1/T,1/O).rotate(-E),Y=Y.transform(s),o=(r=[(F=F.transform(s)).x-Y.x,F.y-Y.y])[0]*r[0]+r[1]*r[1],n=Math.sqrt(o),r[0]/=n,r[1]/=n,l=o<4?Math.sqrt(1-o/4):0,M===I&&(l*=-1),c=new SVG.Point((F.x+Y.x)/2+l*-r[1],(F.y+Y.y)/2+l*r[0]),h=new SVG.Point(Y.x-c.x,Y.y-c.y),d=new SVG.Point(F.x-c.x,F.y-c.y),u=Math.acos(h.x/Math.sqrt(h.x*h.x+h.y*h.y)),h.y<0&&(u*=-1),g=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(g*=-1),I&&u>g&&(g+=2*Math.PI),!I&&u{!function(){"use strict";(function(){function t(t){t.remember("_resizeHandler",this),this.el=t,this.parameters={},this.lastUpdateCall=null,this.p=t.doc().node.createSVGPoint()}t.prototype.transformPoint=function(t,e,i){return this.p.x=t-(this.offset.x-window.pageXOffset),this.p.y=e-(this.offset.y-window.pageYOffset),this.p.matrixTransform(i||this.m)},t.prototype._extractPosition=function(t){return{x:null!=t.clientX?t.clientX:t.touches[0].clientX,y:null!=t.clientY?t.clientY:t.touches[0].clientY}},t.prototype.init=function(t){var e=this;if(this.stop(),"stop"!==t){for(var i in this.options={},this.el.resize.defaults)this.options[i]=this.el.resize.defaults[i],void 0!==t[i]&&(this.options[i]=t[i]);this.el.on("lt.resize",(function(t){e.resize(t||window.event)})),this.el.on("rt.resize",(function(t){e.resize(t||window.event)})),this.el.on("rb.resize",(function(t){e.resize(t||window.event)})),this.el.on("lb.resize",(function(t){e.resize(t||window.event)})),this.el.on("t.resize",(function(t){e.resize(t||window.event)})),this.el.on("r.resize",(function(t){e.resize(t||window.event)})),this.el.on("b.resize",(function(t){e.resize(t||window.event)})),this.el.on("l.resize",(function(t){e.resize(t||window.event)})),this.el.on("rot.resize",(function(t){e.resize(t||window.event)})),this.el.on("point.resize",(function(t){e.resize(t||window.event)})),this.update()}},t.prototype.stop=function(){return this.el.off("lt.resize"),this.el.off("rt.resize"),this.el.off("rb.resize"),this.el.off("lb.resize"),this.el.off("t.resize"),this.el.off("r.resize"),this.el.off("b.resize"),this.el.off("l.resize"),this.el.off("rot.resize"),this.el.off("point.resize"),this},t.prototype.resize=function(t){var e=this;this.m=this.el.node.getScreenCTM().inverse(),this.offset={x:window.pageXOffset,y:window.pageYOffset};var i=this._extractPosition(t.detail.event);if(this.parameters={type:this.el.type,p:this.transformPoint(i.x,i.y),x:t.detail.x,y:t.detail.y,box:this.el.bbox(),rotation:this.el.transform().rotation},"text"===this.el.type&&(this.parameters.fontSize=this.el.attr()["font-size"]),void 0!==t.detail.i){var a=this.el.array().valueOf();this.parameters.i=t.detail.i,this.parameters.pointCoords=[a[t.detail.i][0],a[t.detail.i][1]]}switch(t.type){case"lt":this.calc=function(t,e){var i=this.snapToGrid(t,e);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),n=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(n-n%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"touchend.resize",(function(){e.done()})),SVG.on(window,"mousemove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"mouseup.resize",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])n.maxX&&(t=n.maxX-s),void 0!==n.minY&&r+en.maxY&&(e=n.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],n=s/r;return na&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}()},769:()=>{function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}!function(){"use strict";function e(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,e,i){var a="string"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,"t"===t||"b"===t),y:this.pointCoord(i[1],e,"r"===t||"l"===t)}}}e.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=["points","pointsExclude"];for(var s in r){var n=this.options[r[s]];"string"==typeof n?n=n.length>0?n.split(/\s*,\s*/i):[]:"boolean"==typeof n&&"points"===r[s]&&(n=n?a:[]),this.options[r[s]]=n}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},e.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},e.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},e.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i{"use strict";function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function s(t,e){for(var i=0;iSa});const r=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,i,r;return e=t,r=[{key:"bind",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:"isObject",value:function(t){return t&&"object"===a(t)&&!Array.isArray(t)&&null!=t}},{key:"is",value:function(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"}},{key:"listToArray",value:function(t){var e,i=[];for(e=0;ee.length?t:e}))),t.length>e.length?t:e}),0)}},{key:"hexToRgba",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"#999999",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;"#"!==t.substring(0,1)&&(t="#999999");var i=t.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"x",i=t.toString().slice();return i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi,e)}},{key:"negToZero",value:function(t){return t<0?0:t}},{key:"moveIndexInArray",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:"extractNumber",value:function(t){return parseFloat(t.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:"setELstyles",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:"isNumber",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:"isFloat",value:function(t){return Number(t)===t&&t%1!=0}},{key:"isSafari",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isIE11",value:function(){if(-1!==window.navigator.userAgent.indexOf("MSIE")||window.navigator.appVersion.indexOf("Trident/")>-1)return!0}},{key:"isIE",value:function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var a=t.indexOf("Edge/");return a>0&&parseInt(t.substring(a+5,t.indexOf(".",a)),10)}}],(i=[{key:"shadeRGBColor",value:function(t,e){var i=e.split(","),a=t<0?0:255,s=t<0?-1*t:t,r=parseInt(i[0].slice(4),10),n=parseInt(i[1],10),o=parseInt(i[2],10);return"rgb("+(Math.round((a-r)*s)+r)+","+(Math.round((a-n)*s)+n)+","+(Math.round((a-o)*s)+o)+")"}},{key:"shadeHexColor",value:function(t,e){var i=parseInt(e.slice(1),16),a=t<0?0:255,s=t<0?-1*t:t,r=i>>16,n=i>>8&255,o=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-n)*s)+n)+(Math.round((a-o)*s)+o)).toString(16).slice(1)}},{key:"shadeColor",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}])&&s(e.prototype,i),r&&s(e,r),t}();function n(t,e){for(var i=0;i"}this.w.globals.easing=t}}},{key:"animateLine",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:"animateMarker",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:"animateCircle",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:"animateRect",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:"animatePathsGradually",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,n=t.pathTo,o=t.speed,l=t.delay,c=this.w,h=0;c.config.chart.animations.animateGradually.enabled&&(h=c.config.chart.animations.animateGradually.delay),c.config.chart.animations.dynamicAnimation.enabled&&c.globals.dataChanged&&"bar"!==c.config.chart.type&&(h=0),this.morphSVG(e,i,a,"line"!==c.config.chart.type||c.globals.comboCharts?s:"stroke",r,n,o,l*h)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach((function(t){t.el.classList.remove("apexcharts-element-hidden")}))}},{key:"animationCompleted",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:"morphSVG",value:function(t,e,i,a,s,n,o,l){var c=this,h=this.w;s||(s=t.attr("pathFrom")),n||(n=t.attr("pathTo"));var d=function(t){return"radar"===h.config.chart.type&&(o=1),"M 0 ".concat(h.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=d()),(!n||n.indexOf("undefined")>-1||n.indexOf("NaN")>-1)&&(n=d()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,l).plot(s).animate(o,h.globals.easing,l).plot(n).afterAll((function(){r.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&c.animationCompleted(t):"none"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&c.animationCompleted(t),c.showDelayedElements()}))}}])&&n(e.prototype,i),t}();function l(t,e){for(var i=0;i3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(t,e);break;case"lighten":this.addLightenFilter(t,e,{intensity:a});break;case"darken":this.addDarkenFilter(t,e,{intensity:a})}}},{key:"addShadow",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,n=i.color,o=i.opacity,l=t.flood(Array.isArray(n)?n[e]:n,o).composite(t.sourceAlpha,"in").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:"dropShadow",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,n=e.blur,o=e.color,l=e.opacity,c=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),r.isIE()&&"radialBar"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e;e=r.isSafari()||r.isFirefox()||r.isIE()?t.flood(o,l).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(n):t.flood(o,l).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(n).merge(t.source),t.blend(t.source,e)})),c||t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)),t}},{key:"setSelectionFilter",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute("selected",!0);var s=a.config.states.active.filter;"none"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:"_scaleFilterSize",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}])&&l(e.prototype,i),t}();function h(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function d(t){for(var e=1;e4&&void 0!==arguments[4]?arguments[4]:"#a8a8a8",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"butt",l=this.w,c=l.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":n,"stroke-linecap":o});return c}},{key:"drawRect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"#fefefe",n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,c=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,h=this.w,d=h.globals.dom.Paper.rect();return d.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:n,"stroke-width":null!==o?o:0,stroke:null!==l?l:"none","stroke-dasharray":c}),d.node.setAttribute("fill",r),d}},{key:"drawPolygon",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#e1e1e1",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",s=this.w,r=s.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,"stroke-width":i});return r}},{key:"drawCircle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;t<0&&(t=0);var a=i.globals.dom.Paper.circle(2*t);return null!==e&&a.attr(e),a}},{key:"drawPath",value:function(t){var e=t.d,i=void 0===e?"":e,a=t.stroke,s=void 0===a?"#a8a8a8":a,r=t.strokeWidth,n=void 0===r?1:r,o=t.fill,l=t.fillOpacity,c=void 0===l?1:l,h=t.strokeOpacity,d=void 0===h?1:h,u=t.classes,g=t.strokeLinecap,f=void 0===g?null:g,p=t.strokeDashArray,x=void 0===p?0:p,b=this.w;return null===f&&(f=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:o,"fill-opacity":c,stroke:s,"stroke-opacity":d,"stroke-linecap":f,"stroke-width":n,"stroke-dasharray":x,class:u})}},{key:"group",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=e.globals.dom.Paper.group();return null!==t&&i.attr(t),i}},{key:"move",value:function(t,e){return["M",t,e].join(" ")}},{key:"line",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=["L",t,e].join(" "):"H"===i?a=["H",t].join(" "):"V"===i&&(a=["V",e].join(" ")),a}},{key:"curve",value:function(t,e,i,a,s,r){return["C",t,e,i,a,s,r].join(" ")}},{key:"quadraticCurve",value:function(t,e,i,a){return["Q",t,e,i,a].join(" ")}},{key:"arc",value:function(t,e,i,a,s,r,n){var o=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l="A";o&&(l="a");var c=[l,t,e,i,a,s,r,n].join(" ");return c}},{key:"renderPaths",value:function(t){var e,i=t.j,a=t.realIndex,s=t.pathFrom,r=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,u=t.fill,g=t.animationDelay,f=t.initialSpeed,p=t.dataChangeSpeed,x=t.className,b=t.shouldClipToGrid,v=void 0===b||b,m=t.bindEventsOnPaths,y=void 0===m||m,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new c(this.ctx),C=new o(this.ctx),P=this.w.config.chart.animations.enabled,L=P&&this.w.config.chart.animations.dynamicAnimation.enabled,T=!!(P&&!A.globals.resized||L&&A.globals.dataChanged&&A.globals.shouldAnimate);T?e=s:(e=r,A.globals.animationEnded=!0);var O,E=A.config.stroke.dashArray;O=Array.isArray(E)?E[a]:A.config.stroke.dashArray;var M=this.drawPath({d:e,stroke:n,strokeWidth:l,fill:u,fillOpacity:1,classes:x,strokeLinecap:h,strokeDashArray:O});if(M.attr("index",a),v&&M.attr({"clip-path":"url(#gridRectMask".concat(A.globals.cuid,")")}),"none"!==A.config.states.normal.filter.type)S.getDefaultFilter(M,a);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(a))){var I=A.config.chart.dropShadow;S.dropShadow(M,I,a)}y&&(M.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,M)),M.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,M)),M.node.addEventListener("mousedown",this.pathMouseDown.bind(this,M))),M.attr({pathTo:r,pathFrom:s});var z={el:M,j:i,realIndex:a,pathFrom:s,pathTo:r,fill:u,strokeWidth:l,delay:g};return!P||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(d(d({},z),{},{speed:f})),A.globals.dataChanged&&L&&T&&C.animatePathsGradually(d(d({},z),{},{speed:p})),M}},{key:"drawPattern",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#a8a8a8",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=this.w,n=r.globals.dom.Paper.pattern(e,i,(function(r){"horizontalLines"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):"verticalLines"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):"slantedLines"===t?r.line(0,0,e,i).stroke({color:a,width:s}):"squares"===t?r.rect(e,i).fill("none").stroke({color:a,width:s}):"circles"===t&&r.circle(e).fill("none").stroke({color:a,width:s})}));return n}},{key:"drawGradient",value:function(t,e,i,a,s){var n,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,c=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,d=this.w;e.length<9&&0===e.indexOf("#")&&(e=r.hexToRgba(e,a)),i.length<9&&0===i.indexOf("#")&&(i=r.hexToRgba(i,s));var u=0,g=1,f=1,p=null;null!==l&&(u=void 0!==l[0]?l[0]/100:0,g=void 0!==l[1]?l[1]/100:1,f=void 0!==l[2]?l[2]/100:1,p=void 0!==l[3]?l[3]/100:null);var x=!("donut"!==d.config.chart.type&&"pie"!==d.config.chart.type&&"polarArea"!==d.config.chart.type&&"bubble"!==d.config.chart.type);if(n=null===c||0===c.length?d.globals.dom.Paper.gradient(x?"radial":"linear",(function(t){t.at(u,e,a),t.at(g,i,s),t.at(f,i,s),null!==p&&t.at(p,e,a)})):d.globals.dom.Paper.gradient(x?"radial":"linear",(function(t){(Array.isArray(c[h])?c[h]:c).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),x){var b=d.globals.gridWidth/2,v=d.globals.gridHeight/2;"bubble"!==d.config.chart.type?n.attr({gradientUnits:"userSpaceOnUse",cx:b,cy:v,r:o}):n.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?n.from(0,0).to(0,1):"diagonal"===t?n.from(0,0).to(1,1):"horizontal"===t?n.from(0,1).to(1,1):"diagonal2"===t&&n.from(1,0).to(0,1);return n}},{key:"getTextBasedOnMaxWidth",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),n=r.width/e.length,o=Math.floor(i/n);return i-1){var o=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(o,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(".apexcharts-series path").members,h=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members,d=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)}))};d(l),d(h)}t.node.setAttribute("selected","true"),n="true",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if("true"===n){var u=i.config.states.active.filter;if("none"!==u)a.applyFilter(t,s,u.type,u.value);else if("none"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else"none"!==i.config.states.active.filter.type&&("none"===i.config.states.hover.filter.type||i.globals.isTouchDevice?a.getDefaultFilter(t,s):(g=i.config.states.hover.filter,a.applyFilter(t,s,g.type,g.value)));"function"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent("dataPointSelection",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(t){var e={};return t&&"function"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:"getTextRects",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,n=this.drawText({x:-200,y:-200,text:t,textAnchor:"start",fontSize:e,fontFamily:i,foreColor:"#fff",opacity:0});a&&n.attr("transform",a),r.globals.dom.Paper.add(n);var o=n.bbox();return s||(o=n.node.getBoundingClientRect()),n.remove(),{width:o.width,height:o.height}}},{key:"placeTextWithEllipsis",value:function(t,e,i){if("function"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+"...");t.textContent="."}}}])&&g(e.prototype,i),a&&g(e,a),t}();function p(t,e){for(var i=0;i0&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:"extendArrayProps",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}],(i=[{key:"getStackedSeriesTotals",value:function(){var t=this.w,e=[];if(0===t.globals.series.length)return e;for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:"isSeriesNull",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:"seriesHaveSameValues",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:"getCategoryLabels",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:"getLargestSeries",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:"getLargestMarkerSize",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:"getSeriesTotals",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][n]1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if("vertical"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4),"top"===t.label.position?s.setAttribute("y",parseFloat(s.getAttribute("y"))+r.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-r.width);var n=this.annoCtx.graphics.rotateAroundCenter(s),o=n.x,l=n.y;s.setAttribute("transform","rotate(-90 ".concat(o," ").concat(l,")"))}}}},{key:"addBackgroundToAnno",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,n=e.label.style.padding.right,o=e.label.style.padding.top,l=e.label.style.padding.bottom;"vertical"===e.label.orientation&&(o=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,n=e.label.style.padding.bottom);var c=s.left-a.left-r,h=s.top-a.top-o,d=this.annoCtx.graphics.drawRect(c-i.globals.barPadForNumericAxis,h,s.width+r+n,s.height+o+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:"annotationsBackground",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(a,"']"));if(r){var n=r.parentNode,o=t.addBackgroundToAnno(r,i);o&&(n.insertBefore(o.node,r),i.label.mouseEnter&&o.node.addEventListener("mouseenter",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&o.node.addEventListener("mouseleave",i.label.mouseLeave.bind(t,i)),i.label.click&&o.node.addEventListener("click",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,"xaxis")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,"yaxis")})),e.config.annotations.points.map((function(t,e){i(t,e,"point")}))}},{key:"getY1Y2",value:function(t,e){var i,a="y1"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var n=s.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child("+(r+1)+")");n&&(i=parseFloat(n.getAttribute("y")))}else{var o;o=s.config.yaxis[e.yAxisIndex].logarithmic?(a=new x(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex]:(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight),i=s.globals.gridHeight-o,!e.marker||void 0!==e.y&&null!==e.y||(i=0),s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=o)}return i}},{key:"getX1X2",value:function(t,e){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,n=(e.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(n=(s-e.x)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(e.x));var o=(e.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(o=(s-e.x2)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(e.x2)),void 0!==e.x&&null!==e.x||!e.marker||(n=i.globals.gridWidth),"x1"===t?n:o}},{key:"getStringX",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}}])&&b(e.prototype,i),t}();function m(t,e){for(var i=0;in){var c=n;n=a,a=c}var h=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),n-a,0,t.fillColor,t.opacity,1,t.borderColor,r);h.node.classList.add("apexcharts-annotation-rect"),h.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),e.appendChild(h.node),t.id&&h.node.classList.add(t.id)}var d="right"===t.label.position?s.globals.gridWidth:0,u=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(null!=a?a:n)+t.label.offsetY-3,text:o,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});u.attr({rel:i}),e.appendChild(u.node)}},{key:"_getYAxisAnnotationWidth",value:function(t){var e=this.w;return e.globals.gridWidth,(t.width.indexOf("%")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:"drawYAxisAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}])&&w(e.prototype,i),t}();function A(t,e){for(var i=0;i1&&n[o].classList.add("apexcharts-element-hidden"),t.globals.delayedElements.push({el:n[o],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:"drawTextAnnos",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:"addXaxisAnnotation",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:"addYaxisAnnotation",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:"addPointAnnotation",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:"addText",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,n=t.foreColor,o=t.fontSize,l=t.fontFamily,c=t.fontWeight,h=t.cssClass,d=t.backgroundColor,u=t.borderWidth,g=t.strokeDashArray,f=t.borderRadius,p=t.borderColor,x=t.appendTo,b=void 0===x?".apexcharts-annotations":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,P=this.w,L=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:o||"12px",fontWeight:c||"regular",fontFamily:l||P.config.chart.fontFamily,foreColor:n||P.config.chart.foreColor,cssClass:h}),T=P.globals.dom.baseEl.querySelector(b);T&&T.appendChild(L.node);var O=L.bbox();if(s){var E=this.graphics.drawRect(O.x-m,O.y-C,O.width+m+w,O.height+A+C,f,d||"transparent",1,u,p,g);T.insertBefore(E.node,L.node)}}},{key:"addImage",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,n=t.y,o=void 0===n?0:n,l=t.width,c=void 0===l?20:l,h=t.height,d=void 0===h?20:h,u=t.appendTo,g=void 0===u?".apexcharts-annotations":u,f=i.globals.dom.Paper.image(a);f.size(c,d).move(r,o);var p=i.globals.dom.baseEl.querySelector(g);return p&&p.appendChild(f.node),f}},{key:"addXaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,n=t.contextMethod,o=a,l=o.w,c=l.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),h=c.childNodes.length+1,d=new L,u=Object.assign({},"xaxis"===s?d.xAxisAnnotation:"yaxis"===s?d.yAxisAnnotation:d.pointAnnotation),g=r.extend(u,e);switch(s){case"xaxis":this.addXaxisAnnotation(g,c,h);break;case"yaxis":this.addYaxisAnnotation(g,c,h);break;case"point":this.addPointAnnotation(g,c,h)}var f=l.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(h,"']")),p=this.helpers.addBackgroundToAnno(f,g);return p&&c.insertBefore(p.node,f),i&&l.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:r.randomId(),method:n,label:"addAnnotation",params:e}),a}},{key:"clearAnnotations",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");e.globals.memory.methodsToExec.map((function(t,i){"addText"!==t.label&&"addAnnotation"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=r.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:"removeAnnotation",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}])&&T(e.prototype,i),t}();function E(t,e){for(var i=0;is?a:s,n=t.image,o=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(o=i.fill.image.width+1,l=i.fill.image.height):(o=r+1,l=r):(o=t.width,l=t.height);var c=document.createElementNS(e.globals.SVGNS,"pattern");f.setAttrs(c,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:o+"px",height:l+"px"});var h=document.createElementNS(e.globals.SVGNS,"image");c.appendChild(h),h.setAttributeNS(window.SVG.xlink,"href",n),f.setAttrs(h,{x:0,y:0,preserveAspectRatio:"none",width:o+"px",height:l+"px"}),h.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(c)}},{key:"getSeriesIndex",value:function(t){var e=this.w;return("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||"heatmap"===e.config.chart.type||"treemap"===e.config.chart.type?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(t){var e=this.w;this.opts=t;var i,a,s,n=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),"function"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var l=this.getFillType(this.seriesIndex),c=Array.isArray(n.fill.opacity)?n.fill.opacity[this.seriesIndex]:n.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf("rgb")?o.length<9&&(h=r.hexToRgba(o,c)):o.indexOf("rgba")>-1&&(c=r.getOpacityFromRGBA(o)),t.opacity&&(c=t.opacity),"pattern"===l&&(a=this.handlePatternFill(a,o,c,h)),"gradient"===l&&(s=this.handleGradientFill(o,c,this.seriesIndex)),"image"===l){var d=n.fill.image.src,u=t.patternID?t.patternID:"";this.clippedImgArea({opacity:c,image:Array.isArray(d)?t.seriesNumber-1&&(d=r.getOpacityFromRGBA(h));var u=void 0===s.fill.gradient.opacityTo?e:Array.isArray(s.fill.gradient.opacityTo)?s.fill.gradient.opacityTo[i]:s.fill.gradient.opacityTo;if(void 0===s.fill.gradient.gradientToColors||0===s.fill.gradient.gradientToColors.length)a="dark"===s.fill.gradient.shade?l.shadeColor(-1*parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?r.rgb2hex(t):t):l.shadeColor(parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?r.rgb2hex(t):t);else if(s.fill.gradient.gradientToColors[n.seriesNumber]){var g=s.fill.gradient.gradientToColors[n.seriesNumber];a=g,g.indexOf("rgba")>-1&&(u=r.getOpacityFromRGBA(g))}else a=t;if(s.fill.gradient.inverseColors){var p=h;h=a,a=p}return h.indexOf("rgb")>-1&&(h=r.rgb2hex(h)),a.indexOf("rgb")>-1&&(a=r.rgb2hex(a)),o.drawGradient(c,h,a,d,u,n.size,s.fill.gradient.stops,s.fill.gradient.colorStops,i)}}])&&E(e.prototype,i),t}();function I(t,e){for(var i=0;i0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,l=e,h=t,d=null,u=new f(this.ctx),g=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||n||g)&&(d=u.group({class:n||g?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(o.globals.cuid,")")),Array.isArray(h.x))for(var p=0;p0:o.config.markers.size>0;if(v||n||g){r.isNumber(h.y[p])?b+=" w".concat(r.randomId()):b="apexcharts-nullpoint";var m=this.getMarkerConfig({cssClass:b,seriesIndex:e,dataPointIndex:x});o.config.series[l].data[x]&&(o.config.series[l].data[x].fillColor&&(m.pointFillColor=o.config.series[l].data[x].fillColor),o.config.series[l].data[x].strokeColor&&(m.pointStrokeColor=o.config.series[l].data[x].strokeColor)),a&&(m.pSize=a),(s=u.drawMarker(h.x[p],h.y[p],m)).attr("rel",x),s.attr("j",x),s.attr("index",e),s.node.setAttribute("default-marker-size",m.pSize);var y=new c(this.ctx);y.setSelectionFilter(s,e,x),this.addEvents(s),d&&d.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([h.x[p],h.y[p]])}return d}},{key:"getMarkerConfig",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.finishRadius,n=void 0===r?null:r,o=this.w,l=this.getMarkerStyle(i),c=o.globals.markers.size[i],h=o.config.markers;return null!==s&&h.discrete.length&&h.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(l.pointStrokeColor=t.strokeColor,l.pointFillColor=t.fillColor,c=t.size,l.pointShape=t.shape)})),{pSize:null===n?c:n,pRadius:h.radius,width:Array.isArray(h.width)?h.width[i]:h.width,height:Array.isArray(h.height)?h.height[i]:h.height,pointStrokeWidth:Array.isArray(h.strokeWidth)?h.strokeWidth[i]:h.strokeWidth,pointStrokeColor:l.pointStrokeColor,pointFillColor:l.pointFillColor,shape:l.pointShape||(Array.isArray(h.shape)?h.shape[i]:h.shape),class:e,pointStrokeOpacity:Array.isArray(h.strokeOpacity)?h.strokeOpacity[i]:h.strokeOpacity,pointStrokeDashArray:Array.isArray(h.strokeDashArray)?h.strokeDashArray[i]:h.strokeDashArray,pointFillOpacity:Array.isArray(h.fillOpacity)?h.fillOpacity[i]:h.fillOpacity,seriesIndex:i}}},{key:"addEvents",value:function(t){var e=this.w,i=new f(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener("click",e.config.markers.onClick),t.node.addEventListener("dblclick",e.config.markers.onDblClick),t.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:"getMarkerStyle",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}])&&I(e.prototype,i),t}();function X(t,e){for(var i=0;ix.maxBubbleRadius&&(p=x.maxBubbleRadius)}a.config.chart.animations.enabled||(g=p);var b=n.x[h],v=n.y[h];if(g=g||0,null!==v&&void 0!==a.globals.series[r][d]||(u=!1),u){var m=this.drawPoint(b,v,g,p,r,d,e);c.add(m)}l.add(c)}}},{key:"drawPoint",value:function(t,e,i,a,s,r,n){var l=this.w,h=s,d=new o(this.ctx),u=new c(this.ctx),g=new M(this.ctx),p=new z(this.ctx),x=new f(this.ctx),b=p.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:h,dataPointIndex:r,finishRadius:"bubble"===l.config.chart.type||l.globals.comboCharts&&l.config.series[s]&&"bubble"===l.config.series[s].type?a:null});a=b.pSize;var v,m=g.fillPath({seriesNumber:s,dataPointIndex:r,color:b.pointFillColor,patternUnits:"objectBoundingBox",value:l.globals.series[s][n]});if("circle"===b.shape?v=x.drawCircle(i):"square"!==b.shape&&"rect"!==b.shape||(v=x.drawRect(0,0,b.width-b.pointStrokeWidth/2,b.height-b.pointStrokeWidth/2,b.pRadius)),l.config.series[h].data[r]&&l.config.series[h].data[r].fillColor&&(m=l.config.series[h].data[r].fillColor),v.attr({x:t-b.width/2-b.pointStrokeWidth/2,y:e-b.height/2-b.pointStrokeWidth/2,cx:t,cy:e,fill:m,"fill-opacity":b.pointFillOpacity,stroke:b.pointStrokeColor,r:a,"stroke-width":b.pointStrokeWidth,"stroke-dasharray":b.pointStrokeDashArray,"stroke-opacity":b.pointStrokeOpacity}),l.config.chart.dropShadow.enabled){var y=l.config.chart.dropShadow;u.dropShadow(v,y,s)}if(!this.initialAnim||l.globals.dataChanged||l.globals.resized)l.globals.animationEnded=!0;else{var w=l.config.chart.animations.speed;d.animateMarker(v,0,"circle"===b.shape?a:{width:b.width,height:b.height},w,l.globals.easing,(function(){window.setTimeout((function(){d.animationCompleted(v)}),100)}))}if(l.globals.dataChanged&&"circle"===b.shape)if(this.dynamicAnim){var k,A,S,C,P=l.config.chart.animations.dynamicAnimation.speed;null!=(C=l.globals.previousPaths[s]&&l.globals.previousPaths[s][n])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var L=0;Lo.globals.gridHeight+d&&(e=o.globals.gridHeight+d/2),void 0===o.globals.dataLabelsRects[a]&&(o.globals.dataLabelsRects[a]=[]),o.globals.dataLabelsRects[a].push({x:t,y:e,width:h,height:d});var u=o.globals.dataLabelsRects[a].length-2,g=void 0!==o.globals.lastDrawnDataLabelsIndexes[a]?o.globals.lastDrawnDataLabelsIndexes[a][o.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==o.globals.dataLabelsRects[a][u]){var p=o.globals.dataLabelsRects[a][g];(t>p.x+p.width+2||e>p.y+p.height+2||t+h4&&void 0!==arguments[4]?arguments[4]:2,r=this.w,n=new f(this.ctx),o=r.config.dataLabels,l=0,c=0,h=i,d=null;if(!o.enabled||!Array.isArray(t.x))return d;d=n.group({class:"apexcharts-data-labels"});for(var u=0;ue.globals.gridWidth+b.textRects.width+10)&&(o="");var v=e.globals.dataLabels.style.colors[r];(("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(v=e.globals.dataLabels.style.colors[n]),"function"==typeof v&&(v=v({series:e.globals.series,seriesIndex:r,dataPointIndex:n,w:e})),g&&(v=g);var m=u.offsetX,y=u.offsetY;if("bar"!==e.config.chart.type&&"rangeBar"!==e.config.chart.type||(m=0,y=0),b.drawnextLabel){var w=i.drawText({width:100,height:parseInt(u.style.fontSize,10),x:a+m,y:s+y,foreColor:v,textAnchor:l||u.textAnchor,text:o,fontSize:h||u.style.fontSize,fontFamily:u.style.fontFamily,fontWeight:u.style.fontWeight||"normal"});if(w.attr({class:"apexcharts-datalabel",cx:a,cy:s}),u.dropShadow.enabled){var k=u.dropShadow;new c(this.ctx).dropShadow(w,k)}d.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(n)}}}},{key:"addBackgroundToDataLabel",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,n=e.width,o=e.height,l=new f(this.ctx).drawRect(e.x-s,e.y-r/2,n+2*s,o+r,a.borderRadius,"transparent"===i.config.chart.background?"#fff":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);return a.dropShadow.enabled&&new c(this.ctx).dropShadow(l,a.dropShadow),l}},{key:"dataLabelsBackground",value:function(){var t=this.w;if("bubble"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;ii.globals.gridHeight&&(h=i.globals.gridHeight-u)),{bcx:n,bcy:r,dataLabelsX:e,dataLabelsY:h}}},{key:"calculateBarsDataLabelsPosition",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.bcy,n=t.barHeight,o=t.barWidth,l=t.textRects,c=t.dataLabelsX,h=t.strokeWidth,d=t.barDataLabelsConfig,u=t.offX,g=t.offY,f=e.globals.gridHeight/e.globals.dataPoints;o=Math.abs(o);var p=r-(this.barCtx.isRangeBar?0:f)+n/2+l.height/2+g-3,x=this.barCtx.series[a][s]<0,b=i;switch(this.barCtx.isReversed&&(b=i+o-(x?2*o:0),i=e.globals.gridWidth-o),d.position){case"center":c=x?b+o/2-u:Math.max(l.width/2,b-o/2)+u;break;case"bottom":c=x?b+o-h-Math.round(l.width/2)-u:b-o+h+Math.round(l.width/2)+u;break;case"top":c=x?b-h+Math.round(l.width/2)-u:b-h-Math.round(l.width/2)+u}return e.config.chart.stacked||(c<0?c=c+l.width+h:c+l.width/2>e.globals.gridWidth&&(c=e.globals.gridWidth-l.width-h)),{bcx:i,bcy:r,dataLabelsX:c,dataLabelsY:p}}},{key:"drawCalculatedDataLabels",value:function(t){var e=t.x,i=t.y,a=t.val,s=t.i,r=t.j,n=t.textRects,o=t.barHeight,l=t.barWidth,c=t.dataLabelsConfig,h=this.w,d="rotate(0)";"vertical"===h.config.plotOptions.bar.dataLabels.orientation&&(d="rotate(-90, ".concat(e,", ").concat(i,")"));var u=new R(this.barCtx.ctx),g=new f(this.barCtx.ctx),p=c.formatter,x=null,b=h.globals.collapsedSeriesIndices.indexOf(s)>-1;if(c.enabled&&!b){x=g.group({class:"apexcharts-data-labels",transform:d});var v="";void 0!==a&&(v=p(a,{seriesIndex:s,dataPointIndex:r,w:h}));var m=h.globals.series[s][r]<0,y=h.config.plotOptions.bar.dataLabels.position;"vertical"===h.config.plotOptions.bar.dataLabels.orientation&&("top"===y&&(c.textAnchor=m?"end":"start"),"center"===y&&(c.textAnchor="middle"),"bottom"===y&&(c.textAnchor=m?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels&&lMath.abs(l)&&(v=""):n.height/1.6>Math.abs(o)&&(v=""));var w=function(t){for(var e=1;e0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=r.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:"toggleSeriesOnHover",value:function(t,e){var i=this.w;e||(e=t.target);var a=i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels");if("mousemove"===t.type){var s=parseInt(e.getAttribute("rel"),10)-1,r=null,n=null;i.globals.axisCharts||"radialBar"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s,"']")),n=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s,"']"))):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"']")):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"'] path"));for(var o=0;o=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[n])}else"mouseout"===t.type&&r("remove")}},{key:"getActiveConfigSeriesIndex",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"asc",i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(e,a){var s=!1;return t&&(s="bar"===i.config.series[a].type||"column"===i.config.series[a].type),e.data&&e.data.length>0&&!s?a:-1})),r="asc"===e?0:s.length-1;"asc"===e?r=0;"asc"===e?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:"getPreviousPaths",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute("data:realIndex")},n=0;n0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(e,"'] rect")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e("x")),y:parseFloat(e("y")),width:parseFloat(e("width")),height:parseFloat(e("height"))};a.push({rect:s,color:i[t].getAttribute("color")})},r=0;r0)for(var a=0;a0?t:[]}))}}])&&B(e.prototype,i),t}();function V(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function G(t,e){for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/this.barCtx.seriesLen*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}n=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:n,zeroW:o}}},{key:"getPathFillColor",value:function(t,e,i,a){var s=this.w,r=new M(this.barCtx.ctx),n=null,o=this.barCtx.barOptions.distributed?i:e;return this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(n=a.color)})),s.config.series[e].data[i]&&s.config.series[e].data[i].fillColor&&(n=s.config.series[e].data[i].fillColor),r.fillPath({seriesNumber:this.barCtx.barOptions.distributed?o:a,dataPointIndex:i,color:n,value:t[e][i]})}},{key:"getStrokeWidth",value:function(t,e,i){var a=0,s=this.w;return void 0===this.barCtx.series[t][e]||null===this.barCtx.series[t][e]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"barBackground",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,n=t.y2,o=t.elSeries,l=this.w,c=new f(this.barCtx.ctx),h=new j(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&h===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],u=c.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==n?n:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);o.add(u),u.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(t){var e=t.barWidth,i=t.barXPosition,a=t.yRatio,s=t.y1,r=t.y2,n=t.strokeWidth,o=t.series,l=t.realIndex,c=t.i,h=t.j,d=t.w,u=new f(this.barCtx.ctx);(n=Array.isArray(n)?n[l]:n)||(n=0);var g={barWidth:e,strokeWidth:n,yRatio:a,barXPosition:i,y1:s,y2:r},p=this.getRoundedBars(d,g,o,c,h),x=i,b=i+e,v=u.move(x,s),m=u.move(x,s),y=u.line(b-n,s);return d.globals.previousPaths.length>0&&(m=this.barCtx.getPreviousPath(l,h,!1)),v=v+u.line(x,p.y2)+p.pathWithRadius+u.line(b-n,p.y2)+y+y+"z",m=m+u.line(x,s)+y+y+y+y+y+u.line(x,s),d.config.chart.stacked&&(this.barCtx.yArrj.push(p.y2WithRadius),this.barCtx.yArrjF.push(Math.abs(s-p.y2WithRadius)),this.barCtx.yArrjVal.push(this.barCtx.series[c][h])),{pathTo:v,pathFrom:m}}},{key:"getBarpaths",value:function(t){var e=t.barYPosition,i=t.barHeight,a=t.x1,s=t.x2,r=t.strokeWidth,n=t.series,o=t.realIndex,l=t.i,c=t.j,h=t.w,d=new f(this.barCtx.ctx);(r=Array.isArray(r)?r[o]:r)||(r=0);var u={barHeight:i,strokeWidth:r,barYPosition:e,x2:s,x1:a},g=this.getRoundedBars(h,u,n,l,c),p=d.move(a,e),x=d.move(a,e);h.globals.previousPaths.length>0&&(x=this.barCtx.getPreviousPath(o,c,!1));var b=e,v=e+i,m=d.line(a,v-r);return p=p+d.line(g.x2,b)+g.pathWithRadius+d.line(g.x2,v-r)+m+m+"z",x=x+d.line(a,b)+m+m+m+m+m+d.line(a,b),h.config.chart.stacked&&(this.barCtx.xArrj.push(g.x2WithRadius),this.barCtx.xArrjF.push(Math.abs(a-g.x2WithRadius)),this.barCtx.xArrjVal.push(this.barCtx.series[l][c])),{pathTo:p,pathFrom:x}}},{key:"getRoundedBars",value:function(t,e,i,a,s){var r=new f(this.barCtx.ctx),n=0,o=t.config.plotOptions.bar.borderRadius,l=Array.isArray(o);if(n=l?o[a>o.length-1?o.length-1:a]:o,t.config.chart.stacked&&i.length>1&&a!==this.barCtx.radiusOnSeriesNumber&&!l&&(n=0),this.barCtx.isHorizontal){var c="",h=e.x2;if(Math.abs(e.x1-e.x2)0:i[a][s]<0;d&&(n*=-1),h-=n,c=r.quadraticCurve(h+n,e.barYPosition,h+n,e.barYPosition+(d?-1*n:n))+r.line(h+n,e.barYPosition+e.barHeight-e.strokeWidth-(d?-1*n:n))+r.quadraticCurve(h+n,e.barYPosition+e.barHeight-e.strokeWidth,h,e.barYPosition+e.barHeight-e.strokeWidth)}return{pathWithRadius:c,x2WithRadius:h+n,x2:h}}var u="",g=e.y2;if(Math.abs(e.y1-e.y2)=0;n--)this.barCtx.zeroSerieses.indexOf(n)>-1&&n===this.radiusOnSeriesNumber&&(this.barCtx.radiusOnSeriesNumber-=1);for(var o=e.length-1;o>=0;o--)i.globals.collapsedSeriesIndices.indexOf(this.barCtx.radiusOnSeriesNumber)>-1&&(this.barCtx.radiusOnSeriesNumber-=1)}},{key:"getXForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),a}},{key:"getYForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),a}},{key:"getGoalValues",value:function(t,e,i,a,s){var r=this,n=this.w,o=[];return n.globals.seriesGoals[a]&&n.globals.seriesGoals[a][s]&&Array.isArray(n.globals.seriesGoals[a][s])&&n.globals.seriesGoals[a][s].forEach((function(a){var s;o.push((V(s={},t,"x"===t?r.getXForValue(a.value,e,!1):r.getYForValue(a.value,i,!1)),V(s,"attrs",a),s))})),o}},{key:"drawGoalLine",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,n=t.barHeight,o=new f(this.barCtx.ctx),l=o.group({className:"apexcharts-bar-goals-groups"}),c=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:n/2,a=i+e+n/2;c=o.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(c)})):Array.isArray(s)&&s.forEach((function(t){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;c=o.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(c)})),l}}])&&G(e.prototype,i),t}();function U(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function q(t){for(var e=1;ethis.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.");for(var o=0,l=0;o0&&(this.visibleI=this.visibleI+1);var w=0,k=0;this.yRatio.length>1&&(this.yaxisIndex=m),this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed;var A=this.barHelpers.initialPositions();p=A.y,w=A.barHeight,h=A.yDivision,u=A.zeroW,g=A.x,k=A.barWidth,c=A.xDivision,d=A.zeroH,this.horizontal||v.push(g+k/2);for(var S=a.group({class:"apexcharts-datalabels","data:realIndex":m}),C=a.group({class:"apexcharts-bar-goals-markers",style:"pointer-events: none"}),P=0;P0&&v.push(g+k/2),b.push(p);var M=this.barHelpers.getPathFillColor(t,o,P,m);this.renderSeries({realIndex:m,pathFill:M,j:P,i:o,pathFrom:T.pathFrom,pathTo:T.pathTo,strokeWidth:L,elSeries:y,x:g,y:p,series:t,barHeight:w,barWidth:k,elDataLabelsWrap:S,elGoalsMarkers:C,visibleSeries:this.visibleI,type:"bar"})}i.globals.seriesXvalues[m]=v,i.globals.seriesYvalues[m]=b,n.add(y)}return n}},{key:"renderSeries",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,n=t.pathFrom,o=t.pathTo,l=t.strokeWidth,h=t.elSeries,d=t.x,u=t.y,g=t.y1,p=t.y2,x=t.series,b=t.barHeight,v=t.barWidth,m=t.barYPosition,y=t.elDataLabelsWrap,w=t.elGoalsMarkers,k=t.visibleSeries,A=t.type,S=this.w,C=new f(this.ctx);a||(a=this.barOptions.distributed?S.globals.stroke.colors[s]:S.globals.stroke.colors[e]),S.config.series[r].data[s]&&S.config.series[r].data[s].strokeColor&&(a=S.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var P=s/S.config.chart.animations.animateGradually.delay*(S.config.chart.animations.speed/S.globals.dataPoints)/2.4,L=C.renderPaths({i:r,j:s,realIndex:e,pathFrom:n,pathTo:o,stroke:a,strokeWidth:l,strokeLineCap:S.config.stroke.lineCap,fill:i,animationDelay:P,initialSpeed:S.config.chart.animations.speed,dataChangeSpeed:S.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(A,"-area")});L.attr("clip-path","url(#gridRectMask".concat(S.globals.cuid,")"));var T=S.config.forecastDataPoints;T.count>0&&s>=S.globals.dataPoints-T.count&&(L.node.setAttribute("stroke-dasharray",T.dashArray),L.node.setAttribute("stroke-width",T.strokeWidth),L.node.setAttribute("fill-opacity",T.fillOpacity)),void 0!==g&&void 0!==p&&(L.attr("data-range-y1",g),L.attr("data-range-y2",p)),new c(this.ctx).setSelectionFilter(L,e,s),h.add(L);var O=new W(this).handleBarDataLabels({x:d,y:u,y1:g,y2:p,i:r,j:s,series:x,realIndex:e,barHeight:b,barWidth:v,barYPosition:m,renderedPath:L,visibleSeries:k});return null!==O&&y.add(O),h.add(y),w&&h.add(w),h}},{key:"drawBarPaths",value:function(t){var e=t.indexes,i=t.barHeight,a=t.strokeWidth,s=t.zeroW,r=t.x,n=t.y,o=t.yDivision,l=t.elSeries,c=this.w,h=e.i,d=e.j;c.globals.isXNumeric&&(n=(c.globals.seriesX[h][d]-c.globals.minX)/this.invertedXRatio-i);var u=n+i*this.visibleI;r=this.barHelpers.getXForValue(this.series[h][d],s);var g=this.barHelpers.getBarpaths({barYPosition:u,barHeight:i,x1:s,x2:r,strokeWidth:a,series:this.series,realIndex:e.realIndex,i:h,j:d,w:c});return c.globals.isXNumeric||(n+=o),this.barHelpers.barBackground({j:d,i:h,y1:u-i*this.visibleI,y2:i*this.seriesLen,elSeries:l}),{pathTo:g.pathTo,pathFrom:g.pathFrom,x:r,y:n,goalX:this.barHelpers.getGoalValues("x",s,null,h,d),barYPosition:u}}},{key:"drawColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,n=t.zeroH,o=t.strokeWidth,l=t.elSeries,c=this.w,h=e.realIndex,d=e.i,u=e.j,g=e.bc;if(c.globals.isXNumeric){var f=h;c.globals.seriesX[h].length||(f=c.globals.maxValsInArrayIndex),i=(c.globals.seriesX[f][u]-c.globals.minX)/this.xRatio-r*this.seriesLen/2}var p=i+r*this.visibleI;a=this.barHelpers.getYForValue(this.series[d][u],n);var x=this.barHelpers.getColumnPaths({barXPosition:p,barWidth:r,y1:n,y2:a,strokeWidth:o,series:this.series,realIndex:e.realIndex,i:d,j:u,w:c});return c.globals.isXNumeric||(i+=s),this.barHelpers.barBackground({bc:g,j:u,i:d,x1:p-o/2-r*this.visibleI,x2:r*this.seriesLen+o/2,elSeries:l}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x:i,y:a,goalY:this.barHelpers.getGoalValues("y",null,n,d,u),barXPosition:p}}},{key:"getPreviousPath",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}])&&$(e.prototype,i),t}();function Q(t){return function(t){if(Array.isArray(t))return K(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return K(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?K(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function K(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=new Array(e);i12?u-12:0===u?12:u;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+l(u))).replace(/(^|[^\\])H/g,"$1"+u)).replace(/(^|[^\\])hh+/g,"$1"+l(g))).replace(/(^|[^\\])h/g,"$1"+g);var f=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+l(f))).replace(/(^|[^\\])m/g,"$1"+f);var p=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+l(p))).replace(/(^|[^\\])s/g,"$1"+p);var x=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+l(x,3)),x=Math.round(x/10),e=e.replace(/(^|[^\\])ff/g,"$1"+l(x)),x=Math.round(x/10);var b=u<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+x)).replace(/(^|[^\\])TT+/g,"$1"+b)).replace(/(^|[^\\])T/g,"$1"+b.charAt(0));var v=b.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+v)).replace(/(^|[^\\])t/g,"$1"+v.charAt(0));var m=-t.getTimezoneOffset(),y=a||!m?"Z":m>0?"+":"-";if(!a){var w=(m=Math.abs(m))%60;y+=l(Math.floor(m/60))+":"+l(w)}e=e.replace(/(^|[^\\])K/g,"$1"+y);var k=(a?t.getUTCDay():t.getDay())+1;return(e=(e=(e=(e=e.replace(new RegExp(n[0],"g"),n[k])).replace(new RegExp(o[0],"g"),o[k])).replace(new RegExp(s[0],"g"),s[h])).replace(new RegExp(r[0],"g"),r[h])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),n=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),o=this.formatDate(r,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(n[6],10),maxMillisecond:parseInt(o[6],10),minSecond:parseInt(n[5],10),maxSecond:parseInt(o[5],10),minMinute:parseInt(n[4],10),maxMinute:parseInt(o[4],10),minHour:parseInt(n[3],10),maxHour:parseInt(o[3],10),minDate:parseInt(n[2],10),maxDate:parseInt(o[2],10),minMonth:parseInt(n[1],10)-1,maxMonth:parseInt(o[1],10)-1,minYear:parseInt(n[0],10),maxYear:parseInt(o[0],10)}}},{key:"isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"calculcateLastDaysOfMonth",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:"determineDaysOfYear",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:"determineRemainingDaysOfYear",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(t,e){var i=30;switch(t=r.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}])&&tt(e.prototype,i),t}();function it(t){return(it="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function at(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function st(t){for(var e=1;e0&&(this.visibleI=this.visibleI+1);var x=0,b=0;this.yRatio.length>1&&(this.yaxisIndex=g);var v=this.barHelpers.initialPositions();d=v.y,c=v.zeroW,h=v.x,b=v.barWidth,o=v.xDivision,l=v.zeroH;for(var m=a.group({class:"apexcharts-datalabels","data:realIndex":g}),y=a.group({class:"apexcharts-rangebar-goals-markers",style:"pointer-events: none"}),w=0;w0}));return a=l.config.plotOptions.bar.rangeBarGroupRows?s+n*u:s+r*this.visibleI+n*u,g>-1&&!l.config.plotOptions.bar.rangeBarOverlap&&(c=l.globals.seriesRangeBar[e][g].overlaps).indexOf(h)>-1&&(a=(r=o.barHeight/c.length)*this.visibleI+n*(100-parseInt(this.barOptions.barHeight,10))/100/2+r*(this.visibleI+c.indexOf(h))+n*u),{barYPosition:a,barHeight:r}}},{key:"drawRangeColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=(t.strokeWidth,t.xDivision),s=t.barWidth,r=t.zeroH,n=this.w,o=e.i,l=e.j,c=this.yRatio[this.yaxisIndex],h=e.realIndex,d=this.getRangeValue(h,l),u=Math.min(d.start,d.end),g=Math.max(d.start,d.end);n.globals.isXNumeric&&(i=(n.globals.seriesX[o][l]-n.globals.minX)/this.xRatio-s/2);var f=i+s*this.visibleI;void 0===this.series[o][l]||null===this.series[o][l]?u=r:(u=r-u/c,g=r-g/c);var p=Math.abs(g-u),x=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:s,y1:u,y2:g,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:h,j:l,w:n});return n.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:p,x:i,y:g,goalY:this.barHelpers.getGoalValues("y",null,r,o,l),barXPosition:f}}},{key:"drawRangeBarPaths",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,n=t.barHeight,o=t.barYPosition,l=t.zeroW,c=this.w,h=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,u=Math.abs(d-h),g=this.barHelpers.getBarpaths({barYPosition:o,barHeight:n,x1:h,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:c});return c.globals.isXNumeric||(i+=r),{pathTo:g.pathTo,pathFrom:g.pathFrom,barWidth:u,x:d,goalX:this.barHelpers.getGoalValues("x",l,null,e.realIndex,e.j),y:i}}},{key:"getRangeValue",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}},{key:"getTooltipValues",value:function(t){var e=t.ctx,i=t.seriesIndex,a=t.dataPointIndex,s=t.y1,r=t.y2,n=t.w,o=n.globals.seriesRangeStart[i][a],l=n.globals.seriesRangeEnd[i][a],c=n.globals.labels[a],h=n.config.series[i].name?n.config.series[i].name:"",d=n.config.tooltip.y.formatter,u=n.config.tooltip.y.title.formatter,g={w:n,seriesIndex:i,dataPointIndex:a,start:o,end:l};"function"==typeof u&&(h=u(h,g)),Number.isFinite(s)&&Number.isFinite(r)&&(o=s,l=r,n.config.series[i].data[a].x&&(c=n.config.series[i].data[a].x+":"),"function"==typeof d&&(c=d(c,g)));var f="",p="",x=n.globals.colors[i];if(void 0===n.config.tooltip.x.formatter)if("datetime"===n.config.xaxis.type){var b=new et(e);f=b.formatDate(b.getDate(o),n.config.tooltip.x.format),p=b.formatDate(b.getDate(l),n.config.tooltip.x.format)}else f=o,p=l;else f=n.config.tooltip.x.formatter(o),p=n.config.tooltip.x.formatter(l);return{start:o,end:l,startVal:f,endVal:p,ylabel:c,color:x,seriesName:h}}},{key:"buildCustomTooltipHTML",value:function(t){return'
    '+(t.seriesName||"")+'
    '+t.ylabel+' '+t.start+' - '+t.end+"
    "}}])&&ot(e.prototype,i),o}(J);function ut(t,e){for(var i=0;i\n '.concat(t.config.series[e].name?t.config.series[e].name:"series-"+(e+1),": ").concat(t.globals.series[e][i],"\n
    "):'
    ')+"
    ".concat(a[0],': ')+r+"
    "+"
    ".concat(a[1],': ')+n+"
    "+(o?"
    ".concat(a[2],': ')+o+"
    ":"")+"
    ".concat(a[3],': ')+l+"
    "+"
    ".concat(a[4],': ')+c+"
    "}}])&&ut(e.prototype,i),t}();function ft(t){return(ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function pt(t,e){for(var i=0;i1&&s.length!==t.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both."),t}},{key:"extendAnnotations",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),this.extendPointAnnotations(t)}},{key:"extendYAxisAnnotations",value:function(t){var e=new L;return t.annotations.yaxis=r.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:"extendXAxisAnnotations",value:function(t){var e=new L;return t.annotations.xaxis=r.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:"extendPointAnnotations",value:function(t){var e=new L;return t.annotations.points=r.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:"checkForDarkTheme",value:function(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.chart.background||(t.chart.background="#424242"),t.theme.palette||(t.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(e.chart.type," chart is not supported.")),e.yaxis[0].reversed=!1),e}}])&&pt(e.prototype,i),t}();function bt(t,e){for(var i=0;i0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new j(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s="boxPlot"===i.chart.type||"boxPlot"===i.series[e].type,n=0;n=5?this.twoDSeries.push(r.parseNumber(t[e].data[n][4])):this.twoDSeries.push(r.parseNumber(t[e].data[n][1])),a.dataFormatXNumeric=!0),"datetime"===i.xaxis.type){var o=new Date(t[e].data[n][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[n][0]);for(var l=0;l-1&&(n=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,n=new et(i),o=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isRangeBar="rangeBar"===a.chart.type&&s.isBarHorizontal,s.hasGroups="category"===a.xaxis.type&&a.xaxis.group.groups.length>0,s.hasGroups&&(s.groups=a.xaxis.group.groups);for(var l=function(){for(var t=0;t0&&(this.twoDSeriesX=o,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var h=t[c].data.map((function(t){return r.parseNumber(t)}));s.series.push(h)}s.seriesZ.push(this.threeDSeries),void 0!==t[c].name?s.seriesNames.push(t[c].name):s.seriesNames.push("series-"+parseInt(c+1,10)),void 0!==t[c].color?s.seriesColors.push(t[c].color):s.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0?i.labels=e.xaxis.categories:e.labels.length>0?i.labels=e.labels.slice():this.fallbackToCategory?(i.labels=i.labels[0],i.seriesRangeBar.length&&(i.seriesRangeBar.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=i.labels.filter((function(t,e,i){return i.indexOf(t)===e}))),e.xaxis.convertedCatToNumeric&&(new gt(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t))):this._generateExternalLabels(t)}},{key:"_generateExternalLabels",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),n=0;n0&&i<100?t.toFixed(1):t.toFixed(0)}return e.globals.isBarHorizontal&&e.globals.maxY-e.globals.minYArr<4?t.toFixed(1):t.toFixed(0)}return t},"function"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,"function"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}])&&At(e.prototype,i),t}();function Ct(t,e){for(var i=0;i4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"12px",n=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],o=this.w,l=void 0===t[a]?"":t[a],c=l,h=o.globals.xLabelFormatter,d=o.config.xaxis.labels.formatter,u=!1,g=new St(this.ctx),p=l;n&&(c=g.xLabelFormat(h,l,p,{i:a,dateFormatter:new et(this.ctx).formatDate,w:o}),void 0!==d&&(c=d(l,t[a],{i:a,dateFormatter:new et(this.ctx).formatDate,w:o})));var x=function(t){var i=null;return e.forEach((function(t){"month"===t.unit?i="year":"day"===t.unit?i="month":"hour"===t.unit?i="day":"minute"===t.unit&&(i="hour")})),i===t};e.length>0?(u=x(e[a].unit),i=e[a].position,c=e[a].value):"datetime"===o.config.xaxis.type&&void 0===d&&(c=""),void 0===c&&(c=""),c=Array.isArray(c)?c:c.toString();var b=new f(this.ctx),v={};v=o.globals.rotateXLabels&&n?b.getTextRects(c,parseInt(r,10),null,"rotate(".concat(o.config.xaxis.labels.rotate," 0 0)"),!1):b.getTextRects(c,parseInt(r,10));var m=!o.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(c)&&(0===c.indexOf("NaN")||0===c.toLowerCase().indexOf("invalid")||c.toLowerCase().indexOf("infinity")>=0||s.indexOf(c)>=0&&m)&&(c=""),{x:i,text:c,textRect:v,isBold:u}}},{key:"checkLabelBasedOnTickamount",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return"dataPoints"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=""),e}},{key:"checkForOverflowingLabels",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var n=s[s.length-1];e.x0){!0===o.config.yaxis[s].opposite&&(t+=a.width);for(var h=e;h>=0;h--){var d=c+e/10+o.config.yaxis[s].labels.offsetY-1;o.globals.isBarHorizontal&&(d=r*h),"heatmap"===o.config.chart.type&&(d+=r/2);var u=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);n.add(u),c+=r}}}}])&&Ct(e.prototype,i),t}();function Lt(t,e){for(var i=0;i=10?l.config.chart.toolbar.export.csv.dateFormatter(n):r.isNumber(n)?n:n.split(s).join("")));for(var o=0;o0&&!i.globals.isBarHorizontal&&(this.xaxisLabels=i.globals.timescaleLabels.slice()),i.config.xaxis.overwriteCategories&&(this.xaxisLabels=i.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===i.config.xaxis.position?this.offY=0:this.offY=i.globals.gridHeight+1,this.offY=this.offY+i.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===i.config.chart.type&&i.config.plotOptions.bar.horizontal,this.xaxisFontSize=i.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=i.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=i.config.xaxis.labels.style.colors,this.xaxisBorderWidth=i.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=i.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=i.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=i.config.xaxis.axisBorder.height,this.yaxis=i.config.yaxis[0]}var e,i;return e=t,(i=[{key:"drawXaxis",value:function(){var t=this.w,e=new f(this.ctx),i=e.group({class:"apexcharts-xaxis",transform:"translate(".concat(t.config.xaxis.offsetX,", ").concat(t.config.xaxis.offsetY,")")}),a=e.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},c=[],h=[],d=this.w,u=l.xaxisFontSize||this.xaxisFontSize,g=l.xaxisFontFamily||this.xaxisFontFamily,f=l.xaxisForeColors||this.xaxisForeColors,p=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m="category"===d.config.xaxis.type?d.globals.dataPoints:v;if(s){var y=m>1?m-1:m;n=d.globals.gridWidth/y,b=b+r(0,n)/2+d.config.xaxis.labels.offsetX}else n=d.globals.gridWidth/m,b=b+r(0,n)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,n)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&n/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=o.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,c,u,t),w=28;if(d.globals.rotateXLabels&&t&&(w=22),t||(w=w+parseFloat(u)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&"dataPoints"!==d.config.xaxis.tickAmount&&"datetime"!==d.config.xaxis.type?o.axesUtils.checkLabelBasedOnTickamount(s,y,v):o.axesUtils.checkForOverflowingLabels(s,y,v,c,h),t&&y.text&&d.globals.xaxisLabelsCount++,d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:o.offY+d.config.xaxis.labels.offsetY+w-("top"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:"middle",fontWeight:y.isBold?600:p,fontSize:u,fontFamily:g,foreColor:Array.isArray(f)?t&&d.config.xaxis.convertedCatToNumeric?f[d.globals.minX+s-1]:f[s]:f,isPlainText:!1,cssClass:(t?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+x});if(i.add(k),t){var A=document.createElementNS(d.globals.SVGNS,"title");A.textContent=Array.isArray(y.text)?y.text.join(" "):y.text,k.node.appendChild(A),""!==y.text&&(c.push(y.text),h.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,"top"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var n=new f(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(n),n.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var c=s[s.length-1].getBBox(),h=s[0].getBBox();c.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),h.x+h.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}var e,i;return e=t,(i=[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new f(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new f(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elForecastMask.setAttribute("id","forecastMask".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elNonForecastMask.setAttribute("id","nonForecastMask".concat(e.cuid));var r=t.config.chart.type,n=0,o=0;("bar"===r||"rangeBar"===r||"candlestick"===r||"boxPlot"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(n=t.config.grid.padding.left,o=t.config.grid.padding.right,e.barPadForNumericAxis>n&&(n=e.barPadForNumericAxis,o=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-n-2,-a/2,e.gridWidth+a+o+n+4,e.gridHeight+a,0,"#fff");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var c=e.dom.baseEl.querySelector("defs");c.appendChild(e.dom.elGridRectMask),c.appendChild(e.dom.elForecastMask),c.appendChild(e.dom.elNonForecastMask),c.appendChild(e.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,n=t.xCount,o=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===n-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||"radar"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({x1:i,y1:a,x2:s,y2:r,parent:o});var c=0;if(l.globals.hasGroups&&"between"===l.config.xaxis.tickPlacement){var h=l.globals.groups;if(h){for(var d=0,u=0;d2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&(a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,xAxisTickWidth:t.globals.gridWidth/i}}},{key:"drawGridBands",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,n=0,o=0;n=i.config.grid.row.colors.length&&(o=0),this._drawGridBandRect({c:o,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,c=i.globals.padHorizontal,h=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,u=0,g=0;u=i.config.grid.column.colors.length&&(g=0),this._drawGridBandRect({c:g,x1:c,y1:0,x2:h,y2:d,type:"column"}),c+=i.globals.gridWidth/l}}])&&Mt(e.prototype,i),t}();function zt(t,e){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,n=this.w,o=Math.abs(e-t);if("dataPoints"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=n.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!r.isNumber(t)&&!r.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE){t=0,e=i;var l=this.linearScale(t,e,i);return l}t>e?(console.warn("axis.min cannot be greater than axis.max"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var c=[];o<1&&s&&("candlestick"===n.config.chart.type||"candlestick"===n.config.series[a].type||"boxPlot"===n.config.chart.type||"boxPlot"===n.config.series[a].type||n.globals.isRangeData)&&(e*=1.01);var h=i+1;h<2?h=2:h>2&&(h-=2);var d=o/h,u=Math.floor(r.log10(d)),g=Math.pow(10,u),f=Math.round(d/g);f<1&&(f=1);var p=f*g,x=p*Math.floor(t/p),b=p*Math.ceil(e/p),v=x;if(s&&o>2){for(;c.push(v),!((v+=p)>b););return{result:c,niceMin:c[0],niceMax:c[c.length-1]}}var m=t;(c=[]).push(m);for(var y=Math.abs(e-t)/i,w=0;w<=i;w++)m+=y,c.push(m);return c[c.length-2]>=e&&c.pop(),{result:c,niceMin:c[0],niceMax:c[c.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);"dataPoints"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var n=[],o=t;i>=0;)n.push(o),o+=r,i-=1;return{result:n,niceMin:n[0],niceMax:n[n.length-1]}}},{key:"logarithmicScaleNice",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,n.logBase),a.yAxisScale[t]=n.forceNiceScale?this.logarithmicScaleNice(e,i,n.logBase):this.logarithmicScale(e,i,n.logBase);else if(i!==-Number.MAX_VALUE&&r.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===n.min&&void 0===n.max||n.forceNiceScale){var l=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,n.tickAmount?n.tickAmount:o<5&&o>1?o+1:5,t,l)}else a.yAxisScale[t]=this.linearScale(e,i,n.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:"setXScale",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,n=Math.abs(e-t);return e!==-Number.MAX_VALUE&&r.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:n<5&&n>1?n+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:"setMultipleYScales",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,n){var o=n;i.series.forEach((function(t,i){t.name===e.seriesName&&(o=i,n!==i?r.push({index:i,similarIndex:n,alreadyExists:!0}):r.push({index:i}))}));var l=a[o],c=s[o];t.setYScaleForIndex(n,l,c)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:"sameScaleInMultipleAxes",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,n=[];i.forEach((function(t){t.alreadyExists&&(void 0===n[t.index]&&(n[t.index]=[]),n[t.index].push(t.index),n[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=n,n.forEach((function(t,e){n.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(n[e]=n[e].concat(n[a]))}))}));var o=n.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));n=n.filter((function(t){return!!t}));var l=o.slice(),c=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return c.indexOf(JSON.stringify(t))===e}));var h=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===h[s]&&(h[s]=[],d[s]=[]),h[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);h.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.min(t.value,u[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.max(t.value,g[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var n=u[i],o=g[i];s.chart.stacked&&(o=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(o+=t.value),n!==Number.MIN_VALUE&&(n+=h[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(n="function"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(o="function"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,n,o))}))}))}))}},{key:"autoScaleY",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis is not supported in a multi-yaxis chart."),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,n){for(var o=0,l=0;l=i.xaxis.min){o=l;break}var c,h,d=a.globals.minYArr[n],u=a.globals.maxYArr[n],g=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(n,l){var f=n[o];r?(f=g[o],c=h=f,g.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>h&&null!==t&&(h=t),n[e]=i.xaxis.min){var r=t,n=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),n=Math.max(i[e],n))})),n>h&&null!==n&&(h=n),rd&&(c=d),e.length>1?(e[l].min=void 0===t.min?c:t.min,e[l].max=void 0===t.max?h:t.max):(e[0].min=void 0===t.min?c:t.min,e[0].max=void 0===t.max?h:t.max)}))})),e}}])&&zt(e.prototype,i),t}();function Yt(t,e){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,n=this.w.globals,o=-Number.MAX_VALUE,l=Number.MIN_VALUE;null===a&&(a=t+1);var c=n.series,h=c,d=c;"candlestick"===s.chart.type?(h=n.seriesCandleL,d=n.seriesCandleH):"boxPlot"===s.chart.type?(h=n.seriesCandleO,d=n.seriesCandleC):n.isRangeData&&(h=n.seriesRangeStart,d=n.seriesRangeEnd);for(var u=t;uh[u][g]&&h[u][g]<0&&(l=h[u][g])):n.hasNullValues=!0}}return"rangeBar"===s.chart.type&&n.seriesRangeStart.length&&n.isBarHorizontal&&(l=e),"bar"===s.chart.type&&(l<0&&o<0&&(o=0),l===Number.MIN_VALUE&&(l=0)),{minY:l,maxY:o,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(n=0),t.minY=i-5*n/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*n/100}return e.yaxis.forEach((function(e,i){void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal&&["min","max"].forEach((function(i){void 0!==e.xaxis[i]&&"number"==typeof e.xaxis[i]&&("min"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])})),t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:"setXRange",value:function(){var t=this.w.globals,e=this.w.config,i="numeric"===e.xaxis.type||"datetime"===e.xaxis.type||"category"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;et.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):"dataPoints"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],n=t.minX-1;n0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:"_setStackedMinMax",value:function(){var t=this.w.globals,e=[],i=[];if(t.series.length)for(var a=0;a0?s=s+parseFloat(t.series[o][a])+1e-4:n+=parseFloat(t.series[o][a])),o===t.series.length-1&&(e.push(s),i.push(n));for(var l=0;l=0;v--)b(v);if(void 0!==i.config.yaxis[t].title.text){var m=a.group({class:"apexcharts-yaxis-title"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:"end",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[t].title.style.cssClass});m.add(w),l.add(m)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,h,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new f(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,n=e.globals.gridWidth/r+.1,o=n+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,c=e.globals.yAxisScale[t].result.slice(),h=e.globals.timescaleLabels;h.length>0&&(this.xaxisLabels=h.slice(),r=(c=h.slice()).length),c=this.axesUtils.checkForReversedLabels(t,c);var d=h.length;if(e.config.xaxis.labels.show)for(var u=d?0:r;d?u=0;d?u++:u--){var g=c[u];g=l(g,u,e);var p=e.globals.gridWidth+e.globals.padHorizontal-(o-n+e.config.xaxis.labels.offsetX);if(h.length){var x=this.axesUtils.getLabel(c,h,p,u,this.drawnLabels,this.xaxisFontSize);p=x.x,g=x.text,this.drawnLabels.push(x.text),0===u&&e.globals.skipFirstTimelinelabel&&(g=""),u===c.length-1&&e.globals.skipLastTimelinelabel&&(g="")}var b=i.drawText({x:p,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:g,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(b),b.tspan(g);var v=document.createElementNS(e.globals.SVGNS,"title");v.textContent=g,b.node.appendChild(v),o+=n}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(t){var e=this.w,i=new f(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;"bar"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);t.add(r)}}},{key:"inversedYAxisTitleText",value:function(t){var e=this.w,i=new f(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new f(this.ctx),s={width:0,height:0},r={width:0,height:0},n=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==n&&(s=n.getBoundingClientRect());var o=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==o&&(r=o.getBoundingClientRect()),null!==o){var l=this.xPaddingForYAxisTitle(t,s,r,e);o.setAttribute("x",l.xPos-(e?10:0))}if(null!==o){var c=a.rotateAroundCenter(o);o.setAttribute("transform","rotate(".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate," ").concat(c.x," ").concat(c.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,r=0,n=0,o=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:n,padd:0}:(a?(n=e.width+s.config.yaxis[t].title.offsetX+i.width/2+o/2,0===(r+=1)&&(n-=o/2)):(n=-1*e.width+s.config.yaxis[t].title.offsetX+o/2+i.width/2,s.globals.isBarHorizontal&&(o=25,n=-1*e.width-s.config.yaxis[t].title.offsetX-o)),{xPos:n,padd:o})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,r=18,n=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(o,l){var c=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!o.show||o.floating||0===t[l].width,h=t[l].width+e[l].width;o.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-o.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+n,c||(n=n+h+20),i.globals.translateYAxisX[l]=s-o.labels.offsetX+20):(a=i.globals.translateX-r,c||(r=r+h+20),i.globals.translateYAxisX[l]=a+o.labels.offsetX)}))}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(e=r.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),n=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));n=r.listToArray(n);var o=s.getBoundingClientRect();"left"===a.labels.align?(n.forEach((function(t,e){t.setAttribute("text-anchor","start")})),a.opposite||s.setAttribute("transform","translate(-".concat(o.width,", 0)"))):"center"===a.labels.align?(n.forEach((function(t,e){t.setAttribute("text-anchor","middle")})),s.setAttribute("transform","translate(".concat(o.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(n.forEach((function(t,e){t.setAttribute("text-anchor","end")})),a.opposite&&s.setAttribute("transform","translate(".concat(o.width,", 0)")))}}))}}])&&Rt(e.prototype,i),t}();function Ht(t,e){for(var i=0;i0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=r.extend(C,i);this.w.globals.locale=a.options}}])&&Wt(e.prototype,i),t}();function jt(t,e){for(var i=0;ie.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var n=new xt({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var l=x.extendArrayProps(n,i.globals.initialConfig,i);t=r.extend(l,t),t=r.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var c=0;c0&&"function"==typeof e.config.colors[0]&&(e.globals.colors=e.config.series.map((function(i,a){var s=e.config.colors[a];return s||(s=e.config.colors[0]),"function"==typeof s?(t.isColorFn=!0,s({value:e.globals.axisCharts?e.globals.series[a][0]?e.globals.series[a][0]:0:e.globals.series[a],seriesIndex:a,dataPointIndex:a,w:e})):s})))),e.globals.seriesColors.map((function(t,i){t&&(e.globals.colors[i]=t)})),e.config.theme.monochrome.enabled){var a=[],s=e.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(s=e.globals.series[0].length*e.globals.series.length);for(var n=e.config.theme.monochrome.color,o=1/(s/e.config.theme.monochrome.shadeIntensity),l=e.config.theme.monochrome.shadeTo,c=0,h=0;h2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.length)&&(e=t.length);for(var i=0,a=new Array(e);it.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getLargestStringFromMultiArr",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,function(t){return function(t){if(Array.isArray(t))return Kt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Kt(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Kt(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(a));i=e[a.indexOf(s)]}return i}}])&&te(e.prototype,i),t}();function ie(t,e){for(var i=0;i0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==e.config.legend.position&&"right"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,n=r.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(n,i);e.globals.isBarHorizontal&&(o=n=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var l=new St(this.dCtx.ctx),c=n;n=l.xLabelFormat(s,n,c,{i:void 0,dateFormatter:new et(this.dCtx.ctx).formatDate,w:e}),o=l.xLabelFormat(s,o,c,{i:void 0,dateFormatter:new et(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===n||""===String(n).trim())&&(o=n="1");var h=new f(this.dCtx.ctx),d=h.getTextRects(n,e.config.xaxis.labels.style.fontSize),u=d;if(n!==o&&(u=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:d.width>=u.width?d.width:u.width,height:d.height>=u.height?d.height:u.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1)};d=g(n),n!==o&&(u=g(o)),t.height=(d.height>u.height?d.height:u.height)/1.5,t.width=d.width>u.width?d.width:u.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var t,e=this.w;if(!e.globals.hasGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),n=r.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(n,s),l=new f(this.dCtx.ctx),c=l.getTextRects(n,a),h=c;return n!==o&&(h=l.getTextRects(o,a)),i={width:c.width>=h.width?c.width:h.width,height:c.height>=h.height?c.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new f(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e}),0);return 1.05*(t=new f(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,n=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var o=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal;s.yaxis.forEach((function(t,l){o?(e.dCtx.gridPad.left0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-h&&(a.skipLastTimelinelabel=!0),c<-(t.show&&!t.floating||"bar"!==s.chart.type&&"candlestick"!==s.chart.type&&"rangeBar"!==s.chart.type&&"boxPlot"!==s.chart.type?10:n/1.75)&&(a.skipFirstTimelinelabel=!0)}else"datetime"===r?e.dCtx.gridPad.rightString(l.niceMax).length?d:l.niceMax,g=h(u,{seriesIndex:o,dataPointIndex:-1,w:e}),p=g;if(void 0!==g&&0!==g.length||(g=u),e.globals.isBarHorizontal){a=0;var x=e.globals.labels.slice();g=h(g=r.getLargestStringFromArr(x),{seriesIndex:o,dataPointIndex:-1,w:e}),p=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,x)}var b=new f(t.dCtx.ctx),v="rotate(".concat(n.labels.rotate," 0 0)"),m=b.getTextRects(g,n.labels.style.fontSize,n.labels.style.fontFamily,v,!1),y=m;g!==p&&(y=b.getTextRects(p,n.labels.style.fontSize,n.labels.style.fontFamily,v,!1)),i.push({width:(c>y.width||c>m.width?c:y.width>m.width?y.width:m.width)+a,height:y.height>m.height?y.height:m.height})}else i.push({width:0,height:0})})),i}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new f(t.dCtx.ctx),r="rotate(".concat(e.title.rotate," 0 0)"),n=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:n.width,height:n.height})}else i.push({width:0,height:0})})),i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new Pt(this.dCtx.ctx),n=function(n,o){var l=t.config.yaxis[o].floating,c=0;n.width>0&&!l?(c=n.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(o)&&(c=c-n.width-s)):c=l||r.isYAxisHidden(o)?0:5,t.config.yaxis[o].opposite?a+=c:i+=c,e+=c};return t.globals.yLabelsCoords.map((function(t,e){n(t,e)})),t.globals.yTitleCoords.map((function(t,e){n(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}])&&se(e.prototype,i),t}();function ne(t,e){for(var i=0;i0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var n,o,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),n=l/t,e.globals.minXDiff&&e.globals.minXDiff/n>0&&(o=e.globals.minXDiff/n),o>t/2&&(o/=2),(s=o/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:"gridPadFortitleSubtitle",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;["title","subtitle"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||"bottom"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w,a=new Pt(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}])&&ne(e.prototype,i),t}();function le(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=new Array(e);i0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i,a,s=(a=2,function(t){if(Array.isArray(t))return t}(i=e)||function(t,e){var i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=i){var a,s,r=[],n=!0,o=!1;try{for(i=i.call(t);!(n=(a=i.next()).done)&&(r.push(a.value),!e||r.length!==e);n=!0);}catch(t){o=!0,s=t}finally{try{n||null==i.return||i.return()}finally{if(o)throw s}}return r}}(i,a)||function(t,e){if(t){if("string"==typeof t)return le(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?le(t,e):void 0}}(i,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=s[0],n=s[1];t.gridPad[r]=Math.max(n,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),n=this.dimXAxis.getxAxisGroupLabelsCoords(),o=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,o,n),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,c=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-o.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var h=10;("radar"===e.config.chart.type||this.isSparkline)&&(l=0,c=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===e.config.chart.type)&&(l=0,c=0,h=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-c-(t.isSparkline||"treemap"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch("top"===e.config.xaxis.position&&(h=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case"bottom":i.translateY=h,d();break;case"top":i.translateY=this.lgRect.height+h,d();break;case"left":i.translateY=h,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-c-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case"right":i.translateY=h,i.translateX=l,i.gridHeight=i.svgHeight-c-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new Dt(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s="pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[s].offsetY,n=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=n+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case"bottom":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=n+(e.svgWidth-e.gridWidth)/2;break;case"top":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=n+(e.svgWidth-e.gridWidth)/2;break;case"left":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=n+this.lgRect.width+a;break;case"right":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=n+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(t,e,i){var a=this.w,s=a.globals.hasGroups?2:1,r=i.height+t.height+e.height,n=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,o=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&"bottom"===a.config.legend.position?10:0;this.xAxisHeight=r*n+s*o+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeighth&&(this.yAxisWidth=h)}}])&&ce(e.prototype,i),t}();function de(t,e){for(var i=0;i0){for(var n=0;n-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}])&&de(e.prototype,i),t}();function ge(t,e){for(var i=0;i1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),r.isIE11()?document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"drawLegends",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if("heatmap"===e.config.chart.type){var n=e.config.plotOptions.heatmap.colorScale.ranges;a=n.map((function(t){return t.name?t.name:t.from+" - "+t.to})),s=n.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,l=e.config.legend.inverseOrder,c=l?a.length-1:0;l?c>=0:c<=a.length-1;l?c--:c++){var h=o(a[c],{seriesIndex:c,w:e}),d=!1,u=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g0)for(var p=0;p0?l-10:0)+(c>0?c-10:0)}a.style.position="absolute",r=r+t+i.config.legend.offsetX,n=n+e+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=n+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px"),["width","height"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+"px")}))}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.baseEl.querySelector(".apexcharts-legend").style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new he(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;"bottom"===t.config.legend.position?r=-e.clwh/1.8:"top"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new j(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains("apexcharts-inactive-legend")&&i&&new j(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:"onLegendClick",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(t.target.getAttribute("rel"),10)-1,a="true"===t.target.getAttribute("data:collapsed"),s=this.w.config.chart.events.legendClick;"function"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;"function"==typeof r&&t.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),"treemap"!==e.config.chart.type&&"heatmap"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}])&&ge(e.prototype,i),t}();var pe=i(798),xe=i.n(pe),be=i(688),ve=i.n(be),me=i(149),ye=i.n(me),we=i(323),ke=i.n(we),Ae=i(686),Se=i.n(Ae),Ce=i(618),Pe=i.n(Ce),Le=i(355),Te=i.n(Le);function Oe(t,e){for(var i=0;i0&&e.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,n=void 0===r?0:r,o=t.translateY,l=void 0===o?0:o,c=this.w,h=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==c.globals.selection){var u={transform:"translate("+n+", "+l+")"};c.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),h.attr({x:e,y:i,width:a,height:s,fill:c.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":c.config.chart.zoom.zoomedArea.fill.opacity,stroke:c.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":c.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":c.config.chart.zoom.zoomedArea.stroke.opacity}),f.setAttrs(h.node,u)),c.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:c.config.chart.selection.fill.color,"fill-opacity":c.config.chart.selection.fill.opacity,stroke:c.config.chart.selection.stroke.color,"stroke-width":c.config.chart.selection.stroke.width,"stroke-dasharray":c.config.chart.selection.stroke.dashArray,"stroke-opacity":c.config.chart.selection.stroke.opacity}),f.setAttrs(d.node,u))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e,i=t.context,a=t.zoomtype,s=this.w,r=i,n=this.gridRect.getBoundingClientRect(),o=r.startX-1,l=r.startY,c=!1,h=!1,d=r.clientX-n.left-o,u=r.clientY-n.top-l;return Math.abs(d+o)>s.globals.gridWidth?d=s.globals.gridWidth-o:r.clientX-n.left<0&&(d=o),o>r.clientX-n.left&&(c=!0,d=Math.abs(d)),l>r.clientY-n.top&&(h=!0,u=Math.abs(u)),e="x"===a?{x:c?o-d:o,y:0,width:d,height:s.globals.gridHeight}:"y"===a?{x:0,y:h?l-u:l,width:s.globals.gridWidth,height:u}:{x:c?o-d:o,y:h?l-u:l,width:d,height:u},r.drawSelectionRect(e),r.selectionDragging("resizing"),e}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,n=0;"resizing"===t&&(n=30);var o=function(t){return parseFloat(r.node.getAttribute(t))},l={x:o("x"),y:o("y"),width:o("width"),height:o("height")};a.globals.selection=l,"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),n={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,n),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,n)}),n))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,n=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var l=s.startX;s.startX=s.endX,s.endX=l}if(s.startY>s.endY){var c=s.startY;s.startY=s.endY,s.endY=c}var h=void 0,d=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*n.invertedYRatio,d=a.globals.yAxisScale[0].niceMin+s.endX*n.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*n.xRatio,d=a.globals.xAxisScale.niceMin+s.endX*n.xRatio);var u=[],g=[];if(a.config.yaxis.forEach((function(t,e){u.push(a.globals.yAxisScale[e].niceMax-n.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-n.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==d)if(a.globals.zoomEnabled){var f=r.clone(a.globals.initialConfig.yaxis),p=r.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),d=Math.floor(d),h<1&&(h=1,d=a.globals.dataPoints),d-h<2&&(d=h+1)),"xy"!==i&&"x"!==i||(p={min:h,max:d}),"xy"!==i&&"y"!==i||f.forEach((function(t,e){f[e].min=g[e],f[e].max=u[e]})),a.config.chart.zoom.autoScaleYaxis){var x=new Xt(s.ctx);f=x.autoScaleY(s.ctx,f,{xaxis:p})}if(o){var b=o.getBeforeZoomRange(p,f);b&&(p=b.xaxis?b.xaxis:p,f=b.yaxis?b.yaxis:f)}var v={xaxis:p};a.config.chart.group||(v.yaxis=f),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&o.zoomCallback(p,f)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:d},"xy"!==i&&"y"!==i||(y=r.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=u[e]})),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:"panDragging",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection="left":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection="right":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection="up":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection="down")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var n=i.globals.isRangeBar?i.globals.minY:i.globals.minX,o=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(n,o)}},{key:"delayedPanScrolled",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;"left"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):"right"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:"panScrolled",value:function(t,e){var i=this.w,a=this.xyRatios,s=r.clone(i.globals.initialConfig.yaxis),n=a.xRatio,o=i.globals.minX,l=i.globals.maxX;i.globals.isRangeBar&&(n=a.invertedYRatio,o=i.globals.minY,l=i.globals.maxY),"left"===this.moveDirection?(t=o+i.globals.gridWidth/15*n,e=l+i.globals.gridWidth/15*n):"right"===this.moveDirection&&(t=o-i.globals.gridWidth/15*n,e=l-i.globals.gridWidth/15*n),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=l);var c={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new Xt(this.ctx).autoScaleY(this.ctx,s,{xaxis:c}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:"updateScrolledChart",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}])&&Ie(e.prototype,i),o}(Ee);function Re(t){return function(t){if(Array.isArray(t))return De(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return De(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?De(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function De(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=new Array(e);il||f>c?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):n.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):n.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var p=Math.round(g/h),x=Math.floor(f/d);u&&!n.config.xaxis.convertedCatToNumeric&&(p=Math.ceil(g/h),p-=1);var b=null,v=null,m=[],y=[];if(n.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),n.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return r.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return r.isNumber(t)}))})),n.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/l),A=f*(w.height/c);b=(v=this.closestInMultiArray(k,A,m,y)).index,p=v.j,null!==b&&(m=n.globals.seriesXvalues[b],p=(v=this.closestInArray(k,m)).index)}return n.globals.capturedSeriesIndex=null===b?-1:b,(!p||p<1)&&(p=0),n.globals.isBarHorizontal?n.globals.capturedDataPointIndex=x:n.globals.capturedDataPointIndex=p,{capturedSeries:b,j:n.globals.isBarHorizontal?x:p,hoverX:g,hoverY:f}}},{key:"closestInMultiArray",value:function(t,e,i,a){var s=this.w,r=0,n=null,o=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):n=0;var l=i[r][0],c=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a0?e:-1})),s=0;s0)for(var a=0;ai?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(".apexcharts-marker"))})),e}},{key:"hasMarkers",value:function(){return this.getElMarkers().length>0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(i.attrs.name,"
    "),e+="
    ".concat(i.val,"
    ")})),v.innerHTML=t+"
    ",m.innerHTML=e+"
    "};n?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML="",m.innerHTML=""):y()}else v.innerHTML="",m.innerHTML="";null!==f&&(a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=l.config.tooltip.z.title,a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=void 0!==f?f:""),n&&p[0]&&(null==h||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?p[0].parentNode.style.display="none":p[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:"toggleActiveInactiveSeries",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("apexcharts-active"),i.style.display=e.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",n="",o=null,l=null,c={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},h=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&"treemap"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var d=r;return r=a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?new St(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new et(this.ctx).formatDate,w:this.w}):a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,c):a.globals.xLabelFormatter(d,c),void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,c)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(o=h(a.globals.seriesZ[e][i],a)),n="function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,c):r,{val:Array.isArray(l)?l.join(" "):l,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(n)?n.join(" "):n,zVal:o}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,n=this.ttCtx.getElTooltip(),o=r.config.tooltip.custom;Array.isArray(o)&&o[e]&&(o=o[e]),n.innerHTML=o({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}])&&Ve(e.prototype,i),t}();function _e(t,e){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,n=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/n*e),null===s||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var o=r;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(o=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(o)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&f.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&f.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add("apexcharts-active");var a,s=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;t-=i.xaxisTooltip.getBoundingClientRect().width/2,isNaN(t)||(t+=e.globals.translateX,a=new f(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=a.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=s+"px")}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,n=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(n-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("apexcharts-active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=n+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),n=s.tooltipRect,o=null!==i?parseFloat(i):1,l=parseFloat(t)+o+5,c=parseFloat(e)+o/2;if(l>a.globals.gridWidth/2&&(l=l-n.ttWidth-o-10),l>a.globals.gridWidth-n.ttWidth-10&&(l=a.globals.gridWidth-n.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var h=s.getElGrid(),d=h.getBoundingClientRect();c=s.e.clientY+a.globals.translateY-d.top-n.ttHeight/2}else a.globals.isBarHorizontal||(n.ttHeight/2+c>a.globals.gridHeight&&(c=a.globals.gridHeight-n.ttHeight+a.globals.translateY),c<0&&(c=0));isNaN(l)||(l+=a.globals.translateX,r.style.left=l+"px",r.style.top=c+"px")}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),r=0;r0&&(c.setAttribute("r",o),c.setAttribute("cx",i),c.setAttribute("cy",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,o)}}},{key:"moveDynamicPointsOnHover",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,n=a.globals.pointsArray;e=new j(this.ctx).getActiveConfigSeriesIndex(!0);var o=i.tooltipUtil.getHoverMarkerSize(e);n[e]&&(s=n[e][t][0],r=n[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var c=0;c0?(l[c]&&l[c].setAttribute("r",o),l[c]&&l[c].setAttribute("cy",d)):l[c]&&l[c].setAttribute("r",0)}}if(this.moveXCrosshairs(s),!i.fixedTooltip){var u=r||a.globals.gridHeight;this.moveTooltip(s,u,o)}}},{key:"moveStickyTooltipOverBars",value:function(t){var e=this.w,i=this.ttCtx,a=e.globals.columnSeries?e.globals.columnSeries.length:e.globals.series.length,s=a>=2&&a%2==0?Math.floor(a/2):Math.floor(a/2)+1;e.globals.isBarHorizontal&&(s=new j(this.ctx).getActiveConfigSeriesIndex(!1,"desc")+1);var r=e.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(s,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"']")),n=r?parseFloat(r.getAttribute("cx")):0,o=r?parseFloat(r.getAttribute("cy")):0,l=r?parseFloat(r.getAttribute("barWidth")):0,c=r?parseFloat(r.getAttribute("barHeight")):0,h=i.getElGrid().getBoundingClientRect(),d=r.classList.contains("apexcharts-candlestick-area")||r.classList.contains("apexcharts-boxPlot-area");if(e.globals.isXNumeric?(r&&!d&&(n-=a%2!=0?l/2:0),r&&d&&e.globals.comboCharts&&(n-=l/2)):e.globals.isBarHorizontal||(n=i.xAxisTicksPositions[t-1]+i.dataPointsDividedWidth/2,isNaN(n)&&(n=i.xAxisTicksPositions[t]-i.dataPointsDividedWidth/2)),e.globals.isBarHorizontal?(o>e.globals.gridHeight/2&&(o-=i.tooltipRect.ttHeight),(o=o+e.config.grid.padding.top+c/3)+c>e.globals.gridHeight&&(o=e.globals.gridHeight-c)):e.config.tooltip.followCursor?o=i.e.clientY-h.top-i.tooltipRect.ttHeight/2:o+i.tooltipRect.ttHeight+15>e.globals.gridHeight&&(o=e.globals.gridHeight),o<-10&&(o=-10),e.globals.isBarHorizontal||this.moveXCrosshairs(n),!i.fixedTooltip){var u=o||e.globals.gridHeight;this.moveTooltip(n,u)}}}])&&_e(e.prototype,i),t}();function qe(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=new Array(e);i2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute("cx"),n=e.getAttribute("cy");if(null!==i&&null!==a&&(r=i,n=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if("radar"===s.config.chart.type){var o=this.ttCtx.getElGrid(),l=o.getBoundingClientRect();r=this.ttCtx.e.clientX-l.left}this.tooltipPosition.moveTooltip(r,n,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),n=e.config.markers.hover.size,o=0;o=0?t[e].setAttribute("r",i):t[e].setAttribute("r",0)}}}])&&Ze(e.prototype,i),t}();function Je(t,e){for(var i=0;io.globals.gridWidth/2&&(a=h-n.tooltipRect.ttWidth/2+u),n.w.config.tooltip.followCursor){var f=o.globals.dom.elWrap.getBoundingClientRect();a=o.globals.clientX-f.left-(a>o.globals.gridWidth/2?n.tooltipRect.ttWidth:0),s=o.globals.clientY-f.top-(s>o.globals.gridHeight/2?n.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,n=t.x,o=t.y,l=this.w,c=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx"),10),d=parseInt(s.paths.getAttribute("cy"),10),u=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,c.intersect){var g=r.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex"),10))}if(c.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!c.showOnIntersect&&l.config.tooltip.shared,e:a}),"mouseup"===a.type&&c.markerClick(a,e,i),l.globals.capturedSeriesIndex=e,l.globals.capturedDataPointIndex=i,n=h,o=d+l.globals.translateY-1.4*c.tooltipRect.ttHeight,c.w.config.tooltip.followCursor){var f=c.getElGrid().getBoundingClientRect();o=c.e.clientY+l.globals.translateY-f.top}u<0&&(o=d),c.marker.enlargeCurrentPoint(i,s.paths,n,o)}return{x:n,y:o}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,n=this.ttCtx,o=n.getElTooltip(),l=0,c=0,h=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var u=d.barHeight,g=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=g,r.globals.isBarHorizontal&&n.tooltipUtil.hasBars()||!r.config.tooltip.shared?(c=d.x,h=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=c):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(h)?h=r.globals.svgHeight-n.tooltipRect.ttHeight:h<0&&(h=0);var f=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),p=r.globals.isMultipleYAxis?r.config.yaxis[f]&&r.config.yaxis[f].reversed:r.config.yaxis[0].reversed;if(c+n.tooltipRect.ttWidth>r.globals.gridWidth&&!p?c-=n.tooltipRect.ttWidth:c<0&&(c=0),n.w.config.tooltip.followCursor){var x=n.getElGrid().getBoundingClientRect();h=n.e.clientY-x.top}null===n.tooltip&&(n.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?n.tooltipPosition.moveXCrosshairs(l+i/2):n.tooltipPosition.moveXCrosshairs(l)),!n.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&n.tooltipUtil.hasBars())&&(p&&(c-=n.tooltipRect.ttWidth)<0&&(c=0),!p||r.globals.isBarHorizontal&&n.tooltipUtil.hasBars()||(h=h+u-2*(r.globals.series[e][g]<0?u:0)),n.tooltipRect.ttHeight+h>r.globals.gridHeight?h=r.globals.gridHeight-n.tooltipRect.ttHeight+r.globals.translateY:(h=h+r.globals.translateY-n.tooltipRect.ttHeight/2)<0&&(h=0),o.style.left=c+r.globals.translateX+"px",o.style.top=h+"px")}},{key:"getBarTooltipXY",value:function(t){var e=t.e,i=t.opt,a=this.w,s=null,r=this.ttCtx,n=0,o=0,l=0,c=0,h=0,d=e.target.classList;if(d.contains("apexcharts-bar-area")||d.contains("apexcharts-candlestick-area")||d.contains("apexcharts-boxPlot-area")||d.contains("apexcharts-rangebar-area")){var u=e.target,g=u.getBoundingClientRect(),f=i.elGrid.getBoundingClientRect(),p=g.height;h=g.height;var x=g.width,b=parseInt(u.getAttribute("cx"),10),v=parseInt(u.getAttribute("cy"),10);c=parseFloat(u.getAttribute("barWidth"));var m="touchmove"===e.type?e.touches[0].clientX:e.clientX;s=parseInt(u.getAttribute("j"),10),n=parseInt(u.parentNode.getAttribute("rel"),10)-1;var y=u.getAttribute("data-range-y1"),w=u.getAttribute("data-range-y2");a.globals.comboCharts&&(n=parseInt(u.parentNode.getAttribute("data:realIndex"),10)),r.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:n,j:s,y1:y?parseInt(y,10):null,y2:w?parseInt(w,10):null,shared:!r.showOnIntersect&&a.config.tooltip.shared,e}),a.config.tooltip.followCursor?a.globals.isBarHorizontal?(o=m-f.left+15,l=v-r.dataPointsDividedHeight+p/2-r.tooltipRect.ttHeight/2):(o=a.globals.isXNumeric?b-x/2:b-r.dataPointsDividedWidth+x/2,l=e.clientY-f.top-r.tooltipRect.ttHeight/2-15):a.globals.isBarHorizontal?((o=b)0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var n=a.getElGrid().getBoundingClientRect(),o=(e-n.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],c=s.globals.minYArr[t]+(l-o);a.tooltipPosition.moveYCrosshairs(e-n.top),a.yaxisTooltipText[t].innerHTML=r(c),a.tooltipPosition.moveYAxisTooltip(t)}}}])&&Ke(e.prototype,i),t}();function ei(t,e){for(var i=0;i0&&this.addPathsEventListeners(g,h),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(h)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,n=this.tConfig.fixed.offsetY,o=this.tConfig.fixed.position.toLowerCase();return o.indexOf("right")>-1&&(r=r+t.globals.svgWidth-a+10),o.indexOf("bottom")>-1&&(n=n+t.globals.svgHeight-s-10),e.style.left=r+"px",e.style.top=n+"px",{x:r,y:n,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:"seriesHover",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e}))}},{key:"seriesHoverByContext",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,n=this.getElTooltip();n&&(i.tooltipRect={x:0,y:0,ttWidth:n.getBoundingClientRect().width,ttHeight:n.getBoundingClientRect().height},i.e=s,!i.tooltipUtil.hasBars()||r.globals.comboCharts||i.isBarShared||this.tConfig.onDatasetHover.highlightDataSeries&&new j(e).toggleSeriesOnHover(s,s.target.parentNode),i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}))}},{key:"axisChartsTooltips",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,n=s.elGrid.getBoundingClientRect(),o="touchmove"===a.type?a.touches[0].clientX:a.clientX,l="touchmove"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=o,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,ln.top+n.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var c=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(c)<0)return void this.handleMouseOut(s)}var h=this.getElTooltip(),d=this.getElXCrosshairs(),u=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if("mousemove"===a.type||"touchmove"===a.type||"mouseup"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add("apexcharts-active");var g=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&g.length&&this.ycrosshairs.classList.add("apexcharts-active"),u&&!this.showOnIntersect)this.handleStickyTooltip(a,o,l,s);else if("heatmap"===r.config.chart.type||"treemap"===r.config.chart.type){var f=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=f.x,i=f.y,h.style.left=e+"px",h.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var p=0;pl.width?this.handleMouseOut(a):null!==o?this.handleStickyCapturedSeries(t,o,a,n):(this.tooltipUtil.isXoverlap(n)||s.globals.isBarHorizontal)&&this.create(t,this,0,n,a.ttItems)}},{key:"handleStickyCapturedSeries",value:function(t,e,i,a){var s=this.w;this.tConfig.shared||null!==s.globals.series[e][a]?void 0!==s.globals.series[e][a]?this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1):this.tooltipUtil.isXoverlap(a)&&this.create(t,this,0,a,i.ttItems):this.handleMouseOut(i)}},{key:"deactivateHoverFilter",value:function(){for(var t=this.w,e=new f(this.ctx),i=t.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,n=this.w,o=e;"mouseup"===t.type&&this.markerClick(t,i,a),null===r&&(r=this.tConfig.shared);var l=this.tooltipUtil.hasMarkers(),c=this.tooltipUtil.getElBars();if(n.config.legend.tooltipHoverFormatter){var h=n.config.legend.tooltipHoverFormatter,d=Array.from(this.legendLabels);d.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}));for(var u=0;u0?o.marker.enlargePoints(a):o.tooltipPosition.moveDynamicPointsOnHover(a)),this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(c),this.barSeriesHeight>0)){var v=new f(this.ctx),m=n.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a);for(var y=0;y0&&(this.totalItems+=t[n].length);for(var o=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),l=0,c=0,h=function(s,n){var h=void 0,d=void 0,u=void 0,g=void 0,f=[],p=[],x=a.globals.comboCharts?e[s]:s;i.yRatio.length>1&&(i.yaxisIndex=x),i.isReversed=a.config.yaxis[i.yaxisIndex]&&a.config.yaxis[i.yaxisIndex].reversed;var b=i.graphics.group({class:"apexcharts-series",seriesName:r.escapeString(a.globals.seriesNames[x]),rel:s+1,"data:realIndex":x});i.ctx.series.addCollapsedClassToSeries(b,x);var v=i.graphics.group({class:"apexcharts-datalabels","data:realIndex":x}),m=0,y=0,w=i.initialPositions(l,c,h,d,u,g);c=w.y,m=w.barHeight,d=w.yDivision,g=w.zeroW,l=w.x,y=w.barWidth,h=w.xDivision,u=w.zeroH,i.yArrj=[],i.yArrjF=[],i.yArrjVal=[],i.xArrj=[],i.xArrjF=[],i.xArrjVal=[],1===i.prevY.length&&i.prevY[0].every((function(t){return isNaN(t)}))&&(i.prevY[0]=i.prevY[0].map((function(t){return u})),i.prevYF[0]=i.prevYF[0].map((function(t){return 0})));for(var k=0;k1?(i=l.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:o*parseInt(l.config.plotOptions.bar.columnWidth,10)/100,s=this.baseLineY[this.yaxisIndex]+(this.isReversed?l.globals.gridHeight:0)-(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=l.globals.padHorizontal+(i-o)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:n,barWidth:o,zeroH:s,zeroW:r}}},{key:"drawStackedBarPaths",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,n=t.x,o=t.y,l=t.yDivision,c=t.elSeries,h=this.w,d=o,u=i.i,g=i.j,f=0,p=0;p0){var x=r;this.prevXVal[u-1][g]<0?x=this.series[u][g]>=0?this.prevX[u-1][g]+f-2*(this.isReversed?f:0):this.prevX[u-1][g]:this.prevXVal[u-1][g]>=0&&(x=this.series[u][g]>=0?this.prevX[u-1][g]:this.prevX[u-1][g]-f+2*(this.isReversed?f:0)),e=x}else e=r;n=null===this.series[u][g]?e:e+this.series[u][g]/this.invertedYRatio-2*(this.isReversed?this.series[u][g]/this.invertedYRatio:0);var b=this.barHelpers.getBarpaths({barYPosition:d,barHeight:a,x1:e,x2:n,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:u,j:g,w:h});return this.barHelpers.barBackground({j:g,i:u,y1:d,y2:a,elSeries:c}),o+=l,{pathTo:b.pathTo,pathFrom:b.pathFrom,x:n,y:o}}},{key:"drawStackedColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,n=t.zeroH,o=(t.strokeWidth,t.elSeries),l=this.w,c=e.i,h=e.j,d=e.bc;if(l.globals.isXNumeric){var u=l.globals.seriesX[c][h];u||(u=0),i=(u-l.globals.minX)/this.xRatio-r/2}for(var g,f=i,p=0,x=0;x0&&!l.globals.isXNumeric||c>0&&l.globals.isXNumeric&&l.globals.seriesX[c-1][h]===l.globals.seriesX[c][h]){var b,v,m=Math.min(this.yRatio.length+1,c+1);if(void 0!==this.prevY[c-1])for(var y=1;y=0?v-p+2*(this.isReversed?p:0):v;break}if(this.prevYVal[c-w][h]>=0){b=this.series[c][h]>=0?v:v+p-2*(this.isReversed?p:0);break}}void 0===b&&(b=l.globals.gridHeight),g=this.prevYF[0].every((function(t){return 0===t}))&&this.prevYF.slice(1,c).every((function(t){return t.every((function(t){return isNaN(t)}))}))?l.globals.gridHeight-n:b}else g=l.globals.gridHeight-n;a=g-this.series[c][h]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[c][h]/this.yRatio[this.yaxisIndex]:0);var k=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:r,y1:g,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,realIndex:e.realIndex,i:c,j:h,w:l});return this.barHelpers.barBackground({bc:d,j:h,i:c,x1:f,x2:r,elSeries:o}),i+=s,{pathTo:k.pathTo,pathFrom:k.pathFrom,x:l.globals.isXNumeric?i-s:i,y:a}}}])&&li(e.prototype,i),o}(J);function gi(t){return(gi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function fi(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function pi(t){for(var e=1;e0&&(i.visibleI=i.visibleI+1),i.yRatio.length>1&&(i.yaxisIndex=m);var w=i.barHelpers.initialPositions();x=w.y,g=w.barHeight,h=w.yDivision,u=w.zeroW,p=w.x,f=w.barWidth,c=w.xDivision,d=w.zeroH,v.push(p+f/2);for(var k=s.group({class:"apexcharts-datalabels","data:realIndex":m}),A=function(e){var s=i.barHelpers.getStrokeWidth(o,e,m),r=null,l={indexes:{i:o,j:e,realIndex:m},x:p,y:x,strokeWidth:s,elSeries:y};r=i.isHorizontal?i.drawHorizontalBoxPaths(pi(pi({},l),{},{yDivision:h,barHeight:g,zeroW:u})):i.drawVerticalBoxPaths(pi(pi({},l),{},{xDivision:c,barWidth:f,zeroH:d})),x=r.y,p=r.x,e>0&&v.push(p+f/2),b.push(x),r.pathTo.forEach((function(l,c){var h=!i.isBoxPlot&&i.candlestickOptions.wick.useFillColor?r.color[c]:a.globals.stroke.colors[o],d=n.fillPath({seriesNumber:m,dataPointIndex:e,color:r.color[c],value:t[o][e]});i.renderSeries({realIndex:m,pathFill:d,lineFill:h,j:e,i:o,pathFrom:r.pathFrom,pathTo:l,strokeWidth:s,elSeries:y,x:p,y:x,series:t,barHeight:g,barWidth:f,elDataLabelsWrap:k,visibleSeries:i.visibleI,type:a.config.chart.type})}))},S=0;Sv.c&&(d=!1);var w=Math.min(v.o,v.c),k=Math.max(v.o,v.c),A=v.m;o.globals.isXNumeric&&(i=(o.globals.seriesX[b][h]-o.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[c][h]||null===this.series[c][h]?(w=r,k=r):(w=r-w/x,k=r-k/x,m=r-v.h/x,y=r-v.l/x,A=r-v.m/x);var C=l.move(S,r),P=l.move(S+s/2,w);return o.globals.previousPaths.length>0&&(P=this.getPreviousPath(b,h,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,m)+l.line(S+s/4,m)+l.line(S+s-s/4,m)+l.line(S+s/2,m)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+n/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+"z"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,m)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-n/2)],P+=l.move(S,w),o.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:P,x:i,y:k,barXPosition:S,color:this.isBoxPlot?p:d?[u]:[g]}}},{key:"drawHorizontalBoxPaths",value:function(t){var e=t.indexes,i=(t.x,t.y),a=t.yDivision,s=t.barHeight,r=t.zeroW,n=t.strokeWidth,o=this.w,l=new f(this.ctx),c=e.i,h=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var u=this.invertedYRatio,g=e.realIndex,p=this.getOHLCValue(g,h),x=r,b=r,v=Math.min(p.o,p.c),m=Math.max(p.o,p.c),y=p.m;o.globals.isXNumeric&&(i=(o.globals.seriesX[g][h]-o.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[c][h]||null===this.series[c][h]?(v=r,m=r):(v=r+v/u,m=r+m/u,x=r+p.h/u,b=r+p.l/u,y=r+p.m/u);var k=l.move(r,w),A=l.move(v,w+s/2);return o.globals.previousPaths.length>0&&(A=this.getPreviousPath(g,h,!0)),k=[l.move(v,w)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s/2-s/4)+l.line(x,w+s/2+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(v+n/2,w),l.move(y,w)+l.line(y,w+s)+l.line(m,w+s)+l.line(m,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s-s/4)+l.line(b,w+s/4)+l.line(b,w+s/2)+l.line(m,w+s/2)+l.line(m,w)+l.line(y,w)+"z"],A+=l.move(v,w),o.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:m,y:i,barYPosition:w,color:d}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}])&&vi(e.prototype,i),o}(J);function Ai(t){return function(t){if(Array.isArray(t))return Si(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Si(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Si(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Si(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=new Array(e);i0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:"getShadeColor",value:function(t,e,i,a){var s=this.w,n=1,o=s.config.plotOptions[t].shadeIntensity,l=this.determineColor(t,e,i);s.globals.hasNegs||a?n=s.config.plotOptions[t].reverseNegativeShade?l.percent<0?l.percent/100*(1.25*o):(1-l.percent/100)*(1.25*o):l.percent<=0?1-(1+l.percent/100)*o:(1-l.percent/100)*o:(n=1-l.percent/100,"treemap"===t&&(n=(1-l.percent/100)*(1.25*o)));var c=l.color,h=new r;return s.config.plotOptions[t].enableShades&&(c="dark"===this.w.config.theme.mode?r.hexToRgba(h.shadeColor(-1*n,l.color),s.config.fill.opacity):r.hexToRgba(h.shadeColor(n,l.color),s.config.fill.opacity)),{color:c,colorProps:l}}},{key:"determineColor",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],n=r.colorScale.inverse?i:e;r.distributed&&"treemap"===a.config.chart.type&&(n=i);var o=a.globals.colors[n],l=null,c=Math.min.apply(Math,Ai(a.globals.series[e])),h=Math.max.apply(Math,Ai(a.globals.series[e]));r.distributed||"heatmap"!==t||(c=a.globals.minY,h=a.globals.maxY),void 0!==r.colorScale.min&&(c=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(h)+Math.abs(c),u=100*s/(0===d?d-1e-6:d);return r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){o=t.color,l=t.foreColor?t.foreColor:null,c=t.from,h=t.to;var i=Math.abs(h)+Math.abs(c);u=100*s/(0===i?i-1e-6:i)}})),{color:o,foreColor:l,percent:u}}},{key:"calculateDataLabels",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,n=t.colorProps,o=t.fontSize,l=this.w.config.dataLabels,c=new f(this.ctx),h=new R(this.ctx),d=null;if(l.enabled){d=c.group({class:"apexcharts-data-labels"});var u=l.offsetX,g=l.offsetY,p=i+u,x=a+parseFloat(l.style.fontSize)/3+g;h.plotDataLabelsText({x:p,y:x,text:e,i:s,j:r,color:n.foreColor,parent:d,fontSize:o,dataLabelsConfig:l})}return d}},{key:"addListeners",value:function(t){var e=new f(this.ctx);t.node.addEventListener("mouseenter",e.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",e.pathMouseLeave.bind(this,t)),t.node.addEventListener("mousedown",e.pathMouseDown.bind(this,t))}}])&&Ci(e.prototype,i),t}();function Li(t,e){for(var i=0;i=0;l?d++:d--){var u=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:r.escapeString(e.globals.seriesNames[d]),rel:d+1,"data:realIndex":d});if(this.ctx.series.addCollapsedClassToSeries(u,d),e.config.chart.dropShadow.enabled){var g=e.config.chart.dropShadow;new c(this.ctx).dropShadow(u,g,d)}for(var p=0,x=e.config.plotOptions.heatmap.shadeIntensity,b=0;b-1&&this.pieClicked(g),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*x/this.fullAngle+"%";if(0!==x&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+n):a+n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(l=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(l)>this.fullAngle&&(l-=this.fullAngle);var c=Math.PI*(l-90)/180,h=e.centerX+s*Math.cos(o),d=e.centerY+s*Math.sin(o),u=e.centerX+s*Math.cos(c),g=e.centerY+s*Math.sin(c),f=r.polarToCartesian(e.centerX,e.centerY,e.donutSize,l),p=r.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),x=a>180?1:0,b=["M",h,d,"A",s,s,0,x,1,u,g];return"donut"===e.chartType?[].concat(b,["L",f.x,f.y,"A",e.donutSize,e.donutSize,0,x,0,p.x,p.y,"L",h,d,"z"]).join(" "):"pie"===e.chartType||"polarArea"===e.chartType?[].concat(b,["L",e.centerX,e.centerY,"L",h,d]).join(" "):[].concat(b).join(" ")}},{key:"drawPolarElements",value:function(t){var e=this.w,i=new Xt(this.ctx),a=new f(this.ctx),s=new Ei(this.ctx),r=a.group(),n=a.group(),o=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=o.result.reverse(),c=o.result.length;this.maxY=o.niceMax;for(var h=e.globals.radialSize,d=h/(c-1),u=0;u1&&t.total.show&&(s=t.total.color);var n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,r),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==n&&(n.textContent=e),null!==o&&(o.textContent=i),null!==n&&(n.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==r&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(t){var e=this,i=this.w,a=new f(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var n=[],o=360/i.globals.series.length,l=0;l1)n&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!n)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var c=s.globals.selectedDataPoints[0],h=s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(c));this.printDataLabelsInner(h,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}])&&Mi(e.prototype,i),t}();function zi(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function Xi(t){for(var e=1;e0&&(x=e.getPreviousPath(o));for(var b=0;b=10?t.x>0?(i="start",a+=10):t.x<0&&(i="end",a-=10):i="middle",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var p=i.drawPath({d:"",stroke:d,strokeWidth:n*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var x=h.dropShadow;s.dropShadow(p,x)}l.add(p),p.attr("id","apexcharts-radialbarTrack-"+o),this.animatePaths(p,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:u,size:t.size,i:o,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new f(this.ctx),a=new M(this.ctx),s=new c(this.ctx),n=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var l=e.config.plotOptions.radialBar.hollow.background,h=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,d=h-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(l=this.drawHollowImage(t,n,h,l));var u=this.drawHollow({size:d,centerX:t.centerX,centerY:t.centerY,fill:l||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var g=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(u,g)}var p=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(p=0);var x=null;this.radialDataLabels.show&&(x=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:h,centerX:t.centerX,centerY:t.centerY,opacity:p})),"back"===e.config.plotOptions.radialBar.hollow.position&&(n.add(u),x&&n.add(x));var b=!1;e.config.plotOptions.radialBar.inverseOrder&&(b=!0);for(var v=b?t.series.length-1:0;b?v>=0:v100?100:t.series[v])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*r.negToZero(e.globals.previousPaths[v])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var P=S-w,L=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[v]:e.config.stroke.dashArray,T=i.drawPath({d:"",stroke:y,strokeWidth:o,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+v,strokeDashArray:L});if(f.setAttrs(T.node,{"data:angle":P,"data:value":t.series[v]}),e.config.chart.dropShadow.enabled){var O=e.config.chart.dropShadow;s.dropShadow(T,O,v)}s.setSelectionFilter(T,0,v),this.addListeners(T,this.radialDataLabels),m.add(T),T.attr({index:0,j:v});var E=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(E=e.config.chart.animations.speed),e.globals.dataChanged&&(E=e.config.chart.animations.dynamicAnimation.speed),this.animDur=E/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(T,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:v,totalItems:2,animBeginArr:this.animBeginArr,dur:E,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:n,elHollow:u,dataLabels:x}}},{key:"drawHollow",value:function(t){var e=new f(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,n=new M(this.ctx),o=r.randomId(),l=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)n.clippedImgArea({width:i,height:i,image:l,patternID:"pattern".concat(s.globals.cuid).concat(o)}),a="url(#pattern".concat(s.globals.cuid).concat(o,")");else{var c=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===c&&void 0===h){var d=s.globals.dom.Paper.image(l).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(d)}else{var u=s.globals.dom.Paper.image(l).loaded((function(e){this.move(t.centerX-c/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(c,h)}));e.add(u)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}])&&Hi(e.prototype,i),o}(Ii);function Vi(t,e){for(var i=0;i0&&parseInt(n.realIndex,10)===parseInt(a,10)&&("line"===n.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):"area"===n.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e=t.i,i=t.series,a=t.prevY,s=t.lineYPosition,r=this.w;if(void 0!==i[e][0])a=(s=r.config.chart.stacked&&e>0?this.lineCtx.prevSeriesY[e-1][0]:this.lineCtx.zeroY)-i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(r.config.chart.stacked&&e>0&&void 0===i[e][0])for(var n=e-1;n>=0;n--)if(null!==i[n][0]&&void 0!==i[n][0]){a=s=this.lineCtx.prevSeriesY[n][0];break}return{prevY:a,lineYPosition:s}}}])&&Vi(e.prototype,i),t}();function _i(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function Ui(t){for(var e=1;e0&&(g=(a.globals.seriesX[h][0]-a.globals.minX)/this.xRatio),u.push(g);var p,b=g,v=b,m=this.zeroY;m=this.lineHelpers.determineFirstPrevY({i:c,series:t,prevY:m,lineYPosition:0}).prevY,d.push(m),p=m;var y=this._calculatePathsFrom({series:t,i:c,realIndex:h,prevX:v,prevY:m}),w=this._iterateOverDataPoints({series:t,realIndex:h,i:c,x:g,y:1,pX:b,pY:p,pathsFrom:y,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:u,yArrj:d});this._handlePaths({type:r,realIndex:h,i:c,paths:w}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),l.push(this.elSeries)}if(a.config.chart.stacked)for(var k=l.length;k>0;k--)n.add(l[k-1]);else for(var A=0;A1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||"end"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",seriesName:r.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var n=t[e].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":n,rel:e+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(t){var e,i,a,s,r=t.series,n=t.i,o=t.realIndex,l=t.prevX,c=t.prevY,h=this.w,d=new f(this.ctx);if(null===r[n][0]){for(var u=0;u0){var g=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:o});a=g.pathFromLine,s=g.pathFromArea}return{prevX:l,prevY:c,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(t){var e=t.type,i=t.realIndex,a=t.i,s=t.paths,r=this.w,n=new f(this.ctx),o=new M(this.ctx);this.prevSeriesY.push(s.yArrj),r.globals.seriesXvalues[i]=s.xArrj,r.globals.seriesYvalues[i]=s.yArrj;var l=r.config.forecastDataPoints;if(l.count>0){var c=r.globals.seriesXvalues[i][r.globals.seriesXvalues[i].length-l.count-1],h=n.drawRect(c,0,r.globals.gridWidth,r.globals.gridHeight,0);r.globals.dom.elForecastMask.appendChild(h.node);var d=n.drawRect(0,0,c,r.globals.gridHeight,0);r.globals.dom.elNonForecastMask.appendChild(d.node)}this.pointsChart||r.globals.delayedElements.push({el:this.elPointsMain.node,index:i});var u={i:a,realIndex:i,animationDelay:a,initialSpeed:r.config.chart.animations.speed,dataChangeSpeed:r.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(e)};if("area"===e)for(var g=o.fillPath({seriesNumber:i}),p=0;p0){var k=n.renderPaths(y);k.node.setAttribute("stroke-dasharray",l.dashArray),l.strokeWidth&&k.node.setAttribute("stroke-width",l.strokeWidth),this.elSeries.add(k),k.attr("clip-path","url(#forecastMask".concat(r.globals.cuid,")")),w.attr("clip-path","url(#nonForecastMask".concat(r.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(t){for(var e=t.series,i=t.realIndex,a=t.i,s=t.x,n=t.y,o=t.pX,l=t.pY,c=t.pathsFrom,h=t.linePaths,d=t.areaPaths,u=t.seriesIndex,g=t.lineYPosition,p=t.xArrj,x=t.yArrj,b=this.w,v=new f(this.ctx),m=this.yRatio,y=c.prevY,w=c.linePath,k=c.areaPath,A=c.pathFromLine,S=c.pathFromArea,C=r.isNumber(b.globals.minYArr[i])?b.globals.minYArr[i]:b.globals.minY,P=b.globals.dataPoints>1?b.globals.dataPoints-1:b.globals.dataPoints,L=0;L0&&b.globals.collapsedSeries.length-1){e--;break}return e>=0?e:0}(a-1)][L+1]:this.zeroY,n=T?g-C/m[this.yaxisIndex]+2*(this.isReversed?C/m[this.yaxisIndex]:0):g-e[a][L+1]/m[this.yaxisIndex]+2*(this.isReversed?e[a][L+1]/m[this.yaxisIndex]:0),p.push(s),x.push(n);var E=this.lineHelpers.calculatePoints({series:e,x:s,y:n,realIndex:i,i:a,j:L,prevY:y}),M=this._createPaths({series:e,i:a,realIndex:i,j:L,x:s,y:n,pX:o,pY:l,linePath:w,areaPath:k,linePaths:h,areaPaths:d,seriesIndex:u});d=M.areaPaths,h=M.linePaths,o=M.pX,l=M.pY,k=M.areaPath,w=M.linePath,this.appendPathFrom&&(A+=v.line(s,this.zeroY),S+=v.line(s,this.zeroY)),this.handleNullDataPoints(e,E,a,L,i),this._handleMarkersAndLabels({pointsPos:E,series:e,x:s,y:n,prevY:y,i:a,j:L,realIndex:i})}return{yArrj:x,xArrj:p,pathFromArea:S,areaPaths:d,pathFromLine:A,linePaths:h}}},{key:"_handleMarkersAndLabels",value:function(t){var e=t.pointsPos,i=(t.series,t.x,t.y,t.prevY,t.i),a=t.j,s=t.realIndex,r=this.w,n=new R(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,a,{realIndex:s,pointsPos:e,zRatio:this.zRatio,elParent:this.elPointsMain});else{r.globals.series[i].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var o=this.markers.plotChartMarkers(e,s,a+1);null!==o&&this.elPointsMain.add(o)}var l=n.drawDataLabel(e,s,a+1,null);null!==l&&this.elDataLabelsWrap.add(l)}},{key:"_createPaths",value:function(t){var e=t.series,i=t.i,a=t.realIndex,s=t.j,r=t.x,n=t.y,o=t.pX,l=t.pY,c=t.linePath,h=t.areaPath,d=t.linePaths,u=t.areaPaths,g=t.seriesIndex,p=this.w,x=new f(this.ctx),b=p.config.stroke.curve,v=this.areaBottomY;if(Array.isArray(p.config.stroke.curve)&&(b=Array.isArray(g)?p.config.stroke.curve[g[i]]:p.config.stroke.curve[i]),"smooth"===b){var m=.35*(r-o);p.globals.hasNullValues?(null!==e[i][s]&&(null!==e[i][s+1]?(c=x.move(o,l)+x.curve(o+m,l,r-m,n,r+1,n),h=x.move(o+1,l)+x.curve(o+m,l,r-m,n,r+1,n)+x.line(r,v)+x.line(o,v)+"z"):(c=x.move(o,l),h=x.move(o,l)+"z")),d.push(c),u.push(h)):(c+=x.curve(o+m,l,r-m,n,r,n),h+=x.curve(o+m,l,r-m,n,r,n)),o=r,l=n,s===e[i].length-2&&(h=h+x.curve(o,l,r,n,r,v)+x.move(r,n)+"z",p.globals.hasNullValues||(d.push(c),u.push(h)))}else{if(null===e[i][s+1]){c+=x.move(r,n);var y=p.globals.isXNumeric?(p.globals.seriesX[a][s]-p.globals.minX)/this.xRatio:r-this.xDivision;h=h+x.line(y,v)+x.move(r,n)+"z"}null===e[i][s]&&(c+=x.move(r,n),h+=x.move(r,v)),"stepline"===b?(c=c+x.line(r,null,"H")+x.line(null,n,"V"),h=h+x.line(r,null,"H")+x.line(null,n,"V")):"straight"===b&&(c+=x.line(r,n),h+=x.line(r,n)),s===e[i].length-2&&(h=h+x.line(r,v)+x.move(r,n)+"z",d.push(c),u.push(h))}return{linePaths:d,areaPaths:u,pX:o,pY:l,linePath:c,areaPath:h}}},{key:"handleNullDataPoints",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var n=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==n&&this.elPointsMain.add(n)}}}])&&Zi(e.prototype,i),t}();function Ji(t,e){for(var i=0;ir-a&&l.width<=n-s){var c=o.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(-90 ".concat(c.x," ").concat(c.y,")"))}}},{key:"animateTreemap",value:function(t,e,i,a){var s=new o(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}])&&Ji(e.prototype,i),t}();function Ki(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function ta(t){for(var e=1;e5e4&&(a.globals.disableZoomOut=!0);var n=s.getTimeUnitsfromTimestamp(t,e,this.utc),o=a.globals.gridWidth/r,l=o/24,c=l/60,h=c/60,d=Math.floor(24*r),u=Math.floor(1440*r),g=Math.floor(86400*r),f=Math.floor(r),p=Math.floor(r/30),x=Math.floor(r/365),b={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},v={firstVal:b,currentMillisecond:b.minMillisecond,currentSecond:b.minSecond,currentMinute:b.minMinute,currentHour:b.minHour,currentMonthDate:b.minDate,currentDate:b.minDate,currentMonth:b.minMonth,currentYear:b.minYear,daysWidthOnXAxis:o,hoursWidthOnXAxis:l,minutesWidthOnXAxis:c,secondsWidthOnXAxis:h,numberOfSeconds:g,numberOfMinutes:u,numberOfHours:d,numberOfDays:f,numberOfMonths:p,numberOfYears:x};switch(this.tickInterval){case"years":this.generateYearScale(v);break;case"months":case"half_year":this.generateMonthScale(v);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(v);break;case"hours":this.generateHourScale(v);break;case"minutes_fives":case"minutes":this.generateMinuteScale(v);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(v)}var m=this.timeScaleArray.map((function(t){var e={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?ta(ta({},e),{},{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?ta(ta({},e),{},{value:t.value}):"minute"===t.unit?ta(ta({},e),{},{value:t.value,minute:t.value}):"second"===t.unit?ta(ta({},e),{},{value:t.value,minute:t.minute,second:t.second}):t}));return m.filter((function(t){var e=1,s=Math.ceil(a.globals.gridWidth/120),r=t.value;void 0!==a.config.xaxis.tickAmount&&(s=a.config.xaxis.tickAmount),m.length>s&&(e=Math.floor(m.length/s));var n=!1,o=!1;switch(i.tickInterval){case"years":"year"===t.unit&&(n=!0);break;case"half_year":e=7,"year"===t.unit&&(n=!0);break;case"months":e=1,"year"===t.unit&&(n=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(n=!0),30===r&&(o=!0);break;case"months_days":e=10,"month"===t.unit&&(n=!0),30===r&&(o=!0);break;case"week_days":e=8,"month"===t.unit&&(n=!0);break;case"days":e=1,"month"===t.unit&&(n=!0);break;case"hours":"day"===t.unit&&(n=!0);break;case"minutes_fives":r%5!=0&&(o=!0);break;case"seconds_tens":r%10!=0&&(o=!0);break;case"seconds_fives":r%5!=0&&(o=!0)}if("hours"===i.tickInterval||"minutes_fives"===i.tickInterval||"seconds_tens"===i.tickInterval||"seconds_fives"===i.tickInterval){if(!o)return!0}else if((r%e==0||n)&&!o)return!0}))}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new he(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval="years";break;case t>800:this.tickInterval="half_year";break;case t>180:this.tickInterval="months";break;case t>90:this.tickInterval="months_fortnight";break;case t>60:this.tickInterval="months_days";break;case t>30:this.tickInterval="week_days";break;case t>2:this.tickInterval="days";break;case e>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,n=t.numberOfYears,o=e.minYear,l=0,c=new et(this.ctx),h="year";if(e.minDate>1||e.minMonth>0){var d=c.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);l=(c.determineDaysOfYear(e.minYear)-d+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:l,value:o,unit:h,year:o,month:r.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:l,value:o,unit:h,year:a,month:r.monthMod(i+1)});for(var u=o,g=l,f=0;f1){c=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*n,l=r.monthMod(a+1);var g=s+u,f=r.monthMod(l),p=l;0===l&&(d="year",p=g,f=1,g+=u+=1),this.timeScaleArray.push({position:c,value:p,unit:d,year:g,month:f})}else this.timeScaleArray.push({position:c,value:l,unit:d,year:s,month:r.monthMod(a)});for(var x=l+1,b=c,v=0,m=1;vo.determineDaysOfMonths(e+1,i)?(h=1,l="month",g=e+=1,e):e},u=(24-e.minHour)*s,g=c,f=d(h,i,a);0===e.minHour&&1===e.minDate?(u=0,g=r.monthMod(e.minMonth),l="month",h=e.minDate,n++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(u=0,c=e.minDate,g=c,f=d(h=c,i,a)),this.timeScaleArray.push({position:u,value:g,unit:l,year:this._getYear(a,f,0),month:r.monthMod(f),day:h});for(var p=u,x=0;xl.determineDaysOfMonths(e+1,s)&&(x=1,e+=1),{month:e,date:x}},d=function(t,e){return t>l.determineDaysOfMonths(e+1,s)?e+=1:e},u=60-(e.minMinute+e.minSecond/60),g=u*n,f=e.minHour+1,p=f+1;60===u&&(g=0,p=(f=e.minHour)+1);var x=i,b=d(x,a);this.timeScaleArray.push({position:g,value:f,unit:c,day:x,hour:p,year:s,month:r.monthMod(b)});for(var v=g,m=0;m=24&&(p=0,c="day",b=h(x+=1,b).month,b=d(x,b));var y=this._getYear(s,b,0);v=0===p&&0===m?u*n:60*n+v;var w=0===p?x:p;this.timeScaleArray.push({position:v,value:w,unit:c,hour:p,day:x,year:y,month:r.monthMod(b)}),p++}}},{key:"generateMinuteScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,n=t.currentDate,o=t.currentMonth,l=t.currentYear,c=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,d=t.numberOfMinutes,u=a+1,g=n,f=o,p=l,x=s,b=(60-i-e/1e3)*h,v=0;v=60&&(u=0,24===(x+=1)&&(x=0)),this.timeScaleArray.push({position:b,value:u,unit:"minute",hour:x,minute:u,day:g,year:this._getYear(p,f,0),month:r.monthMod(f)}),b+=c,u++}},{key:"generateSecondScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,n=t.currentDate,o=t.currentMonth,l=t.currentYear,c=t.secondsWidthOnXAxis,h=t.numberOfSeconds,d=i+1,u=a,g=n,f=o,p=l,x=s,b=(1e3-e)/1e3*c,v=0;v=60&&(d=0,++u>=60&&(u=0,24==++x&&(x=0))),this.timeScaleArray.push({position:b,value:d,unit:"second",hour:x,minute:u,second:d,day:g,year:this._getYear(p,f,0),month:r.monthMod(f)}),b+=c,d++}},{key:"createRawDateString",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),"minute"===t.unit?i+=":"+("0"+e).slice(-2):i+=":"+(t.minute?("0"+t.minute).slice(-2):"00"),"second"===t.unit?i+=":"+("0"+e).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new et(e.ctx),r=e.createRawDateString(t,a),n=s.getDate(s.parseDate(r));if(e.utc||(n=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var o="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(o=l.year),"month"===t.unit&&(o=l.month),"day"===t.unit&&(o=l.day),"hour"===t.unit&&(o=l.hour),"minute"===t.unit&&(o=l.minute),"second"===t.unit&&(o=l.second),a=s.formatDate(n,o)}else a=s.formatDate(n,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:"removeOverlappingTS",value:function(t){var e,i=this,a=new f(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,n=t.map((function(n,o){if(o>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,c=t[r].position;return n.position>c+l+10?(r=o,n):null}return n}));return n.filter((function(t){return null!==t}))}},{key:"_getYear",value:function(t,e,i){return t+Math.floor(e/12)+i}}])&&ia(e.prototype,i),t}();function sa(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function ra(t){for(var e=1;et.length)&&(e=t.length);for(var i=0,a=new Array(e);i-1,t.xyCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type||"boxPlot"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),f.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elAnnotations=t.dom.Paper.group().attr({class:"apexcharts-annotations"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elWrap.appendChild(t.dom.elLegendWrap),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},n={series:[],i:[]},o={series:[],i:[]},l={series:[],i:[]},c={series:[],i:[]},h={series:[],i:[]},d={series:[],i:[]};s.series.map((function(e,u){var g=0;void 0!==t[u].type?("column"===t[u].type||"bar"===t[u].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"),c.series.push(e),c.i.push(u),g++,i.globals.columnSeries=c.series):"area"===t[u].type?(n.series.push(e),n.i.push(u),g++):"line"===t[u].type?(r.series.push(e),r.i.push(u),g++):"scatter"===t[u].type?(o.series.push(e),o.i.push(u)):"bubble"===t[u].type?(l.series.push(e),l.i.push(u),g++):"candlestick"===t[u].type?(h.series.push(e),h.i.push(u),g++):"boxPlot"===t[u].type?(d.series.push(e),d.i.push(u),g++):console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble"),g>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(u))}));var u=new $i(this.ctx,e),g=new ki(this.ctx,e);this.ctx.pie=new Ii(this.ctx);var f=new ji(this.ctx);this.ctx.rangeBar=new dt(this.ctx,e);var p=new Ri(this.ctx),x=[];if(s.comboCharts){if(n.series.length>0&&x.push(u.draw(n.series,"area",n.i)),c.series.length>0)if(i.config.chart.stacked){var b=new ui(this.ctx,e);x.push(b.draw(c.series,c.i))}else this.ctx.bar=new J(this.ctx,e),x.push(this.ctx.bar.draw(c.series,c.i));if(r.series.length>0&&x.push(u.draw(r.series,"line",r.i)),h.series.length>0&&x.push(g.draw(h.series,h.i)),d.series.length>0&&x.push(g.draw(d.series,d.i)),o.series.length>0){var v=new $i(this.ctx,e,!0);x.push(v.draw(o.series,"scatter",o.i))}if(l.series.length>0){var m=new $i(this.ctx,e,!0);x.push(m.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":x=u.draw(s.series,"line");break;case"area":x=u.draw(s.series,"area");break;case"bar":a.chart.stacked?x=new ui(this.ctx,e).draw(s.series):(this.ctx.bar=new J(this.ctx,e),x=this.ctx.bar.draw(s.series));break;case"candlestick":case"boxPlot":x=new ki(this.ctx,e).draw(s.series);break;case"rangeBar":x=this.ctx.rangeBar.draw(s.series);break;case"heatmap":x=new Ti(this.ctx,e).draw(s.series);break;case"treemap":x=new Qi(this.ctx,e).draw(s.series);break;case"pie":case"donut":case"polarArea":x=this.ctx.pie.draw(s.series);break;case"radialBar":x=f.draw(s.series);break;case"radar":x=p.draw(s.series);break;default:x=u.draw(s.series)}return x}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=r.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();"%"===a?r.isNumber(i[0])&&(0===i[0].width&&(i=r.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if("auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===s){var n=r.getDimensions(this.el.parentNode);t.svgHeight=n[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),f.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),"%"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+"px"}t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};f.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new fe(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),n=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=r.getBoundingClientRect(s);n=o.bottom;var l=o.bottom-o.top;n=Math.max(2.05*t.globals.radialSize,l)}var c=n+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",c),t.config.chart.height&&String(t.config.chart.height).indexOf("%")>0||(e.dom.elWrap.style.height=c+"px",f.setAttrs(e.dom.Paper.node,{height:c}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=c+"px")}},{key:"coreCalculations",value:function(){new Ft(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new vt,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if("back"===e.config.xaxis.crosshairs.position&&new _t(this.ctx).drawXCrosshairs(),"back"===e.config.yaxis[0].crosshairs.position&&new _t(this.ctx).drawYCrosshairs(),"datetime"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new aa(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new x(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var t=this,e=this.w;if(e.config.chart.brush.enabled&&"function"!=typeof e.config.chart.events.selection){var i=e.config.chart.brush.targets||[e.config.chart.brush.target];i.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,"function"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),"function"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),e.config.chart.events.selection=function(t,a){i.forEach((function(t){var i=ApexCharts.getChartByID(t),s=r.clone(e.config.yaxis);if(e.config.chart.brush.autoScaleYaxis&&1===i.w.globals.series.length){var n=new Xt(i);s=n.autoScaleY(i,s,a)}var o=i.w.config.yaxis.reduce((function(t,e,a){return[].concat(function(t){if(Array.isArray(t))return oa(t)}(r=t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||function(t,e){if(t){if("string"==typeof t)return oa(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?oa(t,e):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[ra(ra({},i.w.config.yaxis[a]),{},{min:s[0].min,max:s[0].max})]);var r}),[]);i.ctx.updateHelpers._updateOptions({xaxis:{min:a.xaxis.min,max:a.xaxis.max},yaxis:o},!1,!1,!1,!1)}))}}}}])&&la(e.prototype,i),t}();function ha(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function da(t){for(var e=1;e1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],n=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(o){var l=[e.ctx];s&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(s,c){var h=s.w;if(h.globals.shouldAnimate=a,i||(h.globals.resized=!0,h.globals.dataChanged=!0,a&&s.series.getPreviousPaths()),t&&"object"===ga(t)&&(s.config=new xt(t),t=x.extendArrayProps(s.config,t,h),s.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,h.config=r.extend(h.config,t),n&&(h.globals.lastXAxis=t.xaxis?r.clone(t.xaxis):[],h.globals.lastYAxis=t.yaxis?r.clone(t.yaxis):[],h.globals.initialConfig=r.extend({},h.config),h.globals.initialSeries=r.clone(h.config.series),t.series))){for(var d=0;d2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var n,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(n=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(n=[{data:[]}]),o.config.series=n):o.config.series=t.slice(),a&&(o.globals.initialSeries=r.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:"_extendSeries",value:function(t,e){var i=this.w,a=i.config.series[e];return da(da({},i.config.series[e]),{},{name:t.name?t.name:a&&a.name,color:t.color?t.color:a&&a.color,type:t.type?t.type:a&&a.type,data:t.data?t.data:a&&a.data})}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(t,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"'], ").concat(s," circle[j='").concat(e,"'], ").concat(s," rect[j='").concat(e,"']")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"']")).members[0],"pie"!==i.config.chart.type&&"polarArea"!==i.config.chart.type&&"donut"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new f(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(t){var e=this.w;if(["min","max"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new gt(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:"forceYAxisUpdate",value:function(t){return t.chart&&t.chart.stacked&&"100%"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:"revertDefaultAxisMinMax",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)}(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}])&&fa(e.prototype,i),t}();function xa(t,e){for(var i=0;i2?s-2:0),n=2;n0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error("Not enough data to display or target element not found"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),"treemap"!==a.config.chart.type&&i.axes.drawAxis(a.config.chart.type,e.xyRatios),i.grid=new It(i);var n=i.grid.drawGrid();i.annotations=new O(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),"back"===a.config.grid.position&&n&&a.globals.dom.elGraphical.add(n.el);var o=new Et(t.ctx),l=new Dt(t.ctx);if(null!==n&&(o.xAxisLabelCorrections(n.xAxisTickWidth),l.setYAxisTextAlignments(),a.config.yaxis.map((function(t,e){-1===a.globals.ignoreYAxisIndexes.indexOf(e)&&l.yAxisTitleRotate(e,t.opposite)}))),"back"===a.config.annotations.position&&(a.globals.dom.Paper.add(a.globals.dom.elAnnotations),i.annotations.drawAxesAnnotations()),Array.isArray(e.elGraph))for(var c=0;c0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:"destroy",value:function(){var t,e;window.removeEventListener("resize",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=ya.get(t))&&(e.disconnect(),ya.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===r.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new ma(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],n=this.w;return n.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),n.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:"addEventListener",value:function(t,e){this.events.addEventListener(t,e)}},{key:"removeEventListener",value:function(t,e){this.events.removeEventListener(t,e)}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Ft(this.ctx);return e.getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Ft(this.ctx);return e.getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:"zoomX",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:"setLocale",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:"dataURI",value:function(t){return new Tt(this.ctx).dataURI(t)}},{key:"exportToCSV",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=new Tt(this.ctx);return e.exportToCSV(t)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:"_windowResizeHandler",value:function(){var t=this.w.config.chart.redrawOnWindowResize;"function"==typeof t&&(t=t()),t&&this._windowResize()}}])&&Aa(e.prototype,i),a&&Aa(e,a),t}()},600:()=>{window.TreemapSquared={},function(){"use strict";window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,n=r(t)/this.height,o=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,n=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,n)}return i}}function e(e,a,s,n,o){return n=void 0===n?0:n,o=void 0===o?0:o,function(t){var e,i,a=[];for(e=0;e=a(s,i))}(e,l=t[0],o)?(e.push(l),i(t.slice(1),e,s,n)):(c=s.cutArea(r(e),n),n.push(s.getCoordinates(e)),i(t,[],c,n)),n;n.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;e=0;a--)if(t[a])for(var s in e)t[a].prototype[s]=e[s];i.Set&&i.Set.inherit&&i.Set.inherit()},i.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,i.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&i.extend(e,t.extend),t.construct&&i.extend(t.parent||i.Container,t.construct),e},i.adopt=function(e){return e?e.instance?e.instance:((a="svg"==e.nodeName?e.parentNode instanceof t.SVGElement?new i.Nested:new i.Doc:"linearGradient"==e.nodeName?new i.Gradient("linear"):"radialGradient"==e.nodeName?new i.Gradient("radial"):i[d(e.nodeName)]?new(i[d(e.nodeName)]):new i.Element(e)).type=e.nodeName,a.node=e,e.instance=a,a instanceof i.Doc&&a.namespace().defs(),a.setData(JSON.parse(e.getAttribute("svgjs:data"))||{}),a):null;var a},i.prepare=function(){var t=e.getElementsByTagName("body")[0],a=(t?new i.Doc(t):i.adopt(e.documentElement).nested()).size(2,0);i.parser={body:t||e.documentElement,draw:a.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:a.polyline().node,path:a.path().node,native:i.create("svg")}},i.parser={native:i.create("svg")},e.addEventListener("DOMContentLoaded",(function(){i.parser.draw||i.prepare()}),!1),i.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},i.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new i.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),i.Color.test=function(t){return t+="",i.regex.isHex.test(t)||i.regex.isRgb.test(t)},i.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},i.Color.isColor=function(t){return i.Color.isRgb(t)||i.Color.test(t)},i.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},i.extend(i.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),i.PointArray=function(t,e){i.Array.call(this,t,e||[[0,0]])},i.PointArray.prototype=new i.Array,i.PointArray.prototype.constructor=i.PointArray;for(var a={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]}},s="mlhvqtcsaz".split(""),n=0,o=s.length;nl);return r},bbox:function(){return i.parser.draw||i.prepare(),i.parser.path.setAttribute("d",this.toString()),i.parser.path.getBBox()}}),i.Number=i.invent({create:function(t,e){this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(i.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof i.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new i.Number(t),new i.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new i.Number(t),new i.Number(this-t,this.unit||t.unit)},times:function(t){return t=new i.Number(t),new i.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new i.Number(t),new i.Number(this/t,this.unit||t.unit)},to:function(t){var e=new i.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new i.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new i.Number(this.destination).minus(this).times(t).plus(this):this}}}),i.Element=i.invent({create:function(t){this._stroke=i.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var a=g(this,t,e);return this.width(new i.Number(a.width)).height(new i.Number(a.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return"none"!=this.style("display")},toString:function(){return this.attr("id")},classes:function(){var t=this.attr("class");return null==t?[]:t.trim().split(i.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!=t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return i.get(this.attr(t))},parent:function(e){var a=this;if(!a.node.parentNode)return null;if(a=i.adopt(a.node.parentNode),!e)return a;for(;a&&a.node instanceof t.SVGElement;){if("string"==typeof e?a.matches(e):a instanceof e)return a;if(!a.node.parentNode||"#document"==a.node.parentNode.nodeName)return null;a=i.adopt(a.node.parentNode)}},doc:function(){return this instanceof i.Doc?this:this.parent(i.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var a=e.createElement("svg");if(!(t&&this instanceof i.Parent))return a.appendChild(t=e.createElement("svg")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),a.innerHTML.replace(/^/,"").replace(/<\/svg>$/,"");a.innerHTML=""+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var s=0,r=a.firstChild.childNodes.length;s":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},i.morph=function(t){return function(e,a){return new i.MorphObj(e,a).at(t)}},i.Situation=i.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new i.Number(t.duration).valueOf(),this.delay=new i.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),i.FX=i.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,a){"object"===r(t)&&(e=t.ease,a=t.delay,t=t.duration);var s=new i.Situation({duration:t||1e3,delay:a||0,ease:i.easing[e||"-"]||e});return this.queue(s),this},target:function(t){return t&&t instanceof i.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof i.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof i.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var a in e.animations){t=this.target()[a](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[a])||(e.animations[a]=[e.animations[a]]);for(var s=t.length;s--;)e.animations[a][s]instanceof i.Number&&(t[s]=new i.Number(t[s])),e.animations[a][s]=t[s].morph(e.animations[a][s])}for(var a in e.attrs)e.attrs[a]=new i.MorphObj(this.target().attr(a),e.attrs[a]);for(var a in e.styles)e.styles[a]=new i.MorphObj(this.target().style(a),e.styles[a]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on("finished.fx",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))})),this._callStart()},during:function(t){var e=this.last(),a=function(a){a.detail.situation==e&&t.call(this,a.detail.pos,i.morph(a.detail.pos),a.detail.eased,e)};return this.target().off("during.fx",a).on("during.fx",a),this.after((function(){this.off("during.fx",a)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,a=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),a[r].apply(a,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),a.attr.apply(a,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),a.style.apply(a,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var n=s.transforms.length;r=0;--a)this[m[a]]=null!=t[m[a]]?t[m[a]]:e[m[a]]},extend:{extract:function(){var t=f(this,0,1),e=(f(this,1,0),180/Math.PI*Math.atan2(t.y,t.x)-90);return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new i.Matrix(this)}},clone:function(){return new i.Matrix(this)},morph:function(t){return this.destination=new i.Matrix(t),this},multiply:function(t){return new i.Matrix(this.native().multiply(function(t){return t instanceof i.Matrix||(t=new i.Matrix(t)),t}(t).native()))},inverse:function(){return new i.Matrix(this.native().inverse())},translate:function(t,e){return new i.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=i.parser.native.createSVGMatrix(),e=m.length-1;e>=0;e--)t[m[e]]=this[m[e]];return t},toString:function(){return"matrix("+v(this.a)+","+v(this.b)+","+v(this.c)+","+v(this.d)+","+v(this.e)+","+v(this.f)+")"}},parent:i.Element,construct:{ctm:function(){return new i.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof i.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new i.Matrix(e)}return new i.Matrix(this.node.getScreenCTM())}}}),i.Point=i.invent({create:function(t,e){var i;i=Array.isArray(t)?{x:t[0],y:t[1]}:"object"===r(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=i.x,this.y=i.y},extend:{clone:function(){return new i.Point(this)},morph:function(t,e){return this.destination=new i.Point(t,e),this}}}),i.extend(i.Element,{point:function(t,e){return new i.Point(t,e).transform(this.screenCTM().inverse())}}),i.extend(i.Element,{attr:function(t,e,a){if(null==t){for(t={},a=(e=this.node.attributes).length-1;a>=0;a--)t[e[a].nodeName]=i.regex.isNumber.test(e[a].nodeValue)?parseFloat(e[a].nodeValue):e[a].nodeValue;return t}if("object"===r(t))for(var s in t)this.attr(s,t[s]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?i.defaults.attrs[t]:i.regex.isNumber.test(e)?parseFloat(e):e;"stroke-width"==t?this.attr("stroke",parseFloat(e)>0?this._stroke:null):"stroke"==t&&(this._stroke=e),"fill"!=t&&"stroke"!=t||(i.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof i.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),"number"==typeof e?e=new i.Number(e):i.Color.isColor(e)?e=new i.Color(e):Array.isArray(e)&&(e=new i.Array(e)),"leading"==t?this.leading&&this.leading(e):"string"==typeof a?this.node.setAttributeNS(a,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!=t&&"x"!=t||this.rebuild(t,e)}return this}}),i.extend(i.Element,{transform:function(t,e){var a;return"object"!==r(t)?(a=new i.Matrix(this).extract(),"string"==typeof t?a[t]:a):(a=new i.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(a=e?a.multiply(new i.Matrix(t)):new i.Matrix(t)),this.attr("transform",a))}}),i.extend(i.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(i.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split("(");return[e[0],e[1].split(i.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return"matrix"==e[0]?t.multiply(p(e[1])):t[e[0]].apply(t,e[1])}),new i.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),i.Transformation=i.invent({create:function(t,e){if(arguments.length>1&&"boolean"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var i=0,a=this.arguments.length;i=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return i.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var a=this.children(),s=0,r=a.length;s=0;a--)e.childNodes[a]instanceof t.SVGElement&&x(e.childNodes[a]);return i.adopt(e).id(i.eid(e.nodeName))}function b(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function v(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if("string"==typeof e||i.Color.isRgb(e)||e&&"function"==typeof e.fill)this.attr(t,e);else for(var a=l[t].length-1;a>=0;a--)null!=e[l[t][a]]&&this.attr(l.prefix(t,l[t][a]),e[l[t][a]]);return this},i.extend(i.Element,i.FX,e)})),i.extend(i.Element,i.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr("transform",new i.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new i.Number(t).plus(this instanceof i.FX?0:this.x()),!0)},dy:function(t){return this.y(new i.Number(t).plus(this instanceof i.FX?0:this.y()),!0)}}),i.extend(i.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),i.Set=i.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new i.Set(t)}}}),i.FX.Set=i.invent({create:function(t){this.set=t}}),i.Set.inherit=function(){var t=[];for(var e in i.Shape.prototype)"function"==typeof i.Shape.prototype[e]&&"function"!=typeof i.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){i.Set.prototype[t]=function(){for(var e=0,a=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),i.get=function(t){var a=e.getElementById(function(t){var e=(t||"").toString().match(i.regex.reference);if(e)return e[1]}(t)||t);return i.adopt(a)},i.select=function(t,a){return new i.Set(i.utils.map((a||e).querySelectorAll(t),(function(t){return i.adopt(t)})))},i.extend(i.Parent,{select:function(t){return i.select(t,this.node)}});var m="abcdef".split("");if("function"!=typeof t.CustomEvent){var y=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent("CustomEvent");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};y.prototype=t.Event.prototype,i.CustomEvent=y}else i.CustomEvent=t.CustomEvent;return i}(s,s.document)}.call(e,i,e,t))||(t.exports=a)},539:(t,e,i)=>{(e=i(922)(!1)).push([t.id,'.apexcharts-canvas {\n position: relative;\n user-select: none;\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\n}\n\n\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px;\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, .5);\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n}\n\n\n.apexcharts-inner {\n position: relative;\n}\n\n.apexcharts-text tspan {\n font-family: inherit;\n}\n\n.legend-mouseover-inactive {\n transition: 0.15s ease all;\n opacity: 0.20;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0;\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, 0.96);\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30, 30, 30, 0.8);\n}\n\n.apexcharts-tooltip * {\n font-family: inherit;\n}\n\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #ECEFF1;\n border-bottom: 1px solid #ddd;\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid #333;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n font-weight: 600;\n margin-left: 5px;\n}\n\n.apexcharts-tooltip-title:empty,\n.apexcharts-tooltip-text-y-label:empty,\n.apexcharts-tooltip-text-y-value:empty,\n.apexcharts-tooltip-text-goals-label:empty,\n.apexcharts-tooltip-text-goals-value:empty,\n.apexcharts-tooltip-text-z-value:empty {\n display: none;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n font-weight: 600;\n}\n\n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-goals-group, \n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n display: flex;\n}\n.apexcharts-tooltip-text-goals-label:not(:empty),\n.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px;\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0px;\n margin-right: 10px;\n border-radius: 50%;\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px;\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0 !important;\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-box, .apexcharts-custom-tooltip {\n padding: 4px 8px;\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse;\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0;\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: bold;\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px;\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777;\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: bold;\n display: block;\n margin-bottom: 5px;\n}\n\n.apexcharts-xaxistooltip {\n opacity: 0;\n padding: 9px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-left: -6px;\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-left: -7px;\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%;\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n top: 100%;\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #ECEFF1;\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #ECEFF1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-yaxistooltip {\n opacity: 0;\n padding: 4px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-top: -6px;\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-top: -7px;\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n left: 100%;\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n right: 100%;\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1;\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none;\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0;\n}\n\n.apexcharts-selection-rect {\n cursor: move;\n}\n\n.svg_select_boundingRect, .svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n}\n.apexcharts-selection-rect + g .svg_select_boundingRect,\n.apexcharts-selection-rect + g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden;\n}\n\n.apexcharts-selection-rect + g .svg_select_points_l,\n.apexcharts-selection-rect + g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible;\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2;\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon,\n.apexcharts-reset-icon,\n.apexcharts-pan-icon,\n.apexcharts-selection-icon,\n.apexcharts-menu-icon,\n.apexcharts-toolbar-custom-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6E8192;\n text-align: center;\n}\n\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-menu-icon svg {\n fill: #6E8192;\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(0.76)\n}\n\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\n fill: #f3f4f5;\n}\n\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\n fill: #008FFB;\n}\n\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\n fill: #333;\n}\n\n.apexcharts-selection-icon,\n.apexcharts-menu-icon {\n position: relative;\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px;\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-reset-icon,\n.apexcharts-menu-icon {\n transform: scale(0.85);\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n transform: scale(0.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px;\n}\n\n.apexcharts-pan-icon {\n transform: scale(0.62);\n position: relative;\n left: 1px;\n top: 0px;\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6E8192;\n stroke-width: 2;\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008FFB;\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333;\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0px 6px 2px 6px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: 0.15s ease all;\n pointer-events: none;\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: 0.15s ease all;\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee;\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n}\n\n@media screen and (min-width: 768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1;\n }\n}\n\n.apexcharts-datalabel.apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-pie-label,\n.apexcharts-datalabels,\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value {\n cursor: default;\n pointer-events: none;\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: 0.3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease;\n}\n\n.apexcharts-canvas .apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-gridline,\n.apexcharts-annotation-rect,\n.apexcharts-xaxis-annotation-label,\n.apexcharts-yaxis-annotation-label,\n.apexcharts-point-annotation-label,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-line,\n.apexcharts-zoom-rect,\n.apexcharts-toolbar svg,\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-radar-series path,\n.apexcharts-radar-series polygon {\n pointer-events: none;\n}\n\n\n/* markers */\n\n.apexcharts-marker {\n transition: 0.15s ease all;\n}\n\n@keyframes opaque {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n\n/* Resize generated styles */\n\n@keyframes resizeanim {\n from {\n opacity: 0;\n }\n to {\n opacity: 0;\n }\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n}\n\n.resize-triggers,\n.resize-triggers>div,\n.contract-trigger:before {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.resize-triggers>div {\n background: #eee;\n overflow: auto;\n}\n\n.contract-trigger:before {\n width: 200%;\n height: 200%;\n}',""]),t.exports=e},274:(t,e,i)=>{var a=i(379),s=i(539);"string"==typeof(s=s.__esModule?s.default:s)&&(s=[[t.id,s,""]]);var r=(a(t.id,s,{insert:"head",singleton:!1}),s.locals?s.locals:{});t.exports=r},379:(t,e,i)=>{"use strict";var a,s=function(){var t={};return function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(t){i=null}t[e]=i}return t[e]}}(),r={};function n(t,e,i){for(var a=0;a{t.exports=''},355:t=>{t.exports=''},686:t=>{t.exports=''},798:t=>{t.exports=''},323:t=>{t.exports=''},618:t=>{t.exports=''},688:t=>{t.exports=''}},e={};function i(a){if(e[a])return e[a].exports;var s=e[a]={id:a,exports:{}};return t[a].call(s.exports,s,s.exports,i),s.exports}return i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var a in e)i.o(e,a)&&!i.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i(978)})()})); \ No newline at end of file diff --git a/demo/dist/libs/apexcharts/dist/apexcharts.common.js b/demo/dist/libs/apexcharts/dist/apexcharts.common.js new file mode 100644 index 000000000..4ba319ca9 --- /dev/null +++ b/demo/dist/libs/apexcharts/dist/apexcharts.common.js @@ -0,0 +1,14 @@ +/*! + * ApexCharts v3.35.4 + * (c) 2018-2022 ApexCharts + * Released under the MIT License. + */ +"use strict";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;it.length)&&(e=t.length);for(var i=0,a=new Array(e);i>16,o=i>>8&255,n=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:"shadeColor",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:"bind",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:"isObject",value:function(t){return t&&"object"===i(t)&&!Array.isArray(t)&&null!=t}},{key:"is",value:function(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"}},{key:"listToArray",value:function(t){var e,i=[];for(e=0;ee.length?t:e}))),t.length>e.length?t:e}),0)}},{key:"hexToRgba",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"#999999",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;"#"!==t.substring(0,1)&&(t="#999999");var i=t.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"x",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi,e)}},{key:"negToZero",value:function(t){return t<0?0:t}},{key:"moveIndexInArray",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:"extractNumber",value:function(t){return parseFloat(t.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:"setELstyles",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:"isNumber",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:"isFloat",value:function(t){return Number(t)===t&&t%1!=0}},{key:"isSafari",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isIE11",value:function(){if(-1!==window.navigator.userAgent.indexOf("MSIE")||window.navigator.appVersion.indexOf("Trident/")>-1)return!0}},{key:"isIE",value:function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var a=t.indexOf("Edge/");return a>0&&parseInt(t.substring(a+5,t.indexOf(".",a)),10)}}]),t}(),b=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return r(t,[{key:"setEasingFunctions",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case"linear":t="-";break;case"easein":t="<";break;case"easeout":t=">";break;case"easeinout":t="<>";break;case"swing":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case"bounce":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case"elastic":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1};break;default:t="<>"}this.w.globals.easing=t}}},{key:"animateLine",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:"animateMarker",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:"animateCircle",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:"animateRect",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:"animatePathsGradually",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&"bar"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,"line"!==h.config.chart.type||h.globals.comboCharts?s:"stroke",r,o,n,l*c)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach((function(t){t.el.classList.remove("apexcharts-element-hidden")}))}},{key:"animationCompleted",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:"morphSVG",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr("pathFrom")),r||(r=t.attr("pathTo"));var c=function(t){return"radar"===h.config.chart.type&&(o=1),"M 0 ".concat(h.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=c()),(!r||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){x.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):"none"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),v=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getDefaultFilter",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size("120%","180%","-5%","-40%"),"none"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addNormalFilter",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains("apexcharts-marker")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addLightenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"addDarkenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"applyFilter",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(t,e);break;case"lighten":this.addLightenFilter(t,e,{intensity:a});break;case"darken":this.addDarkenFilter(t,e,{intensity:a})}}},{key:"addShadow",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,o=i.color,n=i.opacity,l=t.flood(Array.isArray(o)?o[e]:o,n).composite(t.sourceAlpha,"in").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:"dropShadow",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,o=e.color,n=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),x.isIE()&&"radialBar"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e=null;e=x.isSafari()||x.isFirefox()||x.isIE()?t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r):t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)),t}},{key:"setSelectionFilter",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute("selected",!0);var s=a.config.states.active.filter;"none"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:"_scaleFilterSize",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}]),t}(),m=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawLine",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"#a8a8a8",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"butt",l=this.w,h=l.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":o,"stroke-linecap":n});return h}},{key:"drawRect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"#fefefe",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w,d=c.globals.dom.Paper.rect();return d.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,"stroke-width":null!==n?n:0,stroke:null!==l?l:"none","stroke-dasharray":h}),d.node.setAttribute("fill",r),d}},{key:"drawPolygon",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#e1e1e1",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",s=this.w,r=s.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,"stroke-width":i});return r}},{key:"drawCircle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;t<0&&(t=0);var a=i.globals.dom.Paper.circle(2*t);return null!==e&&a.attr(e),a}},{key:"drawPath",value:function(t){var e=t.d,i=void 0===e?"":e,a=t.stroke,s=void 0===a?"#a8a8a8":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,f=void 0===u?null:u,p=t.strokeDashArray,x=void 0===p?0:p,b=this.w;return null===f&&(f=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,"fill-opacity":h,stroke:s,"stroke-opacity":d,"stroke-linecap":f,"stroke-width":o,"stroke-dasharray":x,class:g})}},{key:"group",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=e.globals.dom.Paper.group();return null!==t&&i.attr(t),i}},{key:"move",value:function(t,e){var i=["M",t,e].join(" ");return i}},{key:"line",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=["L",t,e].join(" "):"H"===i?a=["H",t].join(" "):"V"===i&&(a=["V",e].join(" ")),a}},{key:"curve",value:function(t,e,i,a,s,r){var o=["C",t,e,i,a,s,r].join(" ");return o}},{key:"quadraticCurve",value:function(t,e,i,a){return["Q",t,e,i,a].join(" ")}},{key:"arc",value:function(t,e,i,a,s,r,o){var n=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l="A";n&&(l="a");var h=[l,t,e,i,a,s,r,o].join(" ");return h}},{key:"renderPaths",value:function(t){var i,a=t.j,s=t.realIndex,r=t.pathFrom,o=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,f=t.className,p=t.shouldClipToGrid,x=void 0===p||p,m=t.bindEventsOnPaths,y=void 0===m||m,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new v(this.ctx),C=new b(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,M=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);M?i=r:(i=o,A.globals.animationEnded=!0);var T=A.config.stroke.dashArray,I=0;I=Array.isArray(T)?T[s]:A.config.stroke.dashArray;var z=this.drawPath({d:i,stroke:n,strokeWidth:l,fill:c,fillOpacity:1,classes:f,strokeLinecap:h,strokeDashArray:I});if(z.attr("index",s),x&&z.attr({"clip-path":"url(#gridRectMask".concat(A.globals.cuid,")")}),"none"!==A.config.states.normal.filter.type)S.getDefaultFilter(z,s);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(s))){var X=A.config.chart.dropShadow;S.dropShadow(z,X,s)}y&&(z.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,z)),z.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,z)),z.node.addEventListener("mousedown",this.pathMouseDown.bind(this,z))),z.attr({pathTo:o,pathFrom:r});var E={el:z,j:a,realIndex:s,pathFrom:r,pathTo:o,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(e(e({},E),{},{speed:g})),A.globals.dataChanged&&P&&M&&C.animatePathsGradually(e(e({},E),{},{speed:u})),z}},{key:"drawPattern",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#a8a8a8",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=this.w,o=r.globals.dom.Paper.pattern(e,i,(function(r){"horizontalLines"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):"verticalLines"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):"slantedLines"===t?r.line(0,0,e,i).stroke({color:a,width:s}):"squares"===t?r.rect(e,i).fill("none").stroke({color:a,width:s}):"circles"===t&&r.circle(e).fill("none").stroke({color:a,width:s})}));return o}},{key:"drawGradient",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf("#")&&(e=x.hexToRgba(e,a)),i.length<9&&0===i.indexOf("#")&&(i=x.hexToRgba(i,s));var d=0,g=1,u=1,f=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,f=void 0!==n[3]?n[3]/100:null);var p=!("donut"!==c.config.chart.type&&"pie"!==c.config.chart.type&&"polarArea"!==c.config.chart.type&&"bubble"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(p?"radial":"linear",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==f&&t.at(f,e,a)})):c.globals.dom.Paper.gradient(p?"radial":"linear",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),p){var b=c.globals.gridWidth/2,v=c.globals.gridHeight/2;"bubble"!==c.config.chart.type?r.attr({gradientUnits:"userSpaceOnUse",cx:b,cy:v,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?r.from(0,0).to(0,1):"diagonal"===t?r.from(0,0).to(1,1):"horizontal"===t?r.from(0,1).to(1,1):"diagonal2"===t&&r.from(1,0).to(0,1);return r}},{key:"getTextBasedOnMaxWidth",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),o=r.width/e.length,n=Math.floor(i/o);return i-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(".apexcharts-series path").members,h=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute("selected","true"),o="true",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if("true"===o){var d=i.config.states.active.filter;if("none"!==d)a.applyFilter(t,s,d.type,d.value);else if("none"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else if("none"!==i.config.states.active.filter.type)if("none"===i.config.states.hover.filter.type||i.globals.isTouchDevice)a.getDefaultFilter(t,s);else{g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}"function"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent("dataPointSelection",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(t){var e={};return t&&"function"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:"getTextRects",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:"start",fontSize:e,fontFamily:i,foreColor:"#fff",opacity:0});a&&o.attr("transform",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:"placeTextWithEllipsis",value:function(t,e,i){if("function"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+"...");t.textContent="."}}}],[{key:"setAttrs",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),y=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getStackedSeriesTotals",value:function(){var t=this.w,e=[];if(0===t.globals.series.length)return e;for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:"isSeriesNull",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:"seriesHaveSameValues",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:"getCategoryLabels",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:"getLargestSeries",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:"getLargestMarkerSize",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:"getSeriesTotals",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][o]0&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:"extendArrayProps",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e}return r(t,[{key:"setOrientations",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if("vertical"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4),"top"===t.label.position?s.setAttribute("y",parseFloat(s.getAttribute("y"))+r.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute("transform","rotate(-90 ".concat(n," ").concat(l,")"))}}}},{key:"addBackgroundToAnno",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;"vertical"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:"annotationsBackground",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(a,"']"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener("mouseenter",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener("mouseleave",i.label.mouseLeave.bind(t,i)),i.label.click&&n.node.addEventListener("click",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,"xaxis")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,"yaxis")})),e.config.annotations.points.map((function(t,e){i(t,e,"point")}))}},{key:"getY1Y2",value:function(t,e){var i,a="y1"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var o=s.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child("+(r+1)+")");o&&(i=parseFloat(o.getAttribute("y")))}else{var n;if(s.config.yaxis[e.yAxisIndex].logarithmic)n=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else n=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-n,!e.marker||void 0!==e.y&&null!==e.y||(i=0),s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=n)}return i}},{key:"getX1X2",value:function(t,e){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,o=(e.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(o=(s-e.x)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(e.x));var n=(e.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(n=(s-e.x2)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(e.x2)),void 0!==e.x&&null!==e.x||!e.marker||(o=i.globals.gridWidth),"x1"===t?o:n}},{key:"getStringX",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}}]),t}(),k=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addXaxisAnnotation",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2("x1",t),o=t.label.text,n=t.strokeDashArray;if(x.isNumber(r)){if(null===t.x2||void 0===t.x2){var l=this.annoCtx.graphics.drawLine(r+t.offsetX,0+t.offsetY,r+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,n,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getX1X2("x2",t))o){var h=o;o=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),o-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add("apexcharts-annotation-rect"),c.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d="right"===t.label.position?s.globals.gridWidth:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(null!=a?a:o)+t.label.offsetY-3,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});g.attr({rel:i}),e.appendChild(g.node)}},{key:"_getYAxisAnnotationWidth",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf("%")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:"drawYAxisAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),S=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addPointAnnotation",value:function(t,e,i){this.w;var a=this.helpers.getX1X2("x1",t),s=this.helpers.getY1Y2("y1",t);if(x.isNumber(a)){var r={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:"apexcharts-point-annotation-marker ".concat(t.marker.cssClass," ").concat(t.id?t.id:"")},o=this.annoCtx.graphics.drawMarker(a+t.marker.offsetX,s+t.marker.offsetY,r);e.appendChild(o.node);var n=t.label.text?t.label.text:"",l=this.annoCtx.graphics.drawText({x:a+t.label.offsetX,y:s+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});if(l.attr({rel:i}),e.appendChild(l.node),t.customSVG.SVG){var h=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+t.customSVG.cssClass});h.attr({transform:"translate(".concat(a+t.customSVG.offsetX,", ").concat(s+t.customSVG.offsetY,")")}),h.node.innerHTML=t.customSVG.SVG,e.appendChild(h.node)}if(t.image.path){var c=t.image.width?t.image.width:20,d=t.image.height?t.image.height:20;o=this.annoCtx.addImage({x:a+t.image.offsetX-c/2,y:s+t.image.offsetY-d/2,width:c,height:d,path:t.image.path,appendTo:".apexcharts-point-annotations"})}t.mouseEnter&&o.node.addEventListener("mouseenter",t.mouseEnter.bind(this,t)),t.mouseLeave&&o.node.addEventListener("mouseleave",t.mouseLeave.bind(this,t)),t.click&&o.node.addEventListener("click",t.click.bind(this,t))}}},{key:"drawPointAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var C={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},L=function(){function t(){a(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,radius:2,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return r(t,[{key:"init",value:function(){return{annotations:{position:"front",yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:"easeinout",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"transparent",locales:[C],defaultLocale:"en",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0},stacked:!1,stackType:"normal",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,rangeBarOverlap:!0,rangeBarGroupRows:!1,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal"}},bubble:{minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+"%"}},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+"%"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:""},textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:"#fff",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:"none",value:0}},hover:{filter:{type:"lighten",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.5}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0,fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",cssClass:"",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+": ":""}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss",second:"HH:mm:ss"}},group:{groups:[],style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"light",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),t}(),P=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.graphics=new m(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new w(this),this.xAxisAnnotations=new k(this),this.yAxisAnnotations=new A(this),this.pointsAnnotations=new S(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return r(t,[{key:"drawAxesAnnotations",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||"scatter"!==t.config.chart.type&&"bubble"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add("apexcharts-element-hidden"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:"drawTextAnnos",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:"addXaxisAnnotation",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:"addYaxisAnnotation",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:"addPointAnnotation",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:"addText",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,f=t.borderRadius,p=t.borderColor,x=t.appendTo,b=void 0===x?".apexcharts-annotations":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:n||"12px",fontWeight:h||"regular",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),M=L.globals.dom.baseEl.querySelector(b);M&&M.appendChild(P.node);var T=P.bbox();if(s){var I=this.graphics.drawRect(T.x-m,T.y-C,T.width+m+w,T.height+A+C,f,d||"transparent",1,g,p,u);M.insertBefore(I.node,P.node)}}},{key:"addImage",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?".apexcharts-annotations":g,f=i.globals.dom.Paper.image(a);f.size(h,d).move(r,n);var p=i.globals.dom.baseEl.querySelector(u);return p&&p.appendChild(f.node),f}},{key:"addXaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),h=l.childNodes.length+1,c=new L,d=Object.assign({},"xaxis"===s?c.xAxisAnnotation:"yaxis"===s?c.yAxisAnnotation:c.pointAnnotation),g=x.extend(d,e);switch(s){case"xaxis":this.addXaxisAnnotation(g,l,h);break;case"yaxis":this.addYaxisAnnotation(g,l,h);break;case"point":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(h,"']")),f=this.helpers.addBackgroundToAnno(u,g);return f&&l.insertBefore(f.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:x.randomId(),method:r,label:"addAnnotation",params:e}),a}},{key:"clearAnnotations",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");e.globals.memory.methodsToExec.map((function(t,i){"addText"!==t.label&&"addAnnotation"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=x.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:"removeAnnotation",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),M=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0}return r(t,[{key:"clippedImgArea",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,"pattern");m.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:n+"px",height:l+"px"});var c=document.createElementNS(e.globals.SVGNS,"image");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,"href",o),m.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:n+"px",height:l+"px"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:"getSeriesIndex",value:function(t){var e=this.w;return("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||"heatmap"===e.config.chart.type||"treemap"===e.config.chart.type?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),"function"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf("rgb")?o.length<9&&(h=x.hexToRgba(o,l)):o.indexOf("rgba")>-1&&(l=x.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),"pattern"===n&&(a=this.handlePatternFill(a,o,l,h)),"gradient"===n&&(s=this.handleGradientFill(o,l,this.seriesIndex)),"image"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:"";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber-1&&(c=x.getOpacityFromRGBA(h));var d=void 0===s.fill.gradient.opacityTo?e:Array.isArray(s.fill.gradient.opacityTo)?s.fill.gradient.opacityTo[i]:s.fill.gradient.opacityTo;if(void 0===s.fill.gradient.gradientToColors||0===s.fill.gradient.gradientToColors.length)a="dark"===s.fill.gradient.shade?n.shadeColor(-1*parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?x.rgb2hex(t):t):n.shadeColor(parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?x.rgb2hex(t):t);else if(s.fill.gradient.gradientToColors[r.seriesNumber]){var g=s.fill.gradient.gradientToColors[r.seriesNumber];a=g,g.indexOf("rgba")>-1&&(d=x.getOpacityFromRGBA(g))}else a=t;if(s.fill.gradient.inverseColors){var u=h;h=a,a=u}return h.indexOf("rgb")>-1&&(h=x.rgb2hex(h)),a.indexOf("rgb")>-1&&(a=x.rgb2hex(a)),o.drawGradient(l,h,a,c,d,r.size,s.fill.gradient.stops,s.fill.gradient.colorStops,i)}}]),t}(),T=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"setGlobalMarkerSize",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new m(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(o.globals.cuid,")")),Array.isArray(l.x))for(var g=0;g0:o.config.markers.size>0;if(p||r||d){x.isNumber(l.y[g])?f+=" w".concat(x.randomId()):f="apexcharts-nullpoint";var b=this.getMarkerConfig({cssClass:f,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(b.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(b.pointStrokeColor=o.config.series[n].data[u].strokeColor)),a&&(b.pSize=a),(s=c.drawMarker(l.x[g],l.y[g],b)).attr("rel",u),s.attr("j",u),s.attr("index",e),s.node.setAttribute("default-marker-size",b.pSize);var y=new v(this.ctx);y.setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:"getMarkerConfig",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.finishRadius,o=void 0===r?null:r,n=this.w,l=this.getMarkerStyle(i),h=n.globals.markers.size[i],c=n.config.markers;return null!==s&&c.discrete.length&&c.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(l.pointStrokeColor=t.strokeColor,l.pointFillColor=t.fillColor,h=t.size,l.pointShape=t.shape)})),{pSize:null===o?h:o,pRadius:c.radius,width:Array.isArray(c.width)?c.width[i]:c.width,height:Array.isArray(c.height)?c.height[i]:c.height,pointStrokeWidth:Array.isArray(c.strokeWidth)?c.strokeWidth[i]:c.strokeWidth,pointStrokeColor:l.pointStrokeColor,pointFillColor:l.pointFillColor,shape:l.pointShape||(Array.isArray(c.shape)?c.shape[i]:c.shape),class:e,pointStrokeOpacity:Array.isArray(c.strokeOpacity)?c.strokeOpacity[i]:c.strokeOpacity,pointStrokeDashArray:Array.isArray(c.strokeDashArray)?c.strokeDashArray[i]:c.strokeDashArray,pointFillOpacity:Array.isArray(c.fillOpacity)?c.fillOpacity[i]:c.fillOpacity,seriesIndex:i}}},{key:"addEvents",value:function(t){var e=this.w,i=new m(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener("click",e.config.markers.onClick),t.node.addEventListener("dblclick",e.config.markers.onDblClick),t.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:"getMarkerStyle",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),I=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return r(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(h.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),Array.isArray(o.x))for(var c=0;cp.maxBubbleRadius&&(f=p.maxBubbleRadius)}a.config.chart.animations.enabled||(u=f);var x=o.x[c],b=o.y[c];if(u=u||0,null!==b&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,b,u,f,r,d,e);h.add(v)}l.add(h)}}},{key:"drawPoint",value:function(t,e,i,a,s,r,o){var n=this.w,l=s,h=new b(this.ctx),c=new v(this.ctx),d=new M(this.ctx),g=new T(this.ctx),u=new m(this.ctx),f=g.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:l,dataPointIndex:r,finishRadius:"bubble"===n.config.chart.type||n.globals.comboCharts&&n.config.series[s]&&"bubble"===n.config.series[s].type?a:null});a=f.pSize;var p,x=d.fillPath({seriesNumber:s,dataPointIndex:r,color:f.pointFillColor,patternUnits:"objectBoundingBox",value:n.globals.series[s][o]});if("circle"===f.shape?p=u.drawCircle(i):"square"!==f.shape&&"rect"!==f.shape||(p=u.drawRect(0,0,f.width-f.pointStrokeWidth/2,f.height-f.pointStrokeWidth/2,f.pRadius)),n.config.series[l].data[r]&&n.config.series[l].data[r].fillColor&&(x=n.config.series[l].data[r].fillColor),p.attr({x:t-f.width/2-f.pointStrokeWidth/2,y:e-f.height/2-f.pointStrokeWidth/2,cx:t,cy:e,fill:x,"fill-opacity":f.pointFillOpacity,stroke:f.pointStrokeColor,r:a,"stroke-width":f.pointStrokeWidth,"stroke-dasharray":f.pointStrokeDashArray,"stroke-opacity":f.pointStrokeOpacity}),n.config.chart.dropShadow.enabled){var y=n.config.chart.dropShadow;c.dropShadow(p,y,s)}if(!this.initialAnim||n.globals.dataChanged||n.globals.resized)n.globals.animationEnded=!0;else{var w=n.config.chart.animations.speed;h.animateMarker(p,0,"circle"===f.shape?a:{width:f.width,height:f.height},w,n.globals.easing,(function(){window.setTimeout((function(){h.animationCompleted(p)}),100)}))}if(n.globals.dataChanged&&"circle"===f.shape)if(this.dynamicAnim){var k,A,S,C,L=n.config.chart.animations.dynamicAnimation.speed;null!=(C=n.globals.previousPaths[s]&&n.globals.previousPaths[s][o])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var P=0;Pn.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var f=n.globals.dataLabelsRects[a][u];(t>f.x+f.width+2||e>f.y+f.height+2||t+c4&&void 0!==arguments[4]?arguments[4]:2,r=this.w,o=new m(this.ctx),n=r.config.dataLabels,l=0,h=0,c=i,d=null;if(!n.enabled||!Array.isArray(t.x))return d;d=o.group({class:"apexcharts-data-labels"});for(var g=0;ge.globals.gridWidth+p.textRects.width+10)&&(n="");var x=e.globals.dataLabels.style.colors[r];(("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(x=e.globals.dataLabels.style.colors[o]),"function"==typeof x&&(x=x({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(x=g);var b=d.offsetX,y=d.offsetY;if("bar"!==e.config.chart.type&&"rangeBar"!==e.config.chart.type||(b=0,y=0),p.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+b,y:s+y,foreColor:x,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||"normal"});if(w.attr({class:"apexcharts-datalabel",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new v(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}}}},{key:"addBackgroundToDataLabel",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new m(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,"transparent"===i.config.chart.background?"#fff":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new v(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:"dataLabelsBackground",value:function(){var t=this.w;if("bubble"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;ii.globals.gridHeight&&(c=i.globals.gridHeight-g)),{bcx:o,bcy:r,dataLabelsX:e,dataLabelsY:c}}},{key:"calculateBarsDataLabelsPosition",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.bcy,o=t.barHeight,n=t.barWidth,l=t.textRects,h=t.dataLabelsX,c=t.strokeWidth,d=t.barDataLabelsConfig,g=t.offX,u=t.offY,f=e.globals.gridHeight/e.globals.dataPoints;n=Math.abs(n);var p=r-(this.barCtx.isRangeBar?0:f)+o/2+l.height/2+u-3,x=this.barCtx.series[a][s]<0,b=i;switch(this.barCtx.isReversed&&(b=i+n-(x?2*n:0),i=e.globals.gridWidth-n),d.position){case"center":h=x?b+n/2-g:Math.max(l.width/2,b-n/2)+g;break;case"bottom":h=x?b+n-c-Math.round(l.width/2)-g:b-n+c+Math.round(l.width/2)+g;break;case"top":h=x?b-c+Math.round(l.width/2)-g:b-c-Math.round(l.width/2)+g}return e.config.chart.stacked||(h<0?h=h+l.width+c:h+l.width/2>e.globals.gridWidth&&(h=e.globals.gridWidth-l.width-c)),{bcx:i,bcy:r,dataLabelsX:h,dataLabelsY:p}}},{key:"drawCalculatedDataLabels",value:function(t){var i=t.x,a=t.y,s=t.val,r=t.i,o=t.j,n=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g="rotate(0)";"vertical"===d.config.plotOptions.bar.dataLabels.orientation&&(g="rotate(-90, ".concat(i,", ").concat(a,")"));var u=new z(this.barCtx.ctx),f=new m(this.barCtx.ctx),p=c.formatter,x=null,b=d.globals.collapsedSeriesIndices.indexOf(r)>-1;if(c.enabled&&!b){x=f.group({class:"apexcharts-data-labels",transform:g});var v="";void 0!==s&&(v=p(s,{seriesIndex:r,dataPointIndex:o,w:d}));var y=d.globals.series[r][o]<0,w=d.config.plotOptions.bar.dataLabels.position;if("vertical"===d.config.plotOptions.bar.dataLabels.orientation&&("top"===w&&(c.textAnchor=y?"end":"start"),"center"===w&&(c.textAnchor="middle"),"bottom"===w&&(c.textAnchor=y?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)hMath.abs(h)&&(v=""):n.height/1.6>Math.abs(l)&&(v=""));var k=e({},c);this.barCtx.isHorizontal&&s<0&&("start"===c.textAnchor?k.textAnchor="end":"end"===c.textAnchor&&(k.textAnchor="start")),u.plotDataLabelsText({x:i,y:a,text:v,i:r,j:o,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}}]),t}(),E=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.legendInactiveClass="legend-mouseover-inactive"}return r(t,[{key:"getAllSeriesEls",value:function(){return this.w.globals.dom.baseEl.getElementsByClassName("apexcharts-series")}},{key:"getSeriesByName",value:function(t){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner .apexcharts-series[seriesName='".concat(x.escapeString(t),"']"))}},{key:"isSeriesHidden",value:function(t){var e=this.getSeriesByName(t),i=parseInt(e.getAttribute("data:realIndex"),10);return{isHidden:e.classList.contains("apexcharts-series-collapsed"),realIndex:i}}},{key:"addCollapsedClassToSeries",value:function(t,e){var i=this.w;function a(i){for(var a=0;a0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=x.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:"toggleSeriesOnHover",value:function(t,e){var i=this.w;e||(e=t.target);var a=i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels");if("mousemove"===t.type){var s=parseInt(e.getAttribute("rel"),10)-1,r=null,o=null;i.globals.axisCharts||"radialBar"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s,"']")),o=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s,"']"))):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"']")):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"'] path"));for(var n=0;n=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[o])}else"mouseout"===t.type&&r("remove")}},{key:"getActiveConfigSeriesIndex",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"asc",i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(e,a){var s=!1;return t&&(s="bar"===i.config.series[a].type||"column"===i.config.series[a].type),e.data&&e.data.length>0&&!s?a:-1})),r="asc"===e?0:s.length-1;"asc"===e?r=0;"asc"===e?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:"getPreviousPaths",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute("data:realIndex")},o=0;o0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(e,"'] rect")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e("x")),y:parseFloat(e("y")),width:parseFloat(e("width")),height:parseFloat(e("height"))};a.push({rect:s,color:i[t].getAttribute("color")})},r=0;r0)for(var a=0;a0?t:[]}));return t}}]),t}(),Y=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e}return r(t,[{key:"initVariables",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/this.barCtx.seriesLen*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:"getPathFillColor",value:function(t,e,i,a){var s=this.w,r=new M(this.barCtx.ctx),o=null,n=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(o=a.color)}));return s.config.series[e].data[i]&&s.config.series[e].data[i].fillColor&&(o=s.config.series[e].data[i].fillColor),r.fillPath({seriesNumber:this.barCtx.barOptions.distributed?n:a,dataPointIndex:i,color:o,value:t[e][i]})}},{key:"getStrokeWidth",value:function(t,e,i){var a=0,s=this.w;return void 0===this.barCtx.series[t][e]||null===this.barCtx.series[t][e]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"barBackground",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new m(this.barCtx.ctx),c=new E(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(t){var e=t.barWidth,i=t.barXPosition,a=t.yRatio,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.series,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u={barWidth:e,strokeWidth:o,yRatio:a,barXPosition:i,y1:s,y2:r},f=this.getRoundedBars(d,u,n,h,c),p=i,x=i+e,b=g.move(p,s),v=g.move(p,s),y=g.line(x-o,s);return d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1)),b=b+g.line(p,f.y2)+f.pathWithRadius+g.line(x-o,f.y2)+y+y+"z",v=v+g.line(p,s)+y+y+y+y+y+g.line(p,s),d.config.chart.stacked&&(this.barCtx.yArrj.push(f.y2WithRadius),this.barCtx.yArrjF.push(Math.abs(s-f.y2WithRadius)),this.barCtx.yArrjVal.push(this.barCtx.series[h][c])),{pathTo:b,pathFrom:v}}},{key:"getBarpaths",value:function(t){var e=t.barYPosition,i=t.barHeight,a=t.x1,s=t.x2,r=t.strokeWidth,o=t.series,n=t.realIndex,l=t.i,h=t.j,c=t.w,d=new m(this.barCtx.ctx);(r=Array.isArray(r)?r[n]:r)||(r=0);var g={barHeight:i,strokeWidth:r,barYPosition:e,x2:s,x1:a},u=this.getRoundedBars(c,g,o,l,h),f=d.move(a,e),p=d.move(a,e);c.globals.previousPaths.length>0&&(p=this.barCtx.getPreviousPath(n,h,!1));var x=e,b=e+i,v=d.line(a,b-r);return f=f+d.line(u.x2,x)+u.pathWithRadius+d.line(u.x2,b-r)+v+v+"z",p=p+d.line(a,x)+v+v+v+v+v+d.line(a,x),c.config.chart.stacked&&(this.barCtx.xArrj.push(u.x2WithRadius),this.barCtx.xArrjF.push(Math.abs(a-u.x2WithRadius)),this.barCtx.xArrjVal.push(this.barCtx.series[l][h])),{pathTo:f,pathFrom:p}}},{key:"getRoundedBars",value:function(t,e,i,a,s){var r=new m(this.barCtx.ctx),o=0,n=t.config.plotOptions.bar.borderRadius,l=Array.isArray(n);l?o=n[a>n.length-1?n.length-1:a]:o=n;if(t.config.chart.stacked&&i.length>1&&a!==this.barCtx.radiusOnSeriesNumber&&!l&&(o=0),this.barCtx.isHorizontal){var h="",c=e.x2;if(Math.abs(e.x1-e.x2)0:i[a][s]<0;d&&(o*=-1),c-=o,h=r.quadraticCurve(c+o,e.barYPosition,c+o,e.barYPosition+(d?-1*o:o))+r.line(c+o,e.barYPosition+e.barHeight-e.strokeWidth-(d?-1*o:o))+r.quadraticCurve(c+o,e.barYPosition+e.barHeight-e.strokeWidth,c,e.barYPosition+e.barHeight-e.strokeWidth)}return{pathWithRadius:h,x2WithRadius:c+o,x2:c}}var g="",u=e.y2;if(Math.abs(e.y1-e.y2)=0;o--)this.barCtx.zeroSerieses.indexOf(o)>-1&&o===this.radiusOnSeriesNumber&&(this.barCtx.radiusOnSeriesNumber-=1);for(var n=e.length-1;n>=0;n--)i.globals.collapsedSeriesIndices.indexOf(this.barCtx.radiusOnSeriesNumber)>-1&&(this.barCtx.radiusOnSeriesNumber-=1)}},{key:"getXForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),a}},{key:"getYForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),a}},{key:"getGoalValues",value:function(t,e,i,a,s){var r=this,n=this.w,l=[];return n.globals.seriesGoals[a]&&n.globals.seriesGoals[a][s]&&Array.isArray(n.globals.seriesGoals[a][s])&&n.globals.seriesGoals[a][s].forEach((function(a){var s;l.push((o(s={},t,"x"===t?r.getXForValue(a.value,e,!1):r.getYForValue(a.value,i,!1)),o(s,"attrs",a),s))})),l}},{key:"drawGoalLine",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new m(this.barCtx.ctx),l=n.group({className:"apexcharts-bar-goals-groups"}),h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)})):Array.isArray(s)&&s.forEach((function(t){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)})),l}}]),t}(),F=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRangeBar.length&&this.isHorizontal,this.xyRatios=i,null!==this.xyRatios&&(this.xRatio=i.xRatio,this.initialXRatio=i.initialXRatio,this.yRatio=i.yRatio,this.invertedXRatio=i.invertedXRatio,this.invertedYRatio=i.invertedYRatio,this.baseLineY=i.baseLineY,this.baseLineInvertedY=i.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0,this.barHelpers=new Y(this)}return r(t,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx),r=new y(this.ctx,a);t=r.getLogSeries(t),this.series=t,this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var o=s.group({class:"apexcharts-bar-series apexcharts-plot-series"});a.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.");for(var n=0,l=0;n0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();f=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||b.push(u+A/2);for(var C=s.group({class:"apexcharts-datalabels","data:realIndex":v}),L=s.group({class:"apexcharts-bar-goals-markers",style:"pointer-events: none"}),P=0;P0&&b.push(u+A/2),p.push(f);var X=this.barHelpers.getPathFillColor(t,n,P,v);this.renderSeries({realIndex:v,pathFill:X,j:P,i:n,pathFrom:T.pathFrom,pathTo:T.pathTo,strokeWidth:M,elSeries:w,x:u,y:f,series:t,barHeight:k,barWidth:A,elDataLabelsWrap:C,elGoalsMarkers:L,visibleSeries:this.visibleI,type:"bar"})}a.globals.seriesXvalues[v]=b,a.globals.seriesYvalues[v]=p,o.add(w)}return o}},{key:"renderSeries",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.pathFrom,n=t.pathTo,l=t.strokeWidth,h=t.elSeries,c=t.x,d=t.y,g=t.y1,u=t.y2,f=t.series,p=t.barHeight,x=t.barWidth,b=t.barYPosition,y=t.elDataLabelsWrap,w=t.elGoalsMarkers,k=t.visibleSeries,A=t.type,S=this.w,C=new m(this.ctx);a||(a=this.barOptions.distributed?S.globals.stroke.colors[s]:S.globals.stroke.colors[e]),S.config.series[r].data[s]&&S.config.series[r].data[s].strokeColor&&(a=S.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var L=s/S.config.chart.animations.animateGradually.delay*(S.config.chart.animations.speed/S.globals.dataPoints)/2.4,P=C.renderPaths({i:r,j:s,realIndex:e,pathFrom:o,pathTo:n,stroke:a,strokeWidth:l,strokeLineCap:S.config.stroke.lineCap,fill:i,animationDelay:L,initialSpeed:S.config.chart.animations.speed,dataChangeSpeed:S.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(A,"-area")});P.attr("clip-path","url(#gridRectMask".concat(S.globals.cuid,")"));var M=S.config.forecastDataPoints;M.count>0&&s>=S.globals.dataPoints-M.count&&(P.node.setAttribute("stroke-dasharray",M.dashArray),P.node.setAttribute("stroke-width",M.strokeWidth),P.node.setAttribute("fill-opacity",M.fillOpacity)),void 0!==g&&void 0!==u&&(P.attr("data-range-y1",g),P.attr("data-range-y2",u)),new v(this.ctx).setSelectionFilter(P,e,s),h.add(P);var T=new X(this).handleBarDataLabels({x:c,y:d,y1:g,y2:u,i:r,j:s,series:f,realIndex:e,barHeight:p,barWidth:x,barYPosition:b,renderedPath:P,visibleSeries:k});return null!==T&&y.add(T),h.add(y),w&&h.add(w),h}},{key:"drawBarPaths",value:function(t){var e=t.indexes,i=t.barHeight,a=t.strokeWidth,s=t.zeroW,r=t.x,o=t.y,n=t.yDivision,l=t.elSeries,h=this.w,c=e.i,d=e.j;h.globals.isXNumeric&&(o=(h.globals.seriesX[c][d]-h.globals.minX)/this.invertedXRatio-i);var g=o+i*this.visibleI;r=this.barHelpers.getXForValue(this.series[c][d],s);var u=this.barHelpers.getBarpaths({barYPosition:g,barHeight:i,x1:s,x2:r,strokeWidth:a,series:this.series,realIndex:e.realIndex,i:c,j:d,w:h});return h.globals.isXNumeric||(o+=n),this.barHelpers.barBackground({j:d,i:c,y1:g-i*this.visibleI,y2:i*this.seriesLen,elSeries:l}),{pathTo:u.pathTo,pathFrom:u.pathFrom,x:r,y:o,goalX:this.barHelpers.getGoalValues("x",s,null,c,d),barYPosition:g}}},{key:"drawColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.strokeWidth,l=t.elSeries,h=this.w,c=e.realIndex,d=e.i,g=e.j,u=e.bc;if(h.globals.isXNumeric){var f=c;h.globals.seriesX[c].length||(f=h.globals.maxValsInArrayIndex),i=(h.globals.seriesX[f][g]-h.globals.minX)/this.xRatio-r*this.seriesLen/2}var p=i+r*this.visibleI;a=this.barHelpers.getYForValue(this.series[d][g],o);var x=this.barHelpers.getColumnPaths({barXPosition:p,barWidth:r,y1:o,y2:a,strokeWidth:n,series:this.series,realIndex:e.realIndex,i:d,j:g,w:h});return h.globals.isXNumeric||(i+=s),this.barHelpers.barBackground({bc:u,j:g,i:d,x1:p-n/2-r*this.visibleI,x2:r*this.seriesLen+n/2,elSeries:l}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x:i,y:a,goalY:this.barHelpers.getGoalValues("y",null,o,d,g),barXPosition:p}}},{key:"getPreviousPath",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),R=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return r(t,[{key:"isValidDate",value:function(t){return!isNaN(this.parseDate(t))}},{key:"getTimeStamp",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:"getDate",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:"parseDate",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "));return i=this.getTimeStamp(i)}},{key:"parseDateWithTimezone",value:function(t){return Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "))}},{key:"formatDate",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=["\0"].concat(u(i.months)),r=["\x01"].concat(u(i.shortMonths)),o=["\x02"].concat(u(i.days)),n=["\x03"].concat(u(i.shortDays));function l(t,e){var i=t+"";for(e=e||2;i.length12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+l(g))).replace(/(^|[^\\])H/g,"$1"+g)).replace(/(^|[^\\])hh+/g,"$1"+l(f))).replace(/(^|[^\\])h/g,"$1"+f);var p=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+l(p))).replace(/(^|[^\\])m/g,"$1"+p);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+l(x))).replace(/(^|[^\\])s/g,"$1"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\])ff/g,"$1"+l(b)),b=Math.round(b/10);var v=g<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+b)).replace(/(^|[^\\])TT+/g,"$1"+v)).replace(/(^|[^\\])T/g,"$1"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+m)).replace(/(^|[^\\])t/g,"$1"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?"Z":y>0?"+":"-";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+":"+l(k)}e=e.replace(/(^|[^\\])K/g,"$1"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],"g"),o[A])).replace(new RegExp(n[0],"g"),n[A])).replace(new RegExp(s[0],"g"),s[c])).replace(new RegExp(r[0],"g"),r[c])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),n=this.formatDate(r,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:"isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"calculcateLastDaysOfMonth",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:"determineDaysOfYear",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:"determineRemainingDaysOfYear",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(t,e){var i=30;switch(t=x.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),H=function(t){n(s,F);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=a.globals.seriesRangeStart,this.seriesRangeEnd=a.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var r=s.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),o=0;o0&&(this.visibleI=this.visibleI+1);var p=0,b=0;this.yRatio.length>1&&(this.yaxisIndex=u);var v=this.barHelpers.initialPositions();d=v.y,h=v.zeroW,c=v.x,b=v.barWidth,n=v.xDivision,l=v.zeroH;for(var y=s.group({class:"apexcharts-datalabels","data:realIndex":u}),w=s.group({class:"apexcharts-rangebar-goals-markers",style:"pointer-events: none"}),k=0;k0}));return a=l.config.plotOptions.bar.rangeBarGroupRows?s+o*g:s+r*this.visibleI+o*g,u>-1&&!l.config.plotOptions.bar.rangeBarOverlap&&(h=l.globals.seriesRangeBar[e][u].overlaps).indexOf(c)>-1&&(a=(r=n.barHeight/h.length)*this.visibleI+o*(100-parseInt(this.barOptions.barHeight,10))/100/2+r*(this.visibleI+h.indexOf(c))+o*g),{barYPosition:a,barHeight:r}}},{key:"drawRangeColumnPaths",value:function(t){var e=t.indexes,i=t.x;t.strokeWidth;var a=t.xDivision,s=t.barWidth,r=t.zeroH,o=this.w,n=e.i,l=e.j,h=this.yRatio[this.yaxisIndex],c=e.realIndex,d=this.getRangeValue(c,l),g=Math.min(d.start,d.end),u=Math.max(d.start,d.end);o.globals.isXNumeric&&(i=(o.globals.seriesX[n][l]-o.globals.minX)/this.xRatio-s/2);var f=i+s*this.visibleI;void 0===this.series[n][l]||null===this.series[n][l]?g=r:(g=r-g/h,u=r-u/h);var p=Math.abs(u-g),x=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:s,y1:g,y2:u,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:c,j:l,w:o});return o.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:p,x:i,y:u,goalY:this.barHelpers.getGoalValues("y",null,r,n,l),barXPosition:f}}},{key:"drawRangeBarPaths",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,goalX:this.barHelpers.getGoalValues("x",l,null,e.realIndex,e.j),y:i}}},{key:"getRangeValue",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}},{key:"getTooltipValues",value:function(t){var e=t.ctx,i=t.seriesIndex,a=t.dataPointIndex,s=t.y1,r=t.y2,o=t.w,n=o.globals.seriesRangeStart[i][a],l=o.globals.seriesRangeEnd[i][a],h=o.globals.labels[a],c=o.config.series[i].name?o.config.series[i].name:"",d=o.config.tooltip.y.formatter,g=o.config.tooltip.y.title.formatter,u={w:o,seriesIndex:i,dataPointIndex:a,start:n,end:l};"function"==typeof g&&(c=g(c,u)),Number.isFinite(s)&&Number.isFinite(r)&&(n=s,l=r,o.config.series[i].data[a].x&&(h=o.config.series[i].data[a].x+":"),"function"==typeof d&&(h=d(h,u)));var f="",p="",x=o.globals.colors[i];if(void 0===o.config.tooltip.x.formatter)if("datetime"===o.config.xaxis.type){var b=new R(e);f=b.formatDate(b.getDate(n),o.config.tooltip.x.format),p=b.formatDate(b.getDate(l),o.config.tooltip.x.format)}else f=n,p=l;else f=o.config.tooltip.x.formatter(n),p=o.config.tooltip.x.formatter(l);return{start:n,end:l,startVal:f,endVal:p,ylabel:h,color:x,seriesName:c}}},{key:"buildCustomTooltipHTML",value:function(t){var e=t.color,i=t.seriesName;return'
    '+(i||"")+'
    '+t.ylabel+' '+t.start+' - '+t.end+"
    "}}]),s}(),D=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(t){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0;return x.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"candlestick",value:function(){var t=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:5,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-r},background:{enabled:!1},style:{colors:["#fff"]}},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var e=new H(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t):function(t){var e=new H(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"area",value:function(){return{stroke:{width:4,fill:{type:"solid",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"brush",value:function(t){return x.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),"bar"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t}),t}},{key:"convertCatToNumeric",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:"convertCatToNumericXaxis",value:function(t,e,i){t.xaxis.type="numeric",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return x.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return x.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||"dataPoints",t}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"polarArea",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:"_getBoxTooltip",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
    \n '.concat(t.config.series[e].name?t.config.series[e].name:"series-"+(e+1),": ").concat(t.globals.series[e][i],"\n
    "):'
    ')+"
    ".concat(a[0],': ')+r+"
    "+"
    ".concat(a[1],': ')+o+"
    "+(n?"
    ".concat(a[2],': ')+n+"
    ":"")+"
    ".concat(a[3],': ')+l+"
    "+"
    ".concat(a[4],': ')+h+"
    "}}]),t}(),N=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(t){var e=t.responsiveOverride,a=this.opts,s=new L,r=new D(a);this.chartType=a.chart.type,"histogram"===this.chartType&&(a.chart.type="bar",a=x.extend({plotOptions:{bar:{columnWidth:"99.99%"}}},a)),a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&"object"===i(a)){var l={};l=-1!==["line","area","bar","candlestick","boxPlot","rangeBar","histogram","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),a.chart.brush&&a.chart.brush.enabled&&(l=r.brush(l)),a.chart.stacked&&"100%"===a.chart.stackType&&(a=r.stacked100(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},e||(a.xaxis.convertedCatToNumeric=!1),((a=this.checkForCatToNumericXAxis(this.chartType,l,a)).chart.sparkline&&a.chart.sparkline.enabled||window.Apex.chart&&window.Apex.chart.sparkline&&window.Apex.chart.sparkline.enabled)&&(l=r.sparkline(l)),n=x.extend(o,l)}var h=x.extend(n,window.Apex);return o=x.extend(h,a),o=this.handleUserInputErrors(o)}},{key:"checkForCatToNumericXAxis",value:function(t,e,i){var a=new D(i),s=("bar"===t||"boxPlot"===t)&&i.plotOptions&&i.plotOptions.bar&&i.plotOptions.bar.horizontal,r="pie"===t||"polarArea"===t||"donut"===t||"radar"===t||"radialBar"===t||"heatmap"===t,o="datetime"!==i.xaxis.type&&"numeric"!==i.xaxis.type,n=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return s||r||!o||"between"===n||(i=a.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(t,e){var i=new L;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=x.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[x.extend(i.yAxis,t.yaxis)]:t.yaxis=x.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name="series-".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=x.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both."),t}},{key:"extendAnnotations",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:"extendYAxisAnnotations",value:function(t){var e=new L;return t.annotations.yaxis=x.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:"extendXAxisAnnotations",value:function(t){var e=new L;return t.annotations.xaxis=x.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:"extendPointAnnotations",value:function(t){var e=new L;return t.annotations.points=x.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:"checkForDarkTheme",value:function(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.chart.background||(t.chart.background="#424242"),t.theme.palette||(t.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(e.chart.type," chart is not supported.")),e.yaxis[0].reversed=!1),e}}]),t}(),O=function(){function t(){a(this,t)}return r(t,[{key:"initGlobalVars",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRangeBar=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasGroups=!1,t.groups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.xaxisLabelsCount=0,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:"globalVars",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:"init",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=x.extend({},t),e.initialSeries=x.clone(t.series),e.lastXAxis=x.clone(e.initialConfig.xaxis),e.lastYAxis=x.clone(e.initialConfig.yaxis),e}}]),t}(),W=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(){var t=new N(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new O).init(t)}}}]),t}(),B=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return r(t,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var t=this.w.config.series.slice(),e=new E(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new E(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s="boxPlot"===i.chart.type||"boxPlot"===i.series[e].type,r=0;r=5?this.twoDSeries.push(x.parseNumber(t[e].data[r][4])):this.twoDSeries.push(x.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),"datetime"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new R(i),o=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isRangeBar="rangeBar"===a.chart.type&&s.isBarHorizontal,s.hasGroups="category"===a.xaxis.type&&a.xaxis.group.groups.length>0,s.hasGroups&&(s.groups=a.xaxis.group.groups);for(var n=function(){for(var t=0;t0&&(this.twoDSeriesX=o,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var h=t[l].data.map((function(t){return x.parseNumber(t)}));s.series.push(h)}s.seriesZ.push(this.threeDSeries),void 0!==t[l].name?s.seriesNames.push(t[l].name):s.seriesNames.push("series-"+parseInt(l+1,10)),void 0!==t[l].color?s.seriesColors.push(t[l].color):s.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRangeBar.length&&(i.seriesRangeBar.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=i.labels.filter((function(t,e,i){return i.indexOf(t)===e}))),e.xaxis.convertedCatToNumeric)new D(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:"_generateExternalLabels",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},"function"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,"function"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),G=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getLabel",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"12px",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?"":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new V(this.ctx),f=l;o&&(h=u.xLabelFormat(c,l,f,{i:a,dateFormatter:new R(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new R(this.ctx).formatDate,w:n})));var p=function(t){var i=null;return e.forEach((function(t){"month"===t.unit?i="year":"day"===t.unit?i="month":"hour"===t.unit?i="day":"minute"===t.unit&&(i="hour")})),i===t};e.length>0?(g=p(e[a].unit),i=e[a].position,h=e[a].value):"datetime"===n.config.xaxis.type&&void 0===d&&(h=""),void 0===h&&(h=""),h=Array.isArray(h)?h:h.toString();var x=new m(this.ctx),b={};b=n.globals.rotateXLabels&&o?x.getTextRects(h,parseInt(r,10),null,"rotate(".concat(n.config.xaxis.labels.rotate," 0 0)"),!1):x.getTextRects(h,parseInt(r,10));var v=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(0===h.indexOf("NaN")||0===h.toLowerCase().indexOf("invalid")||h.toLowerCase().indexOf("infinity")>=0||s.indexOf(h)>=0&&v)&&(h=""),{x:i,text:h,textRect:b,isBold:g}}},{key:"checkLabelBasedOnTickamount",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return"dataPoints"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=""),e}},{key:"checkForOverflowingLabels",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),"heatmap"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),j=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"scaleSvgNode",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,"width")),a=parseFloat(t.getAttributeNS(null,"height"));t.setAttributeNS(null,"width",i*e),t.setAttributeNS(null,"height",a*e),t.setAttributeNS(null,"viewBox","0 0 "+i+" "+a)}},{key:"fixSvgStringForIe11",value:function(t){if(!x.isIE11())return t.replace(/ /g," ");var e=0,i=t.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g,(function(t){return 2===++e?'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"':t}));return i=(i=i.replace(/xmlns:NS\d+=""/g,"")).replace(/NS\d+:(\w+:\w+=")/g,"$1")}},{key:"getSvgString",value:function(t){null==t&&(t=1);var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:"cleanup",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=t.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,(function(t){t.setAttribute("width",0)})),e&&e[0]&&(e[0].setAttribute("x",-500),e[0].setAttribute("x1",-500),e[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:"image/svg+xml;charset=utf-8"});return URL.createObjectURL(e)}},{key:"dataURI",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement("canvas");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o="transparent"===a.config.chart.background?"#fff":a.config.chart.background,n=r.getContext("2d");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&x.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d="data:image/svg+xml,"+encodeURIComponent(l),g=new Image;g.crossOrigin="anonymous",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL("image/png");i({imgURI:e})}},g.src=d}}))}},{key:"exportToSVG",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,".svg")}},{key:"exportToPng",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+".png"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,".png")}))}},{key:"exportToCSV",value:function(t){var e=this,i=t.series,a=t.columnDelimiter,s=void 0===a?",":a,r=t.lineDelimiter,o=void 0===r?"\n":r,n=this.w;i||(i=n.config.series);var l=[],h=[],c="",d=new B(this.ctx),g=new G(this.ctx),u=function(t){var i="";if(n.globals.axisCharts){if("category"===n.config.xaxis.type||n.config.xaxis.convertedCatToNumeric)if(n.globals.isBarHorizontal){var a=n.globals.yLabelFormatters[0],r=new E(e.ctx).getActiveConfigSeriesIndex();i=a(n.globals.labels[t],{seriesIndex:r,dataPointIndex:t,w:n})}else i=g.getLabel(n.globals.labels,n.globals.timescaleLabels,0,t).text;"datetime"===n.config.xaxis.type&&(n.config.xaxis.categories.length?i=n.config.xaxis.categories[t]:n.config.labels.length&&(i=n.config.labels[t]))}else i=n.config.labels[t];return Array.isArray(i)&&(i=i.join(" ")),x.isNumber(i)?i:i.split(s).join("")};l.push(n.config.chart.toolbar.export.csv.headerCategory),i.map((function(t,e){var i=t.name?t.name:"series-".concat(e);n.globals.axisCharts&&l.push(i.split(s).join("")?i.split(s).join(""):"series-".concat(e))})),n.globals.axisCharts||(l.push(n.config.chart.toolbar.export.csv.headerValue),h.push(l.join(s))),i.map((function(t,e){n.globals.axisCharts?function(t,e){if(l.length&&0===e&&h.push(l.join(s)),t.data&&t.data.length)for(var a=0;a=10?n.config.chart.toolbar.export.csv.dateFormatter(r):x.isNumber(r)?r:r.split(s).join("")));for(var o=0;o0&&!i.globals.isBarHorizontal&&(this.xaxisLabels=i.globals.timescaleLabels.slice()),i.config.xaxis.overwriteCategories&&(this.xaxisLabels=i.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===i.config.xaxis.position?this.offY=0:this.offY=i.globals.gridHeight+1,this.offY=this.offY+i.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===i.config.chart.type&&i.config.plotOptions.bar.horizontal,this.xaxisFontSize=i.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=i.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=i.config.xaxis.labels.style.colors,this.xaxisBorderWidth=i.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=i.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=i.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=i.config.xaxis.axisBorder.height,this.yaxis=i.config.yaxis[0]}return r(t,[{key:"drawXaxis",value:function(){var t=this.w,e=new m(this.ctx),i=e.group({class:"apexcharts-xaxis",transform:"translate(".concat(t.config.xaxis.offsetX,", ").concat(t.config.xaxis.offsetY,")")}),a=e.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,f=l.xaxisForeColors||this.xaxisForeColors,p=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m="category"===d.config.xaxis.type?d.globals.dataPoints:v;if(s){var y=m>1?m-1:m;o=d.globals.gridWidth/y,b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&"dataPoints"!==d.config.xaxis.tickAmount&&"datetime"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(t&&y.text&&d.globals.xaxisLabelsCount++,d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-("top"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:"middle",fontWeight:y.isBold?600:p,fontSize:g,fontFamily:u,foreColor:Array.isArray(f)?t&&d.config.xaxis.convertedCatToNumeric?f[d.globals.minX+s-1]:f[s]:f,isPlainText:!1,cssClass:(t?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+x});if(i.add(k),t){var A=document.createElementNS(d.globals.SVGNS,"title");A.textContent=Array.isArray(y.text)?y.text.join(" "):y.text,k.node.appendChild(A),""!==y.text&&(h.push(y.text),c.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,"top"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new m(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}return r(t,[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new m(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new m(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elForecastMask.setAttribute("id","forecastMask".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elNonForecastMask.setAttribute("id","nonForecastMask".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;("bar"===r||"rangeBar"===r||"candlestick"===r||"boxPlot"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,"#fff");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector("defs");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||"radar"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({x1:i,y1:a,x2:s,y2:r,parent:n});var h=0;if(l.globals.hasGroups&&"between"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&(a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,xAxisTickWidth:t.globals.gridWidth/i}}},{key:"drawGridBands",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:"column"}),h+=i.globals.gridWidth/l}}]),t}(),q=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"niceScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if("dataPoints"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!x.isNumber(t)&&!x.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE){t=0,e=i;var n=this.linearScale(t,e,i);return n}t>e?(console.warn("axis.min cannot be greater than axis.max"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var l=[];o<1&&s&&("candlestick"===r.config.chart.type||"candlestick"===r.config.series[a].type||"boxPlot"===r.config.chart.type||"boxPlot"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var h=i+1;h<2?h=2:h>2&&(h-=2);var c=o/h,d=Math.floor(x.log10(c)),g=Math.pow(10,d),u=Math.round(c/g);u<1&&(u=1);var f=u*g,p=f*Math.floor(t/f),b=f*Math.ceil(e/f),v=p;if(s&&o>2){for(;l.push(v),!((v+=f)>b););return{result:l,niceMin:l[0],niceMax:l[l.length-1]}}var m=t;(l=[]).push(m);for(var y=Math.abs(e-t)/i,w=0;w<=i;w++)m+=y,l.push(m);return l[l.length-2]>=e&&l.pop(),{result:l,niceMin:l[0],niceMax:l[l.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);"dataPoints"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:"logarithmicScaleNice",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,r.logBase),a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase);else if(i!==-Number.MAX_VALUE&&x.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:"setXScale",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&x.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:"setMultipleYScales",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:"sameScaleInMultipleAxes",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o="function"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n="function"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:"autoScaleY",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis is not supported in a multi-yaxis chart."),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var f=o[n];r?(f=u[n],h=c=f,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),rd&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),Z=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.scales=new q(e)}return r(t,[{key:"init",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:"getMinYMaxY",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;"candlestick"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):"boxPlot"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;dh[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return"rangeBar"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),"bar"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){["min","max"].forEach((function(i){void 0!==e.xaxis[i]&&"number"==typeof e.xaxis[i]&&("min"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:"setXRange",value:function(){var t=this.w.globals,e=this.w.config,i="numeric"===e.xaxis.type||"datetime"===e.xaxis.type||"category"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;et.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):"dataPoints"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:"_setStackedMinMax",value:function(){var t=this.w.globals,e=[],i=[];if(t.series.length)for(var a=0;a0?s=s+parseFloat(t.series[o][a])+1e-4:r+=parseFloat(t.series[o][a])),o===t.series.length-1&&(e.push(s),i.push(r));for(var n=0;n=0;b--)x(b);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:"apexcharts-yaxis-title"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:"end",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g=0;d?g++:g--){var u=h[g];u=l(u,g,e);var f=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var p=this.axesUtils.getLabel(h,c,f,g,this.drawnLabels,this.xaxisFontSize);f=p.x,u=p.text,this.drawnLabels.push(p.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=""),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u="")}var x=i.drawText({x:f,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,"title");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(t){var e=this.w,i=new m(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;"bar"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);t.add(r)}}},{key:"inversedYAxisTitleText",value:function(t){var e=this.w,i=new m(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new m(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute("x",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute("transform","rotate(".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(e=x.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));r=x.listToArray(r);var o=s.getBoundingClientRect();"left"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","start")})),a.opposite||s.setAttribute("transform","translate(-".concat(o.width,", 0)"))):"center"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","middle")})),s.setAttribute("transform","translate(".concat(o.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute("text-anchor","end")})),a.opposite&&s.setAttribute("transform","translate(".concat(o.width,", 0)")))}}))}}]),t}(),J=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.documentEvent=x.bind(this.documentEvent,this)}return r(t,[{key:"addEventListener",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:"removeEventListener",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:"fireEvent",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=x.extend(C,i);this.w.globals.locale=a.options}}]),t}(),K=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawAxis",value:function(t,e){var i,a,s=this.w.globals,r=this.w.config,o=new _(this.ctx),n=new $(this.ctx);s.axisCharts&&"radar"!==t&&(s.isBarHorizontal?(a=n.drawYaxisInversed(0),i=o.drawXaxisInversed(0),s.dom.elGraphical.add(i),s.dom.elGraphical.add(a)):(i=o.drawXaxis(),s.dom.elGraphical.add(i),r.yaxis.map((function(t,e){-1===s.ignoreYAxisIndexes.indexOf(e)&&(a=n.drawYaxis(e),s.dom.Paper.add(a))}))))}}]),t}(),tt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawXCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=new v(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,f=s.blur,p=s.color,b=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===r&&(y=e.drawGradient("vertical",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!x.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!x.isNumber(A)||A<0)&&(A=0),w.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:f,color:p,opacity:b})),t.globals.dom.elGraphical.add(w)}}},{key:"drawYCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),t.globals.dom.elGraphical.add(r)}}]),t}(),et=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkResponsiveConfig",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new N({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=x.extend(n,t),t=x.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l0&&"function"==typeof e.config.colors[0]&&(e.globals.colors=e.config.series.map((function(i,a){var s=e.config.colors[a];return s||(s=e.config.colors[0]),"function"==typeof s?(t.isColorFn=!0,s({value:e.globals.axisCharts?e.globals.series[a][0]?e.globals.series[a][0]:0:e.globals.series[a],seriesIndex:a,dataPointIndex:a,w:e})):s})))),e.globals.seriesColors.map((function(t,i){t&&(e.globals.colors[i]=t)})),e.config.theme.monochrome.enabled){var a=[],s=e.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(s=e.globals.series[0].length*e.globals.series.length);for(var r=e.config.theme.monochrome.color,o=1/(s/e.config.theme.monochrome.shadeIntensity),n=e.config.theme.monochrome.shadeTo,l=0,h=0;h2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getLargestStringFromMultiArr",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,u(a));i=e[a.indexOf(s)]}return i}}]),t}(),rt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"getxAxisLabelsCoords",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==e.config.legend.position&&"right"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=x.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new V(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new R(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new R(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||""===String(r).trim())&&(o=r="1");var h=new m(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var t,e=this.w;if(!e.globals.hasGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=x.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new m(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e}),0);return 1.05*(t=new m(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){(function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)})(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c="right"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||"bar"!==s.chart.type&&"candlestick"!==s.chart.type&&"rangeBar"!==s.chart.type&&"boxPlot"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else"datetime"===r?e.dCtx.gridPad.rightString(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var f=e.globals.labels.slice();g=h(g=x.getLargestStringFromArr(f),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,f)}var p=new m(t.dCtx.ctx),b="rotate(".concat(r.labels.rotate," 0 0)"),v=p.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1),y=v;g!==u&&(y=p.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new m(t.dCtx.ctx),r="rotate(".concat(e.title.rotate," 0 0)"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new G(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),nt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"gridPadForColumnsInNumericAxis",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return"bar"===t||"rangeBar"===t||"candlestick"===t||"boxPlot"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:"gridPadFortitleSubtitle",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;["title","subtitle"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||"bottom"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w,a=new G(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new st(this),this.dimYAxis=new ot(this),this.dimXAxis=new rt(this),this.dimGrid=new nt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return r(t,[{key:"plotCoords",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&(e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=g(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;("radar"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||"treemap"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch("top"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case"bottom":i.translateY=c,d();break;case"top":i.translateY=this.lgRect.height+c,d();break;case"left":i.translateY=c,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case"right":i.translateY=c,i.translateX=l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new $(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s="pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case"bottom":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"top":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"left":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case"right":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(t,e,i){var a=this.w,s=a.globals.hasGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&"bottom"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),t}(),ht=function(){function t(e){a(this,t),this.w=e.w,this.lgCtx=e}return r(t,[{key:"getLegendStyles",value:function(){var t=document.createElement("style");t.setAttribute("type","text/css");var e=document.createTextNode("\t\n \t\n .apexcharts-legend {\t\n display: flex;\t\n overflow: auto;\t\n padding: 0 10px;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\t\n flex-wrap: wrap\t\n }\t\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n flex-direction: column;\t\n bottom: 0;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n justify-content: flex-start;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\t\n justify-content: center; \t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\t\n justify-content: flex-end;\t\n }\t\n .apexcharts-legend-series {\t\n cursor: pointer;\t\n line-height: normal;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\t\n display: flex;\t\n align-items: center;\t\n }\t\n .apexcharts-legend-text {\t\n position: relative;\t\n font-size: 14px;\t\n }\t\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n pointer-events: none;\t\n }\t\n .apexcharts-legend-marker {\t\n position: relative;\t\n display: inline-block;\t\n cursor: pointer;\t\n margin-right: 3px;\t\n border-style: solid;\n }\t\n \t\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\t\n display: inline-block;\t\n }\t\n .apexcharts-legend-series.apexcharts-no-click {\t\n cursor: auto;\t\n }\t\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n display: none !important;\t\n }\t\n .apexcharts-inactive-legend {\t\n opacity: 0.45;\t\n }");return t.appendChild(e),t}},{key:"getLegendBBox",value:function(){var t=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:"appendToForeignObject",value:function(){var t=this.w.globals;t.dom.elLegendForeign=document.createElementNS(t.SVGNS,"foreignObject");var e=t.dom.elLegendForeign;e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("width",t.svgWidth),e.setAttribute("height",t.svgHeight),t.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),e.appendChild(t.dom.elLegendWrap),e.appendChild(this.getLegendStyles()),t.dom.Paper.node.insertBefore(e,t.dom.elGraphical.node)}},{key:"toggleDataSeries",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||"radialBar"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t+1,"'] path")),n=a.config.chart.type;if("pie"===n||"polarArea"===n||"donut"===n){var l=a.config.plotOptions.pie.donut.labels;new m(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire("click")}}},{key:"hideSeries",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=x.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l0){for(var r=0;r-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),ct=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed="bar"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new ht(this)}return r(t,[{key:"init",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),x.isIE11()?document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"drawLegends",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if("heatmap"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+" - "+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h=o(a[l],{seriesIndex:l,w:e}),c=!1,d=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g0)for(var u=0;u0?l-10:0)+(h>0?h-10:0)}a.style.position="absolute",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=o+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px");["width","height"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+"px")}))}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.baseEl.querySelector(".apexcharts-legend").style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new lt(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;"bottom"===t.config.legend.position?r=-e.clwh/1.8:"top"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new E(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains("apexcharts-inactive-legend")&&i&&new E(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:"onLegendClick",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(t.target.getAttribute("rel"),10)-1,a="true"===t.target.getAttribute("data:collapsed"),s=this.w.config.chart.events.legendClick;"function"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;"function"==typeof r&&t.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),"treemap"!==e.config.chart.type&&"heatmap"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),dt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=i.globals.minX,this.maxX=i.globals.maxX}return r(t,[{key:"createToolbar",value:function(){var t=this,e=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=e.config.chart.toolbar.offsetY+"px",a.style.right=3-e.config.chart.toolbar.offsetX+"px",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\n \n \n\n'),o("zoomOut",this.elZoomOut,'\n \n \n\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:"zoom"===i?t.elZoom:t.elSelection,icon:"string"==typeof t.t[i]?t.t[i]:"zoom"===i?'\n \n \n \n':'\n \n \n',title:t.localeValues["zoom"===i?"selectionZoom":"selection"],class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(i,"-icon")})};n("zoom"),n("selection"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:"string"==typeof this.t.pan?this.t.pan:'\n \n \n \n \n \n \n \n',title:this.localeValues.pan,class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),o("reset",this.elZoomReset,'\n \n \n'),this.t.download&&r.push({el:this.elMenuIcon,icon:"string"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var l=0;l0&&e.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:"translate("+o+", "+l+")"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":h.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":h.config.chart.zoom.zoomedArea.stroke.opacity}),m.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,"fill-opacity":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,"stroke-width":h.config.chart.selection.stroke.width,"stroke-dasharray":h.config.chart.selection.stroke.dashArray,"stroke-opacity":h.config.chart.selection.stroke.opacity}),m.setAttrs(d.node,g))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g="x"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:"y"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging("resizing"),g}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;"resizing"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n("x"),y:n("y"),width:n("width"),height:n("height")};a.globals.selection=l,"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=x.clone(a.globals.initialConfig.yaxis),f=x.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),"xy"!==i&&"x"!==i||(f={min:h,max:c}),"xy"!==i&&"y"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var p=new q(s.ctx);u=p.autoScaleY(s.ctx,u,{xaxis:f})}if(o){var b=o.getBeforeZoomRange(f,u);b&&(f=b.xaxis?b.xaxis:f,u=b.yaxis?b.yaxis:u)}var v={xaxis:f};a.config.chart.group||(v.yaxis=u),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&o.zoomCallback(f,u)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:c},"xy"!==i&&"y"!==i||(y=x.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:"panDragging",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection="left":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection="right":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection="up":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection="down")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:"delayedPanScrolled",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;"left"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):"right"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:"panScrolled",value:function(t,e){var i=this.w,a=this.xyRatios,s=x.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),"left"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):"right"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new q(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:"updateScrolledChart",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(),ut=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return r(t,[{key:"getNearestValues",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):r.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):r.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var f=Math.round(g/h),p=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(f=Math.ceil(g/h),f-=1);var b=null,v=null,m=[],y=[];if(r.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),r.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);b=(v=this.closestInMultiArray(k,A,m,y)).index,f=v.j,null!==b&&(m=r.globals.seriesXvalues[b],f=(v=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===b?-1:b,(!f||f<1)&&(f=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=p:r.globals.capturedDataPointIndex=f,{capturedSeries:b,j:r.globals.isBarHorizontal?p:f,hoverX:g,hoverY:u}}},{key:"closestInMultiArray",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a0?e:-1})),s=0;s0)for(var a=0;ai?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(".apexcharts-marker"))})),e}},{key:"hasMarkers",value:function(){return this.getElMarkers().length>0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(i.attrs.name,"
    "),e+="
    ".concat(i.val,"
    ")})),v.innerHTML=t+"
    ",m.innerHTML=e+"
    "};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML="",m.innerHTML=""):y()}else v.innerHTML="",m.innerHTML="";null!==f&&(a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=l.config.tooltip.z.title,a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=void 0!==f?f:"");o&&p[0]&&(null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?p[0].parentNode.style.display="none":p[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:"toggleActiveInactiveSeries",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("apexcharts-active"),i.style.display=e.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",o="",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&"treemap"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var d=r;a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?r=new V(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new R(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o="function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(" "):l,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(o)?o.join(" "):o,zVal:n}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),pt=function(){function t(e){a(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return r(t,[{key:"moveXCrosshairs",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&m.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&m.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("apexcharts-active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid(),d=c.getBoundingClientRect();h=s.e.clientY+a.globals.translateY-d.top-o.ttHeight/2}else a.globals.isBarHorizontal||(o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY),h<0&&(h=0));isNaN(l)||(l+=a.globals.translateX,r.style.left=l+"px",r.style.top=h+"px")}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),r=0;r0&&(h.setAttribute("r",n),h.setAttribute("cx",i),h.setAttribute("cy",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:"moveDynamicPointsOnHover",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new E(this.ctx).getActiveConfigSeriesIndex(!0);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h0?(l[h]&&l[h].setAttribute("r",n),l[h]&&l[h].setAttribute("cy",d)):l[h]&&l[h].setAttribute("r",0)}}if(this.moveXCrosshairs(s),!i.fixedTooltip){var g=r||a.globals.gridHeight;this.moveTooltip(s,g,n)}}},{key:"moveStickyTooltipOverBars",value:function(t){var e=this.w,i=this.ttCtx,a=e.globals.columnSeries?e.globals.columnSeries.length:e.globals.series.length,s=a>=2&&a%2==0?Math.floor(a/2):Math.floor(a/2)+1;e.globals.isBarHorizontal&&(s=new E(this.ctx).getActiveConfigSeriesIndex(!1,"desc")+1);var r=e.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(s,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"']")),o=r?parseFloat(r.getAttribute("cx")):0,n=r?parseFloat(r.getAttribute("cy")):0,l=r?parseFloat(r.getAttribute("barWidth")):0,h=r?parseFloat(r.getAttribute("barHeight")):0,c=i.getElGrid().getBoundingClientRect(),d=r.classList.contains("apexcharts-candlestick-area")||r.classList.contains("apexcharts-boxPlot-area");if(e.globals.isXNumeric?(r&&!d&&(o-=a%2!=0?l/2:0),r&&d&&e.globals.comboCharts&&(o-=l/2)):e.globals.isBarHorizontal||(o=i.xAxisTicksPositions[t-1]+i.dataPointsDividedWidth/2,isNaN(o)&&(o=i.xAxisTicksPositions[t]-i.dataPointsDividedWidth/2)),e.globals.isBarHorizontal?(n>e.globals.gridHeight/2&&(n-=i.tooltipRect.ttHeight),(n=n+e.config.grid.padding.top+h/3)+h>e.globals.gridHeight&&(n=e.globals.gridHeight-h)):e.config.tooltip.followCursor?n=i.e.clientY-c.top-i.tooltipRect.ttHeight/2:n+i.tooltipRect.ttHeight+15>e.globals.gridHeight&&(n=e.globals.gridHeight),n<-10&&(n=-10),e.globals.isBarHorizontal||this.moveXCrosshairs(o),!i.fixedTooltip){var g=n||e.globals.gridHeight;this.moveTooltip(o,g)}}}]),t}(),xt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new pt(e)}return r(t,[{key:"drawDynamicPoints",value:function(){var t=this.w,e=new m(this.ctx),i=new T(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=u(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute("data:realIndex"))-parseFloat(e.getAttribute("data:realIndex"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute("cx"),o=e.getAttribute("cy");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if("radar"===s.config.chart.type){var n=this.ttCtx.getElGrid(),l=n.getBoundingClientRect();r=this.ttCtx.e.clientX-l.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),o=e.config.markers.hover.size,n=0;n=0?t[e].setAttribute("r",i):t[e].setAttribute("r",0)}}}]),t}(),bt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e}return r(t,[{key:"getAttr",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:"handleHeatTreeTooltip",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains("apexcharts-".concat(r,"-rect"))){var l=this.getAttr(e,"i"),h=this.getAttr(e,"j"),c=this.getAttr(e,"cx"),d=this.getAttr(e,"cy"),g=this.getAttr(e,"width"),u=this.getAttr(e,"height");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var f=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-f.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-f.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx"),10),c=parseInt(s.paths.getAttribute("cy"),10),d=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,l.intersect){var g=x.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),"mouseup"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)?c=r.globals.svgHeight-o.tooltipRect.ttHeight:c<0&&(c=0);var f=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),p=r.globals.isMultipleYAxis?r.config.yaxis[f]&&r.config.yaxis[f].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!p?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(p&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),!p||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),o.tooltipRect.ttHeight+c>r.globals.gridHeight?c=r.globals.gridHeight-o.tooltipRect.ttHeight+r.globals.translateY:(c=c+r.globals.translateY-o.tooltipRect.ttHeight/2)<0&&(c=0),n.style.left=h+r.globals.translateX+"px",n.style.top=c+"px")}},{key:"getBarTooltipXY",value:function(t){var e=t.e,i=t.opt,a=this.w,s=null,r=this.ttCtx,o=0,n=0,l=0,h=0,c=0,d=e.target.classList;if(d.contains("apexcharts-bar-area")||d.contains("apexcharts-candlestick-area")||d.contains("apexcharts-boxPlot-area")||d.contains("apexcharts-rangebar-area")){var g=e.target,u=g.getBoundingClientRect(),f=i.elGrid.getBoundingClientRect(),p=u.height;c=u.height;var x=u.width,b=parseInt(g.getAttribute("cx"),10),v=parseInt(g.getAttribute("cy"),10);h=parseFloat(g.getAttribute("barWidth"));var m="touchmove"===e.type?e.touches[0].clientX:e.clientX;s=parseInt(g.getAttribute("j"),10),o=parseInt(g.parentNode.getAttribute("rel"),10)-1;var y=g.getAttribute("data-range-y1"),w=g.getAttribute("data-range-y2");a.globals.comboCharts&&(o=parseInt(g.parentNode.getAttribute("data:realIndex"),10)),r.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:o,j:s,y1:y?parseInt(y,10):null,y2:w?parseInt(w,10):null,shared:!r.showOnIntersect&&a.config.tooltip.shared,e:e}),a.config.tooltip.followCursor?a.globals.isBarHorizontal?(n=m-f.left+15,l=v-r.dataPointsDividedHeight+p/2-r.tooltipRect.ttHeight/2):(n=a.globals.isXNumeric?b-x/2:b-r.dataPointsDividedWidth+x/2,l=e.clientY-f.top-r.tooltipRect.ttHeight/2-15):a.globals.isBarHorizontal?((n=b)0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),mt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.tConfig=i.config.tooltip,this.tooltipUtil=new ut(this),this.tooltipLabels=new ft(this),this.tooltipPosition=new pt(this),this.marker=new xt(this),this.intersect=new bt(this),this.axesTooltip=new vt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!i.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return r(t,[{key:"getElTooltip",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip"):null}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new _(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&"rangeBar"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement("div");o.classList.add("apexcharts-tooltip-series-group"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add("apexcharts-tooltip-series-group-hidden");var n=document.createElement("span");n.classList.add("apexcharts-tooltip-marker"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement("div");l.classList.add("apexcharts-tooltip-text"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,["y","goals","z"].forEach((function(t){var e=document.createElement("div");e.classList.add("apexcharts-tooltip-".concat(t,"-group"));var i=document.createElement("span");i.classList.add("apexcharts-tooltip-text-".concat(t,"-label")),e.appendChild(i);var a=document.createElement("span");a.classList.add("apexcharts-tooltip-text-".concat(t,"-value")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf("right")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf("bottom")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+"px",e.style.top=o+"px",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:"seriesHover",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:"seriesHoverByContext",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip();if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new E(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:"axisChartsTooltips",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n="touchmove"===a.type?a.touches[0].clientX:a.clientX,l="touchmove"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,lo.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if("mousemove"===a.type||"touchmove"===a.type||"mouseup"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add("apexcharts-active");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add("apexcharts-active"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if("heatmap"===r.config.chart.type||"treemap"===r.config.chart.type){var f=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=f.x,i=f.y,c.style.left=e+"px",c.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var p=0;pl.width?this.handleMouseOut(a):null!==n?this.handleStickyCapturedSeries(t,n,a,o):(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal)&&this.create(t,this,0,o,a.ttItems)}},{key:"handleStickyCapturedSeries",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);void 0!==s.globals.series[e][a]?this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1):this.tooltipUtil.isXoverlap(a)&&this.create(t,this,0,a,i.ttItems)}},{key:"deactivateHoverFilter",value:function(){for(var t=this.w,e=new m(this.ctx),i=t.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,o=this.w,n=e;"mouseup"===t.type&&this.markerClick(t,i,a),null===r&&(r=this.tConfig.shared);var l=this.tooltipUtil.hasMarkers(),h=this.tooltipUtil.getElBars();if(o.config.legend.tooltipHoverFormatter){var c=o.config.legend.tooltipHoverFormatter,d=Array.from(this.legendLabels);d.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}));for(var g=0;g0?n.marker.enlargePoints(a):n.tooltipPosition.moveDynamicPointsOnHover(a)),this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(h),this.barSeriesHeight>0)){var b=new m(this.ctx),v=o.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a);for(var y=0;y0&&(this.totalItems+=t[o].length);for(var n=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),l=0,h=0,c=function(r,o){var c=void 0,d=void 0,g=void 0,u=void 0,f=[],p=[],b=s.globals.comboCharts?i[r]:r;a.yRatio.length>1&&(a.yaxisIndex=b),a.isReversed=s.config.yaxis[a.yaxisIndex]&&s.config.yaxis[a.yaxisIndex].reversed;var v=a.graphics.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[b]),rel:r+1,"data:realIndex":b});a.ctx.series.addCollapsedClassToSeries(v,b);var m=a.graphics.group({class:"apexcharts-datalabels","data:realIndex":b}),y=0,w=0,k=a.initialPositions(l,h,c,d,g,u);h=k.y,y=k.barHeight,d=k.yDivision,u=k.zeroW,l=k.x,w=k.barWidth,c=k.xDivision,g=k.zeroH,a.yArrj=[],a.yArrjF=[],a.yArrjVal=[],a.xArrj=[],a.xArrjF=[],a.xArrjVal=[],1===a.prevY.length&&a.prevY[0].every((function(t){return isNaN(t)}))&&(a.prevY[0]=a.prevY[0].map((function(t){return g})),a.prevYF[0]=a.prevYF[0].map((function(t){return 0})));for(var A=0;A1?(i=l.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:n*parseInt(l.config.plotOptions.bar.columnWidth,10)/100,s=this.baseLineY[this.yaxisIndex]+(this.isReversed?l.globals.gridHeight:0)-(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=l.globals.padHorizontal+(i-n)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:o,barWidth:n,zeroH:s,zeroW:r}}},{key:"drawStackedBarPaths",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=n,g=i.i,u=i.j,f=0,p=0;p0){var x=r;this.prevXVal[g-1][u]<0?x=this.series[g][u]>=0?this.prevX[g-1][u]+f-2*(this.isReversed?f:0):this.prevX[g-1][u]:this.prevXVal[g-1][u]>=0&&(x=this.series[g][u]>=0?this.prevX[g-1][u]:this.prevX[g-1][u]-f+2*(this.isReversed?f:0)),e=x}else e=r;o=null===this.series[g][u]?e:e+this.series[g][u]/this.invertedYRatio-2*(this.isReversed?this.series[g][u]/this.invertedYRatio:0);var b=this.barHelpers.getBarpaths({barYPosition:d,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return this.barHelpers.barBackground({j:u,i:g,y1:d,y2:a,elSeries:h}),n+=l,{pathTo:b.pathTo,pathFrom:b.pathFrom,x:o,y:n}}},{key:"drawStackedColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH;t.strokeWidth;var n=t.elSeries,l=this.w,h=e.i,c=e.j,d=e.bc;if(l.globals.isXNumeric){var g=l.globals.seriesX[h][c];g||(g=0),i=(g-l.globals.minX)/this.xRatio-r/2}for(var u,f=i,p=0,x=0;x0&&!l.globals.isXNumeric||h>0&&l.globals.isXNumeric&&l.globals.seriesX[h-1][c]===l.globals.seriesX[h][c]){var b,v,m=Math.min(this.yRatio.length+1,h+1);if(void 0!==this.prevY[h-1])for(var y=1;y=0?v-p+2*(this.isReversed?p:0):v;break}if(this.prevYVal[h-w][c]>=0){b=this.series[h][c]>=0?v:v+p-2*(this.isReversed?p:0);break}}void 0===b&&(b=l.globals.gridHeight),u=this.prevYF[0].every((function(t){return 0===t}))&&this.prevYF.slice(1,h).every((function(t){return t.every((function(t){return isNaN(t)}))}))?l.globals.gridHeight-o:b}else u=l.globals.gridHeight-o;a=u-this.series[h][c]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[h][c]/this.yRatio[this.yaxisIndex]:0);var k=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:r,y1:u,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,realIndex:e.realIndex,i:h,j:c,w:l});return this.barHelpers.barBackground({bc:d,j:c,i:h,x1:f,x2:r,elSeries:n}),i+=s,{pathTo:k.pathTo,pathFrom:k.pathFrom,x:l.globals.isXNumeric?i-s:i,y:a}}}]),s}(),wt=function(t){n(s,F);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this,s=this.w,r=new m(this.ctx),o=new M(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=s.config.plotOptions.bar.horizontal;var n=new y(this.ctx,s);t=n.getLogSeries(t),this.series=t,this.yRatio=n.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var l=r.group({class:"apexcharts-".concat(s.config.chart.type,"-series apexcharts-plot-series")}),h=function(n){a.isBoxPlot="boxPlot"===s.config.chart.type||"boxPlot"===s.config.series[n].type;var h,c,d,g,u=void 0,f=void 0,p=[],b=[],v=s.globals.comboCharts?i[n]:n,m=r.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[v]),rel:n+1,"data:realIndex":v});a.ctx.series.addCollapsedClassToSeries(m,v),t[n].length>0&&(a.visibleI=a.visibleI+1);var y,w;a.yRatio.length>1&&(a.yaxisIndex=v);var k=a.barHelpers.initialPositions();f=k.y,y=k.barHeight,c=k.yDivision,g=k.zeroW,u=k.x,w=k.barWidth,h=k.xDivision,d=k.zeroH,b.push(u+w/2);for(var A=r.group({class:"apexcharts-datalabels","data:realIndex":v}),S=function(i){var r=a.barHelpers.getStrokeWidth(n,i,v),l=null,x={indexes:{i:n,j:i,realIndex:v},x:u,y:f,strokeWidth:r,elSeries:m};l=a.isHorizontal?a.drawHorizontalBoxPaths(e(e({},x),{},{yDivision:c,barHeight:y,zeroW:g})):a.drawVerticalBoxPaths(e(e({},x),{},{xDivision:h,barWidth:w,zeroH:d})),f=l.y,u=l.x,i>0&&b.push(u+w/2),p.push(f),l.pathTo.forEach((function(e,h){var c=!a.isBoxPlot&&a.candlestickOptions.wick.useFillColor?l.color[h]:s.globals.stroke.colors[n],d=o.fillPath({seriesNumber:v,dataPointIndex:i,color:l.color[h],value:t[n][i]});a.renderSeries({realIndex:v,pathFill:d,lineFill:c,j:i,i:n,pathFrom:l.pathFrom,pathTo:e,strokeWidth:r,elSeries:m,x:u,y:f,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:A,visibleSeries:a.visibleI,type:s.config.chart.type})}))},C=0;Cb.c&&(d=!1);var w=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/p,k=r-k/p,v=r-b.h/p,y=r-b.l/p,A=r-b.m/p);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+"z"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?f:d?[g]:[u]}}},{key:"drawHorizontalBoxPaths",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,f=this.getOHLCValue(u,c),p=r,x=r,b=Math.min(f.o,f.c),v=Math.max(f.o,f.c),y=f.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,p=r+f.h/g,x=r+f.l/g,y=r+f.m/g);var k=l.move(r,w),A=l.move(b,w+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,w)+l.line(b,w+s/2)+l.line(p,w+s/2)+l.line(p,w+s/2-s/4)+l.line(p,w+s/2+s/4)+l.line(p,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(b+o/2,w),l.move(y,w)+l.line(y,w+s)+l.line(v,w+s)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s-s/4)+l.line(x,w+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w)+l.line(y,w)+"z"],A+=l.move(b,w),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:w,color:d}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(),kt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkColorRange",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:"getShadeColor",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,"treemap"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new x;return s.config.plotOptions[t].enableShades&&(l="dark"===this.w.config.theme.mode?x.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):x.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:"determineColor",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&"treemap"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,u(a.globals.series[e])),c=Math.max.apply(Math,u(a.globals.series[e]));r.distributed||"heatmap"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:"calculateDataLabels",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new m(this.ctx),c=new z(this.ctx),d=null;if(l.enabled){d=h.group({class:"apexcharts-data-labels"});var g=l.offsetX,u=l.offsetY,f=i+g,p=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:f,y:p,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:"addListeners",value:function(t){var e=new m(this.ctx);t.node.addEventListener("mouseenter",e.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",e.pathMouseLeave.bind(this,t)),t.node.addEventListener("mousedown",e.pathMouseDown.bind(this,t))}}]),t}(),At=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.xRatio=i.xRatio,this.yRatio=i.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new kt(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return r(t,[{key:"draw",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(e.globals.cuid,")"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:x.escapeString(e.globals.seriesNames[h]),rel:h+1,"data:realIndex":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new v(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,f=0;f-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+"%";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),f=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),p=a>180?1:0,b=["M",h,c,"A",s,s,0,p,1,d,g];return"donut"===e.chartType?[].concat(b,["L",u.x,u.y,"A",e.donutSize,e.donutSize,0,p,0,f.x,f.y,"L",h,c,"z"]).join(" "):"pie"===e.chartType||"polarArea"===e.chartType?[].concat(b,["L",e.centerX,e.centerY,"L",h,c]).join(" "):[].concat(b).join(" ")}},{key:"drawPolarElements",value:function(t){var e=this.w,i=new q(this.ctx),a=new m(this.ctx),s=new St(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,r),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==r&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),Lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var i=this.w;this.graphics=new m(this.ctx),this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=i.globals.svgHeight0&&(p=i.getPreviousPath(n));for(var b=0;b=10?t.x>0?(i="start",a+=10):t.x<0&&(i="end",a-=10):i="middle",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:"",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var f=h.dropShadow;s.dropShadow(u,f)}l.add(u),u.attr("id","apexcharts-radialbarTrack-"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new m(this.ctx),a=new M(this.ctx),s=new v(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),"back"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var f=!1;e.config.plotOptions.radialBar.inverseOrder&&(f=!0);for(var p=f?t.series.length-1:0;f?p>=0:p100?100:t.series[p])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*x.negToZero(e.globals.previousPaths[p])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var L=S-w,P=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[p]:e.config.stroke.dashArray,T=i.drawPath({d:"",stroke:y,strokeWidth:o,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+p,strokeDashArray:P});if(m.setAttrs(T.node,{"data:angle":L,"data:value":t.series[p]}),e.config.chart.dropShadow.enabled){var I=e.config.chart.dropShadow;s.dropShadow(T,I,p)}s.setSelectionFilter(T,0,p),this.addListeners(T,this.radialDataLabels),b.add(T),T.attr({index:0,j:p});var z=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(z=e.config.chart.animations.speed),e.globals.dataChanged&&(z=e.config.chart.animations.dynamicAnimation.speed),this.animDur=z/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(T,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:p,totalItems:2,animBeginArr:this.animBeginArr,dur:z,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:"drawHollow",value:function(t){var e=new m(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,r=new M(this.ctx),o=x.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:"pattern".concat(s.globals.cuid).concat(o)}),a="url(#pattern".concat(s.globals.cuid).concat(o,")");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),i}(),Mt=function(){function t(e){a(this,t),this.w=e.w,this.lineCtx=e}return r(t,[{key:"sameValueSeriesFix",value:function(t,e){var i=this.w;if("line"===i.config.chart.type&&("gradient"===i.config.fill.type||"gradient"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:"calculatePoints",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(x.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:"checkPreviousPaths",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&("line"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):"area"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e=t.i,i=t.series,a=t.prevY,s=t.lineYPosition,r=this.w;if(void 0!==i[e][0])a=(s=r.config.chart.stacked&&e>0?this.lineCtx.prevSeriesY[e-1][0]:this.lineCtx.zeroY)-i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(r.config.chart.stacked&&e>0&&void 0===i[e][0])for(var o=e-1;o>=0;o--)if(null!==i[o][0]&&void 0!==i[o][0]){a=s=this.lineCtx.prevSeriesY[o][0];break}return{prevY:a,lineYPosition:s}}}]),t}(),Tt=function(){function t(e,i,s){a(this,t),this.ctx=e,this.w=e.w,this.xyRatios=i,this.pointsChart=!("bubble"!==this.w.config.chart.type&&"scatter"!==this.w.config.chart.type)||s,this.scatter=new I(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Mt(this),this.markers=new T(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return r(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=a.globals.comboCharts?e:a.config.chart.type,o=s.group({class:"apexcharts-".concat(r,"-series apexcharts-plot-series")}),n=new y(this.ctx,a);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=n.getLogSeries(t),this.yRatio=n.getLogYRatios(this.yRatio);for(var l=[],h=0;h0&&(u=(a.globals.seriesX[c][0]-a.globals.minX)/this.xRatio),g.push(u);var f,p=u,x=p,b=this.zeroY;b=this.lineHelpers.determineFirstPrevY({i:h,series:t,prevY:b,lineYPosition:0}).prevY,d.push(b),f=b;var v=this._calculatePathsFrom({series:t,i:h,realIndex:c,prevX:x,prevY:b}),w=this._iterateOverDataPoints({series:t,realIndex:c,i:h,x:u,y:1,pX:p,pY:f,pathsFrom:v,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:g,yArrj:d});this._handlePaths({type:r,realIndex:c,i:h,paths:w}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),l.push(this.elSeries)}if(a.config.chart.stacked)for(var k=l.length;k>0;k--)o.add(l[k-1]);else for(var A=0;A1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||"end"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",seriesName:x.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":r,rel:e+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(t){var e,i,a,s,r=t.series,o=t.i,n=t.realIndex,l=t.prevX,h=t.prevY,c=this.w,d=new m(this.ctx);if(null===r[o][0]){for(var g=0;g0){var u=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:n});a=u.pathFromLine,s=u.pathFromArea}return{prevX:l,prevY:h,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(t){var i=t.type,a=t.realIndex,s=t.i,r=t.paths,o=this.w,n=new m(this.ctx),l=new M(this.ctx);this.prevSeriesY.push(r.yArrj),o.globals.seriesXvalues[a]=r.xArrj,o.globals.seriesYvalues[a]=r.yArrj;var h=o.config.forecastDataPoints;if(h.count>0){var c=o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length-h.count-1],d=n.drawRect(c,0,o.globals.gridWidth,o.globals.gridHeight,0);o.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,o.globals.gridHeight,0);o.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||o.globals.delayedElements.push({el:this.elPointsMain.node,index:a});var u={i:s,realIndex:a,animationDelay:s,initialSpeed:o.config.chart.animations.speed,dataChangeSpeed:o.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(i)};if("area"===i)for(var f=l.fillPath({seriesNumber:a}),p=0;p0){var A=n.renderPaths(w);A.node.setAttribute("stroke-dasharray",h.dashArray),h.strokeWidth&&A.node.setAttribute("stroke-width",h.strokeWidth),this.elSeries.add(A),A.attr("clip-path","url(#forecastMask".concat(o.globals.cuid,")")),k.attr("clip-path","url(#nonForecastMask".concat(o.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(t){for(var e=t.series,i=t.realIndex,a=t.i,s=t.x,r=t.y,o=t.pX,n=t.pY,l=t.pathsFrom,h=t.linePaths,c=t.areaPaths,d=t.seriesIndex,g=t.lineYPosition,u=t.xArrj,f=t.yArrj,p=this.w,b=new m(this.ctx),v=this.yRatio,y=l.prevY,w=l.linePath,k=l.areaPath,A=l.pathFromLine,S=l.pathFromArea,C=x.isNumber(p.globals.minYArr[i])?p.globals.minYArr[i]:p.globals.minY,L=p.globals.dataPoints>1?p.globals.dataPoints-1:p.globals.dataPoints,P=0;P0&&p.globals.collapsedSeries.length-1){e--;break}return e>=0?e:0}(a-1)][P+1]}else g=this.zeroY;else g=this.zeroY;r=M?g-C/v[this.yaxisIndex]+2*(this.isReversed?C/v[this.yaxisIndex]:0):g-e[a][P+1]/v[this.yaxisIndex]+2*(this.isReversed?e[a][P+1]/v[this.yaxisIndex]:0),u.push(s),f.push(r);var I=this.lineHelpers.calculatePoints({series:e,x:s,y:r,realIndex:i,i:a,j:P,prevY:y}),z=this._createPaths({series:e,i:a,realIndex:i,j:P,x:s,y:r,pX:o,pY:n,linePath:w,areaPath:k,linePaths:h,areaPaths:c,seriesIndex:d});c=z.areaPaths,h=z.linePaths,o=z.pX,n=z.pY,k=z.areaPath,w=z.linePath,this.appendPathFrom&&(A+=b.line(s,this.zeroY),S+=b.line(s,this.zeroY)),this.handleNullDataPoints(e,I,a,P,i),this._handleMarkersAndLabels({pointsPos:I,series:e,x:s,y:r,prevY:y,i:a,j:P,realIndex:i})}return{yArrj:f,xArrj:u,pathFromArea:S,areaPaths:c,pathFromLine:A,linePaths:h}}},{key:"_handleMarkersAndLabels",value:function(t){var e=t.pointsPos;t.series,t.x,t.y,t.prevY;var i=t.i,a=t.j,s=t.realIndex,r=this.w,o=new z(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,a,{realIndex:s,pointsPos:e,zRatio:this.zRatio,elParent:this.elPointsMain});else{r.globals.series[i].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var n=this.markers.plotChartMarkers(e,s,a+1);null!==n&&this.elPointsMain.add(n)}var l=o.drawDataLabel(e,s,a+1,null);null!==l&&this.elDataLabelsWrap.add(l)}},{key:"_createPaths",value:function(t){var e=t.series,i=t.i,a=t.realIndex,s=t.j,r=t.x,o=t.y,n=t.pX,l=t.pY,h=t.linePath,c=t.areaPath,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,f=this.w,p=new m(this.ctx),x=f.config.stroke.curve,b=this.areaBottomY;if(Array.isArray(f.config.stroke.curve)&&(x=Array.isArray(u)?f.config.stroke.curve[u[i]]:f.config.stroke.curve[i]),"smooth"===x){var v=.35*(r-n);f.globals.hasNullValues?(null!==e[i][s]&&(null!==e[i][s+1]?(h=p.move(n,l)+p.curve(n+v,l,r-v,o,r+1,o),c=p.move(n+1,l)+p.curve(n+v,l,r-v,o,r+1,o)+p.line(r,b)+p.line(n,b)+"z"):(h=p.move(n,l),c=p.move(n,l)+"z")),d.push(h),g.push(c)):(h+=p.curve(n+v,l,r-v,o,r,o),c+=p.curve(n+v,l,r-v,o,r,o)),n=r,l=o,s===e[i].length-2&&(c=c+p.curve(n,l,r,o,r,b)+p.move(r,o)+"z",f.globals.hasNullValues||(d.push(h),g.push(c)))}else{if(null===e[i][s+1]){h+=p.move(r,o);var y=f.globals.isXNumeric?(f.globals.seriesX[a][s]-f.globals.minX)/this.xRatio:r-this.xDivision;c=c+p.line(y,b)+p.move(r,o)+"z"}null===e[i][s]&&(h+=p.move(r,o),c+=p.move(r,b)),"stepline"===x?(h=h+p.line(r,null,"H")+p.line(null,o,"V"),c=c+p.line(r,null,"H")+p.line(null,o,"V")):"straight"===x&&(h+=p.line(r,o),c+=p.line(r,o)),s===e[i].length-2&&(c=c+p.line(r,b)+p.move(r,o)+"z",d.push(h),g.push(c))}return{linePaths:d,areaPaths:g,pX:n,pY:l,linePath:h,areaPath:c}}},{key:"handleNullDataPoints",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){return o=void 0===o?0:o,n=void 0===n?0:n,function(t){var e,i,a=[];for(e=0;e=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;er-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(-90 ".concat(h.x," ").concat(h.y,")"))}}},{key:"animateTreemap",value:function(t,e,i,a){var s=new b(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Et=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return r(t,[{key:"calculateTimeScaleTicks",value:function(t,i){var a=this,s=this.w;if(s.globals.allSeriesCollapsed)return s.globals.labels=[],s.globals.timescaleLabels=[],[];var r=new R(this.ctx),o=(i-t)/864e5;this.determineInterval(o),s.globals.disableZoomIn=!1,s.globals.disableZoomOut=!1,o<.00011574074074074075?s.globals.disableZoomIn=!0:o>5e4&&(s.globals.disableZoomOut=!0);var n=r.getTimeUnitsfromTimestamp(t,i,this.utc),l=s.globals.gridWidth/o,h=l/24,c=h/60,d=c/60,g=Math.floor(24*o),u=Math.floor(1440*o),f=Math.floor(86400*o),p=Math.floor(o),x=Math.floor(o/30),b=Math.floor(o/365),v={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:f,numberOfMinutes:u,numberOfHours:g,numberOfDays:p,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case"years":this.generateYearScale(m);break;case"months":case"half_year":this.generateMonthScale(m);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(m);break;case"hours":this.generateHourScale(m);break;case"minutes_fives":case"minutes":this.generateMinuteScale(m);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var i={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?e(e({},i),{},{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?e(e({},i),{},{value:t.value}):"minute"===t.unit?e(e({},i),{},{value:t.value,minute:t.value}):"second"===t.unit?e(e({},i),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,i=Math.ceil(s.globals.gridWidth/120),r=t.value;void 0!==s.config.xaxis.tickAmount&&(i=s.config.xaxis.tickAmount),y.length>i&&(e=Math.floor(y.length/i));var o=!1,n=!1;switch(a.tickInterval){case"years":"year"===t.unit&&(o=!0);break;case"half_year":e=7,"year"===t.unit&&(o=!0);break;case"months":e=1,"year"===t.unit&&(o=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(o=!0),30===r&&(n=!0);break;case"months_days":e=10,"month"===t.unit&&(o=!0),30===r&&(n=!0);break;case"week_days":e=8,"month"===t.unit&&(o=!0);break;case"days":e=1,"month"===t.unit&&(o=!0);break;case"hours":"day"===t.unit&&(o=!0);break;case"minutes_fives":r%5!=0&&(n=!0);break;case"seconds_tens":r%10!=0&&(n=!0);break;case"seconds_fives":r%5!=0&&(n=!0)}if("hours"===a.tickInterval||"minutes_fives"===a.tickInterval||"seconds_tens"===a.tickInterval||"seconds_fives"===a.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new lt(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval="years";break;case t>800:this.tickInterval="half_year";break;case t>180:this.tickInterval="months";break;case t>90:this.tickInterval="months_fortnight";break;case t>60:this.tickInterval="months_days";break;case t>30:this.tickInterval="week_days";break;case t>2:this.tickInterval="days";break;case e>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new R(this.ctx),h="year";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:x.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:x.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=x.monthMod(a+1);var g=s+d,u=x.monthMod(n),f=n;0===n&&(c="year",f=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:f,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:x.monthMod(a)});for(var p=n+1,b=l,v=0,m=1;vo.determineDaysOfMonths(e+1,i)?(h=1,n="month",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=x.monthMod(e.minMonth),n="month",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:x.monthMod(u),day:h});for(var f=d,p=0;pn.determineDaysOfMonths(e+1,s)&&(p=1,e+=1),{month:e,date:p}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,f=u+1;60===d&&(g=0,f=(u=e.minHour)+1);var p=i,b=c(p,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:p,hour:f,year:s,month:x.monthMod(b)});for(var v=g,m=0;m=24)f=0,l="day",b=h(p+=1,b).month,b=c(p,b);var y=this._getYear(s,b,0);v=0===f&&0===m?d*r:60*r+v;var w=0===f?p:f;this.timeScaleArray.push({position:v,value:w,unit:l,hour:f,day:p,year:y,month:x.monthMod(b)}),f++}}},{key:"generateMinuteScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,f=n,p=s,b=(60-i-e/1e3)*h,v=0;v=60&&(d=0,24===(p+=1)&&(p=0)),this.timeScaleArray.push({position:b,value:d,unit:"minute",hour:p,minute:d,day:g,year:this._getYear(f,u,0),month:x.monthMod(u)}),b+=l,d++}},{key:"generateSecondScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,f=n,p=s,b=(1e3-e)/1e3*l,v=0;v=60&&(c=0,++d>=60&&(d=0,24===++p&&(p=0))),this.timeScaleArray.push({position:b,value:c,unit:"second",hour:p,minute:d,second:c,day:g,year:this._getYear(f,u,0),month:x.monthMod(u)}),b+=l,c++}},{key:"createRawDateString",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),"minute"===t.unit?i+=":"+("0"+e).slice(-2):i+=":"+(t.minute?("0"+t.minute).slice(-2):"00"),"second"===t.unit?i+=":"+("0"+e).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new R(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(n=l.year),"month"===t.unit&&(n=l.month),"day"===t.unit&&(n=l.day),"hour"===t.unit&&(n=l.hour),"minute"===t.unit&&(n=l.minute),"second"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:"removeOverlappingTS",value:function(t){var e,i=this,a=new m(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:"_getYear",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Yt=function(){function t(e,i){a(this,t),this.ctx=i,this.w=i.w,this.el=e}return r(t,[{key:"setupElements",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].indexOf(i)>-1,t.xyCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type||"boxPlot"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),m.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elAnnotations=t.dom.Paper.group().attr({class:"apexcharts-annotations"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elWrap.appendChild(t.dom.elLegendWrap),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]};s.series.map((function(e,g){var u=0;void 0!==t[g].type?("column"===t[g].type||"bar"===t[g].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"),h.series.push(e),h.i.push(g),u++,i.globals.columnSeries=h.series):"area"===t[g].type?(o.series.push(e),o.i.push(g),u++):"line"===t[g].type?(r.series.push(e),r.i.push(g),u++):"scatter"===t[g].type?(n.series.push(e),n.i.push(g)):"bubble"===t[g].type?(l.series.push(e),l.i.push(g),u++):"candlestick"===t[g].type?(c.series.push(e),c.i.push(g),u++):"boxPlot"===t[g].type?(d.series.push(e),d.i.push(g),u++):console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble"),u>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(g))}));var g=new Tt(this.ctx,e),u=new wt(this.ctx,e);this.ctx.pie=new Ct(this.ctx);var f=new Pt(this.ctx);this.ctx.rangeBar=new H(this.ctx,e);var p=new Lt(this.ctx),x=[];if(s.comboCharts){if(o.series.length>0&&x.push(g.draw(o.series,"area",o.i)),h.series.length>0)if(i.config.chart.stacked){var b=new yt(this.ctx,e);x.push(b.draw(h.series,h.i))}else this.ctx.bar=new F(this.ctx,e),x.push(this.ctx.bar.draw(h.series,h.i));if(r.series.length>0&&x.push(g.draw(r.series,"line",r.i)),c.series.length>0&&x.push(u.draw(c.series,c.i)),d.series.length>0&&x.push(u.draw(d.series,d.i)),n.series.length>0){var v=new Tt(this.ctx,e,!0);x.push(v.draw(n.series,"scatter",n.i))}if(l.series.length>0){var m=new Tt(this.ctx,e,!0);x.push(m.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":x=g.draw(s.series,"line");break;case"area":x=g.draw(s.series,"area");break;case"bar":if(a.chart.stacked)x=new yt(this.ctx,e).draw(s.series);else this.ctx.bar=new F(this.ctx,e),x=this.ctx.bar.draw(s.series);break;case"candlestick":x=new wt(this.ctx,e).draw(s.series);break;case"boxPlot":x=new wt(this.ctx,e).draw(s.series);break;case"rangeBar":x=this.ctx.rangeBar.draw(s.series);break;case"heatmap":x=new At(this.ctx,e).draw(s.series);break;case"treemap":x=new Xt(this.ctx,e).draw(s.series);break;case"pie":case"donut":case"polarArea":x=this.ctx.pie.draw(s.series);break;case"radialBar":x=f.draw(s.series);break;case"radar":x=p.draw(s.series);break;default:x=g.draw(s.series)}return x}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=x.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();"%"===a?x.isNumber(i[0])&&(0===i[0].width&&(i=x.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if("auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===s){var r=x.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),m.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),"%"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+"px"}t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};m.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new ct(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=x.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",l),t.config.chart.height&&String(t.config.chart.height).indexOf("%")>0||(e.dom.elWrap.style.height=l+"px",m.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+"px")}},{key:"coreCalculations",value:function(){new Z(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new O,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if("back"===e.config.xaxis.crosshairs.position)new tt(this.ctx).drawXCrosshairs();if("back"===e.config.yaxis[0].crosshairs.position)new tt(this.ctx).drawYCrosshairs();if("datetime"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Et(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var t=this,i=this.w;if(i.config.chart.brush.enabled&&"function"!=typeof i.config.chart.events.selection){var a=i.config.chart.brush.targets||[i.config.chart.brush.target];a.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,"function"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),"function"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),i.config.chart.events.selection=function(t,s){a.forEach((function(t){var a=ApexCharts.getChartByID(t),r=x.clone(i.config.yaxis);if(i.config.chart.brush.autoScaleYaxis&&1===a.w.globals.series.length){var o=new q(a);r=o.autoScaleY(a,r,s)}var n=a.w.config.yaxis.reduce((function(t,i,s){return[].concat(u(t),[e(e({},a.w.config.yaxis[s]),{},{min:r[0].min,max:r[0].max})])}),[]);a.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Ft=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"_updateOptions",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(n){var l=[e.ctx];r&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(r,h){var c=r.w;if(c.globals.shouldAnimate=s,a||(c.globals.resized=!0,c.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),t&&"object"===i(t)&&(r.config=new N(t),t=y.extendArrayProps(r.config,t,c),r.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,c.config=x.extend(c.config,t),o&&(c.globals.lastXAxis=t.xaxis?x.clone(t.xaxis):[],c.globals.lastYAxis=t.yaxis?x.clone(t.yaxis):[],c.globals.initialConfig=x.extend({},c.config),c.globals.initialSeries=x.clone(c.config.series),t.series))){for(var d=0;d2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialSeries=x.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:"_extendSeries",value:function(t,i){var a=this.w,s=a.config.series[i];return e(e({},a.config.series[i]),{},{name:t.name?t.name:s&&s.name,color:t.color?t.color:s&&s.color,type:t.type?t.type:s&&s.type,data:t.data?t.data:s&&s.data})}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(t,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"'], ").concat(s," circle[j='").concat(e,"'], ").concat(s," rect[j='").concat(e,"']")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"']")).members[0],"pie"!==i.config.chart.type&&"polarArea"!==i.config.chart.type&&"donut"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new m(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(t){var e=this.w;if(["min","max"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new D(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:"forceYAxisUpdate",value:function(t){return t.chart&&t.chart.stacked&&"100%"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:"revertDefaultAxisMinMax",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();It="undefined"!=typeof window?window:void 0,zt=function(t,e){var a=(void 0!==this?this:t).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns="http://www.w3.org/2000/svg",a.xmlns="http://www.w3.org/2000/xmlns/",a.xlink="http://www.w3.org/1999/xlink",a.svgjs="http://svgjs.dev",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return"Svgjs"+d(t)+a.did++},a.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute("id",this.eid(t)),i},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(e){return e?e.instance?e.instance:((i="svg"==e.nodeName?e.parentNode instanceof t.SVGElement?new a.Nested:new a.Doc:"linearGradient"==e.nodeName?new a.Gradient("linear"):"radialGradient"==e.nodeName?new a.Gradient("radial"):a[d(e.nodeName)]?new(a[d(e.nodeName)]):new a.Element(e)).type=e.nodeName,i.node=e,e.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(e.getAttribute("svgjs:data"))||{}),i):null;var i},a.prepare=function(){var t=e.getElementsByTagName("body")[0],i=(t?new a.Doc(t):a.adopt(e.documentElement).nested()).size(2,0);a.parser={body:t||e.documentElement,draw:i.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:i.polyline().node,path:i.path().node,native:a.create("svg")}},a.parser={native:a.create("svg")},e.addEventListener("DOMContentLoaded",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+="",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]}},r="mlhvqtcsaz".split(""),o=0,n=r.length;ol);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute("d",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return"none"!=this.style("display")},toString:function(){return this.attr("id")},classes:function(){var t=this.attr("class");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!=t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(e){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!e)return i;for(;i&&i.node instanceof t.SVGElement;){if("string"==typeof e?i.matches(e):i instanceof e)return i;if(!i.node.parentNode||"#document"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var i=e.createElement("svg");if(!(t&&this instanceof a.Parent))return i.appendChild(t=e.createElement("svg")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),i.innerHTML.replace(/^/,"").replace(/<\/svg>$/,"");i.innerHTML=""+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var s=0,r=i.firstChild.childNodes.length;s":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,s){"object"===i(t)&&(e=t.ease,s=t.delay,t=t.duration);var r=new a.Situation({duration:t||1e3,delay:s||0,ease:a.easing[e||"-"]||e});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on("finished.fx",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off("during.fx",i).on("during.fx",i),this.after((function(){this.off("during.fx",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--s)this[m[s]]=null!=t[m[s]]?t[m[s]]:e[m[s]]},extend:{extract:function(){var t=f(this,0,1);f(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=m.length-1;e>=0;e--)t[m[e]]=this[m[e]];return t},toString:function(){return"matrix("+v(this.a)+","+v(this.b)+","+v(this.c)+","+v(this.d)+","+v(this.e)+","+v(this.f)+")"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(t,e){var a;a=Array.isArray(t)?{x:t[0],y:t[1]}:"object"===i(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(t,e,s){if(null==t){for(t={},s=(e=this.node.attributes).length-1;s>=0;s--)t[e[s].nodeName]=a.regex.isNumber.test(e[s].nodeValue)?parseFloat(e[s].nodeValue):e[s].nodeValue;return t}if("object"===i(t))for(var r in t)this.attr(r,t[r]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?a.defaults.attrs[t]:a.regex.isNumber.test(e)?parseFloat(e):e;"stroke-width"==t?this.attr("stroke",parseFloat(e)>0?this._stroke:null):"stroke"==t&&(this._stroke=e),"fill"!=t&&"stroke"!=t||(a.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof a.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),"number"==typeof e?e=new a.Number(e):a.Color.isColor(e)?e=new a.Color(e):Array.isArray(e)&&(e=new a.Array(e)),"leading"==t?this.leading&&this.leading(e):"string"==typeof s?this.node.setAttributeNS(s,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!=t&&"x"!=t||this.rebuild(t,e)}return this}}),a.extend(a.Element,{transform:function(t,e){var s;return"object"!==i(t)?(s=new a.Matrix(this).extract(),"string"==typeof t?s[t]:s):(s=new a.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(s=e?s.multiply(new a.Matrix(t)):new a.Matrix(t)),this.attr("transform",s))}}),a.extend(a.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split("(");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return"matrix"==e[0]?t.multiply(p(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(t,e){if(arguments.length>1&&"boolean"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var a=0,s=this.arguments.length;a=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s=0;i--)e.childNodes[i]instanceof t.SVGElement&&x(e.childNodes[i]);return a.adopt(e).id(a.eid(e.nodeName))}function b(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function v(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if("string"==typeof e||a.Color.isRgb(e)||e&&"function"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr("transform",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)"function"==typeof a.Shape.prototype[e]&&"function"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var i=e.getElementById(function(t){var e=(t||"").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(i)},a.select=function(t,i){return new a.Set(a.utils.map((i||e).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var m="abcdef".split("");if("function"!=typeof t.CustomEvent){var y=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent("CustomEvent");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};y.prototype=t.Event.prototype,a.CustomEvent=y}else a.CustomEvent=t.CustomEvent;return a},"function"==typeof define&&define.amd?define((function(){return zt(It,It.document)})):"object"===("undefined"==typeof exports?"undefined":i(exports))&&"undefined"!=typeof module?module.exports=It.document?zt(It,It.document):function(t){return zt(t,t.document)}:It.SVG=zt(It,It.document), +/*! svg.filter.js - v2.0.2 - 2016-02-24 +* https://github.com/wout/svg.filter.js +* Copyright (c) 2016 Wout Fierens; Licensed MIT */ +function(){SVG.Filter=SVG.invent({create:"filter",inherit:SVG.Parent,extend:{source:"SourceGraphic",sourceAlpha:"SourceAlpha",background:"BackgroundImage",backgroundAlpha:"BackgroundAlpha",fill:"FillPaint",stroke:"StrokePaint",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr("in")&&this.autoSetIn&&t.attr("in",this.source),t.attr("result")||t.attr("result",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return"url(#"+this.attr("id")+")"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return"function"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr("filter",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr("filter",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr("in",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||"normal"})},colorMatrix:function(t,e){"matrix"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(" ").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr("flood-color",t),null!=e&&this.attr("flood-opacity",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr("href",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr("stdDeviation",r(Array.prototype.slice.call(arguments))):this.attr("stdDeviation","0 0")},morphology:function(t,e){this.attr({operator:t,radius:e})},tile:function(){},turbulence:function(t,e,i,a,s){this.attr({numOctaves:e,seed:i,stitchTiles:a,baseFrequency:t,type:s})}},i={merge:function(){var t;if(arguments[0]instanceof SVG.Set){var e=this;arguments[0].each((function(t){this instanceof SVG.MergeNode?e.put(this):(this instanceof SVG.Effect||this instanceof SVG.ParentEffect)&&e.put(new SVG.MergeNode(this))}))}else{t=Array.isArray(arguments[0])?arguments[0]:arguments;for(var i=0;i1&&(M*=a=Math.sqrt(a),T*=a);s=(new SVG.Matrix).rotate(I).scale(1/M,1/T).rotate(-I),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,z===X&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);X&&g>u&&(u+=2*Math.PI);!X&&gr.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,i){"function"!=typeof e&&"object"!=typeof e||(i=e,e=!0);var a=this.remember("_draggable")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,e,i){var a="string"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,"t"===t||"b"===t),y:this.pointCoord(i[1],e,"r"===t||"l"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=["points","pointsExclude"];for(var s in r){var o=this.options[r[s]];"string"==typeof o?o=o.length>0?o.split(/\s*,\s*/i):[]:"boolean"==typeof o&&"points"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"touchend.resize",(function(){e.done()})),SVG.on(window,"mousemove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"mouseup.resize",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var Rt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"initModules",value:function(){this.ctx.publicMethods=["updateOptions","updateSeries","appendData","appendSeries","toggleSeries","showSeries","hideSeries","setLocale","resetSeries","zoomX","toggleDataPointSelection","dataURI","exportToCSV","addXaxisAnnotation","addYaxisAnnotation","addPointAnnotation","clearAnnotations","removeAnnotation","paper","destroy"],this.ctx.eventList=["click","mousedown","mousemove","mouseleave","touchstart","touchmove","touchleave","mouseup","touchend"],this.ctx.animations=new b(this.ctx),this.ctx.axes=new K(this.ctx),this.ctx.core=new Yt(this.ctx.el,this.ctx),this.ctx.config=new N({}),this.ctx.data=new B(this.ctx),this.ctx.grid=new U(this.ctx),this.ctx.graphics=new m(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new tt(this.ctx),this.ctx.events=new J(this.ctx),this.ctx.exports=new j(this.ctx),this.ctx.localization=new Q(this.ctx),this.ctx.options=new L,this.ctx.responsive=new et(this.ctx),this.ctx.series=new E(this.ctx),this.ctx.theme=new it(this.ctx),this.ctx.formatters=new V(this.ctx),this.ctx.titleSubtitle=new at(this.ctx),this.ctx.legend=new ct(this.ctx),this.ctx.toolbar=new dt(this.ctx),this.ctx.dimensions=new lt(this.ctx),this.ctx.updateHelpers=new Ft(this.ctx),this.ctx.zoomPanSelection=new gt(this.ctx),this.ctx.w.globals.tooltip=new mt(this.ctx)}}]),t}(),Ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"clear",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:"killSVG",value:function(t){t.each((function(t,e){this.removeClass("*"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:"clearDomElements",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight="unset");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elAnnotations=null,r.elLegendWrap=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),Dt=new WeakMap;var Nt=function(){function t(e,i){a(this,t),this.opts=i,this.ctx=this,this.w=new W(i).init(),this.el=e,this.w.globals.cuid=x.randomId(),this.w.globals.chartID=this.w.config.chart.id?x.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Rt(this).initModules(),this.create=x.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return r(t,[{key:"render",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;if("function"==typeof a&&a(t,t.w),t.events.fireEvent("beforeMount",[t,t.w]),window.addEventListener("resize",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();"none"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),Dt.set(e,s)}(t.el.parentNode,t.parentResizeHandler),!t.css){var s=t.el.getRootNode&&t.el.getRootNode(),r=x.is("ShadowRoot",s),o=t.el.ownerDocument,n=o.getElementById("apexcharts-css");!r&&n||(t.css=document.createElement("style"),t.css.id="apexcharts-css",t.css.textContent='.apexcharts-canvas {\n position: relative;\n user-select: none;\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\n}\n\n\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px;\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, .5);\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n}\n\n\n.apexcharts-inner {\n position: relative;\n}\n\n.apexcharts-text tspan {\n font-family: inherit;\n}\n\n.legend-mouseover-inactive {\n transition: 0.15s ease all;\n opacity: 0.20;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0;\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, 0.96);\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30, 30, 30, 0.8);\n}\n\n.apexcharts-tooltip * {\n font-family: inherit;\n}\n\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #ECEFF1;\n border-bottom: 1px solid #ddd;\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid #333;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n font-weight: 600;\n margin-left: 5px;\n}\n\n.apexcharts-tooltip-title:empty,\n.apexcharts-tooltip-text-y-label:empty,\n.apexcharts-tooltip-text-y-value:empty,\n.apexcharts-tooltip-text-goals-label:empty,\n.apexcharts-tooltip-text-goals-value:empty,\n.apexcharts-tooltip-text-z-value:empty {\n display: none;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n font-weight: 600;\n}\n\n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-goals-group, \n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n display: flex;\n}\n.apexcharts-tooltip-text-goals-label:not(:empty),\n.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px;\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0px;\n margin-right: 10px;\n border-radius: 50%;\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px;\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0 !important;\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-box, .apexcharts-custom-tooltip {\n padding: 4px 8px;\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse;\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0;\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: bold;\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px;\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777;\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: bold;\n display: block;\n margin-bottom: 5px;\n}\n\n.apexcharts-xaxistooltip {\n opacity: 0;\n padding: 9px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-left: -6px;\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-left: -7px;\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%;\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n top: 100%;\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #ECEFF1;\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #ECEFF1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-yaxistooltip {\n opacity: 0;\n padding: 4px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-top: -6px;\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-top: -7px;\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n left: 100%;\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n right: 100%;\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1;\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none;\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0;\n}\n\n.apexcharts-selection-rect {\n cursor: move;\n}\n\n.svg_select_boundingRect, .svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n}\n.apexcharts-selection-rect + g .svg_select_boundingRect,\n.apexcharts-selection-rect + g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden;\n}\n\n.apexcharts-selection-rect + g .svg_select_points_l,\n.apexcharts-selection-rect + g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible;\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2;\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon,\n.apexcharts-reset-icon,\n.apexcharts-pan-icon,\n.apexcharts-selection-icon,\n.apexcharts-menu-icon,\n.apexcharts-toolbar-custom-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6E8192;\n text-align: center;\n}\n\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-menu-icon svg {\n fill: #6E8192;\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(0.76)\n}\n\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\n fill: #f3f4f5;\n}\n\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\n fill: #008FFB;\n}\n\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\n fill: #333;\n}\n\n.apexcharts-selection-icon,\n.apexcharts-menu-icon {\n position: relative;\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px;\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-reset-icon,\n.apexcharts-menu-icon {\n transform: scale(0.85);\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n transform: scale(0.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px;\n}\n\n.apexcharts-pan-icon {\n transform: scale(0.62);\n position: relative;\n left: 1px;\n top: 0px;\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6E8192;\n stroke-width: 2;\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008FFB;\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333;\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0px 6px 2px 6px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: 0.15s ease all;\n pointer-events: none;\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: 0.15s ease all;\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee;\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n}\n\n@media screen and (min-width: 768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1;\n }\n}\n\n.apexcharts-datalabel.apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-pie-label,\n.apexcharts-datalabels,\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value {\n cursor: default;\n pointer-events: none;\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: 0.3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease;\n}\n\n.apexcharts-canvas .apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-gridline,\n.apexcharts-annotation-rect,\n.apexcharts-xaxis-annotation-label,\n.apexcharts-yaxis-annotation-label,\n.apexcharts-point-annotation-label,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-line,\n.apexcharts-zoom-rect,\n.apexcharts-toolbar svg,\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-radar-series path,\n.apexcharts-radar-series polygon {\n pointer-events: none;\n}\n\n\n/* markers */\n\n.apexcharts-marker {\n transition: 0.15s ease all;\n}\n\n@keyframes opaque {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n\n/* Resize generated styles */\n\n@keyframes resizeanim {\n from {\n opacity: 0;\n }\n to {\n opacity: 0;\n }\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n}\n\n.resize-triggers,\n.resize-triggers>div,\n.contract-trigger:before {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.resize-triggers>div {\n background: #eee;\n overflow: auto;\n}\n\n.contract-trigger:before {\n width: 200%;\n height: 200%;\n}',r?s.prepend(t.css):o.head.appendChild(t.css))}var l=t.create(t.w.config.series,{});if(!l)return e(t);t.mount(l).then((function(){"function"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent("mounted",[t,t.w]),e(l)})).catch((function(t){i(t)}))}else i(new Error("Element not found"))}))}},{key:"create",value:function(t,e){var i=this.w;new Rt(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new D(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),"treemap"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new T(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),"category"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new y(this).getLargestMarkerSize(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new z(this);l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition();var h={plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}};return{elGraph:n,xyRatios:o,elInner:i.globals.dom.elGraphical,dimensions:h}}},{key:"mount",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error("Not enough data to display or target element not found"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),"treemap"!==a.config.chart.type&&i.axes.drawAxis(a.config.chart.type,e.xyRatios),i.grid=new U(i);var o=i.grid.drawGrid();i.annotations=new P(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),"back"===a.config.grid.position&&o&&a.globals.dom.elGraphical.add(o.el);var n=new _(t.ctx),l=new $(t.ctx);if(null!==o&&(n.xAxisLabelCorrections(o.xAxisTickWidth),l.setYAxisTextAlignments(),a.config.yaxis.map((function(t,e){-1===a.globals.ignoreYAxisIndexes.indexOf(e)&&l.yAxisTitleRotate(e,t.opposite)}))),"back"===a.config.annotations.position&&(a.globals.dom.Paper.add(a.globals.dom.elAnnotations),i.annotations.drawAxesAnnotations()),Array.isArray(e.elGraph))for(var h=0;h0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:"destroy",value:function(){var t,e;window.removeEventListener("resize",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=Dt.get(t))&&(e.disconnect(),Dt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===x.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Ht(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:"addEventListener",value:function(t,e){this.events.addEventListener(t,e)}},{key:"removeEventListener",value:function(t,e){this.events.removeEventListener(t,e)}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Z(this.ctx);return e.getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Z(this.ctx);return e.getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:"zoomX",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:"setLocale",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:"dataURI",value:function(t){return new j(this.ctx).dataURI(t)}},{key:"exportToCSV",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=new j(this.ctx);return e.exportToCSV(t)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:"_windowResizeHandler",value:function(){var t=this.w.config.chart.redrawOnWindowResize;"function"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:"getChartByID",value:function(t){var e=x.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),i=0;i2?s-2:0),o=2;o
    '+(i||"")+'
    '+t.ylabel+' '+t.start+' - '+t.end+"
    "}}]),s}(),D=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(t){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0;return x.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"candlestick",value:function(){var t=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:5,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-r},background:{enabled:!1},style:{colors:["#fff"]}},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var e=new H(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t):function(t){var e=new H(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"area",value:function(){return{stroke:{width:4,fill:{type:"solid",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"brush",value:function(t){return x.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),"bar"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t}),t}},{key:"convertCatToNumeric",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:"convertCatToNumericXaxis",value:function(t,e,i){t.xaxis.type="numeric",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return x.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return x.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||"dataPoints",t}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"polarArea",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:"_getBoxTooltip",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
    \n '.concat(t.config.series[e].name?t.config.series[e].name:"series-"+(e+1),": ").concat(t.globals.series[e][i],"\n
    "):'
    ')+"
    ".concat(a[0],': ')+r+"
    "+"
    ".concat(a[1],': ')+o+"
    "+(n?"
    ".concat(a[2],': ')+n+"
    ":"")+"
    ".concat(a[3],': ')+l+"
    "+"
    ".concat(a[4],': ')+h+"
    "}}]),t}(),N=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(t){var e=t.responsiveOverride,a=this.opts,s=new L,r=new D(a);this.chartType=a.chart.type,"histogram"===this.chartType&&(a.chart.type="bar",a=x.extend({plotOptions:{bar:{columnWidth:"99.99%"}}},a)),a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&"object"===i(a)){var l={};l=-1!==["line","area","bar","candlestick","boxPlot","rangeBar","histogram","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),a.chart.brush&&a.chart.brush.enabled&&(l=r.brush(l)),a.chart.stacked&&"100%"===a.chart.stackType&&(a=r.stacked100(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},e||(a.xaxis.convertedCatToNumeric=!1),((a=this.checkForCatToNumericXAxis(this.chartType,l,a)).chart.sparkline&&a.chart.sparkline.enabled||window.Apex.chart&&window.Apex.chart.sparkline&&window.Apex.chart.sparkline.enabled)&&(l=r.sparkline(l)),n=x.extend(o,l)}var h=x.extend(n,window.Apex);return o=x.extend(h,a),o=this.handleUserInputErrors(o)}},{key:"checkForCatToNumericXAxis",value:function(t,e,i){var a=new D(i),s=("bar"===t||"boxPlot"===t)&&i.plotOptions&&i.plotOptions.bar&&i.plotOptions.bar.horizontal,r="pie"===t||"polarArea"===t||"donut"===t||"radar"===t||"radialBar"===t||"heatmap"===t,o="datetime"!==i.xaxis.type&&"numeric"!==i.xaxis.type,n=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return s||r||!o||"between"===n||(i=a.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(t,e){var i=new L;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=x.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[x.extend(i.yAxis,t.yaxis)]:t.yaxis=x.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name="series-".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=x.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both."),t}},{key:"extendAnnotations",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:"extendYAxisAnnotations",value:function(t){var e=new L;return t.annotations.yaxis=x.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:"extendXAxisAnnotations",value:function(t){var e=new L;return t.annotations.xaxis=x.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:"extendPointAnnotations",value:function(t){var e=new L;return t.annotations.points=x.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:"checkForDarkTheme",value:function(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.chart.background||(t.chart.background="#424242"),t.theme.palette||(t.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(e.chart.type," chart is not supported.")),e.yaxis[0].reversed=!1),e}}]),t}(),O=function(){function t(){a(this,t)}return r(t,[{key:"initGlobalVars",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRangeBar=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasGroups=!1,t.groups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.xaxisLabelsCount=0,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:"globalVars",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:"init",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=x.extend({},t),e.initialSeries=x.clone(t.series),e.lastXAxis=x.clone(e.initialConfig.xaxis),e.lastYAxis=x.clone(e.initialConfig.yaxis),e}}]),t}(),W=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(){var t=new N(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new O).init(t)}}}]),t}(),B=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return r(t,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var t=this.w.config.series.slice(),e=new E(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new E(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s="boxPlot"===i.chart.type||"boxPlot"===i.series[e].type,r=0;r=5?this.twoDSeries.push(x.parseNumber(t[e].data[r][4])):this.twoDSeries.push(x.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),"datetime"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new R(i),o=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isRangeBar="rangeBar"===a.chart.type&&s.isBarHorizontal,s.hasGroups="category"===a.xaxis.type&&a.xaxis.group.groups.length>0,s.hasGroups&&(s.groups=a.xaxis.group.groups);for(var n=function(){for(var t=0;t0&&(this.twoDSeriesX=o,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var h=t[l].data.map((function(t){return x.parseNumber(t)}));s.series.push(h)}s.seriesZ.push(this.threeDSeries),void 0!==t[l].name?s.seriesNames.push(t[l].name):s.seriesNames.push("series-"+parseInt(l+1,10)),void 0!==t[l].color?s.seriesColors.push(t[l].color):s.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRangeBar.length&&(i.seriesRangeBar.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=i.labels.filter((function(t,e,i){return i.indexOf(t)===e}))),e.xaxis.convertedCatToNumeric)new D(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:"_generateExternalLabels",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},"function"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,"function"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),G=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getLabel",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"12px",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?"":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new V(this.ctx),f=l;o&&(h=u.xLabelFormat(c,l,f,{i:a,dateFormatter:new R(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new R(this.ctx).formatDate,w:n})));var p=function(t){var i=null;return e.forEach((function(t){"month"===t.unit?i="year":"day"===t.unit?i="month":"hour"===t.unit?i="day":"minute"===t.unit&&(i="hour")})),i===t};e.length>0?(g=p(e[a].unit),i=e[a].position,h=e[a].value):"datetime"===n.config.xaxis.type&&void 0===d&&(h=""),void 0===h&&(h=""),h=Array.isArray(h)?h:h.toString();var x=new m(this.ctx),b={};b=n.globals.rotateXLabels&&o?x.getTextRects(h,parseInt(r,10),null,"rotate(".concat(n.config.xaxis.labels.rotate," 0 0)"),!1):x.getTextRects(h,parseInt(r,10));var v=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(0===h.indexOf("NaN")||0===h.toLowerCase().indexOf("invalid")||h.toLowerCase().indexOf("infinity")>=0||s.indexOf(h)>=0&&v)&&(h=""),{x:i,text:h,textRect:b,isBold:g}}},{key:"checkLabelBasedOnTickamount",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return"dataPoints"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=""),e}},{key:"checkForOverflowingLabels",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),"heatmap"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),j=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"scaleSvgNode",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,"width")),a=parseFloat(t.getAttributeNS(null,"height"));t.setAttributeNS(null,"width",i*e),t.setAttributeNS(null,"height",a*e),t.setAttributeNS(null,"viewBox","0 0 "+i+" "+a)}},{key:"fixSvgStringForIe11",value:function(t){if(!x.isIE11())return t.replace(/ /g," ");var e=0,i=t.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g,(function(t){return 2===++e?'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"':t}));return i=(i=i.replace(/xmlns:NS\d+=""/g,"")).replace(/NS\d+:(\w+:\w+=")/g,"$1")}},{key:"getSvgString",value:function(t){null==t&&(t=1);var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:"cleanup",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=t.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,(function(t){t.setAttribute("width",0)})),e&&e[0]&&(e[0].setAttribute("x",-500),e[0].setAttribute("x1",-500),e[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:"image/svg+xml;charset=utf-8"});return URL.createObjectURL(e)}},{key:"dataURI",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement("canvas");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o="transparent"===a.config.chart.background?"#fff":a.config.chart.background,n=r.getContext("2d");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&x.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d="data:image/svg+xml,"+encodeURIComponent(l),g=new Image;g.crossOrigin="anonymous",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL("image/png");i({imgURI:e})}},g.src=d}}))}},{key:"exportToSVG",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,".svg")}},{key:"exportToPng",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+".png"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,".png")}))}},{key:"exportToCSV",value:function(t){var e=this,i=t.series,a=t.columnDelimiter,s=void 0===a?",":a,r=t.lineDelimiter,o=void 0===r?"\n":r,n=this.w;i||(i=n.config.series);var l=[],h=[],c="",d=new B(this.ctx),g=new G(this.ctx),u=function(t){var i="";if(n.globals.axisCharts){if("category"===n.config.xaxis.type||n.config.xaxis.convertedCatToNumeric)if(n.globals.isBarHorizontal){var a=n.globals.yLabelFormatters[0],r=new E(e.ctx).getActiveConfigSeriesIndex();i=a(n.globals.labels[t],{seriesIndex:r,dataPointIndex:t,w:n})}else i=g.getLabel(n.globals.labels,n.globals.timescaleLabels,0,t).text;"datetime"===n.config.xaxis.type&&(n.config.xaxis.categories.length?i=n.config.xaxis.categories[t]:n.config.labels.length&&(i=n.config.labels[t]))}else i=n.config.labels[t];return Array.isArray(i)&&(i=i.join(" ")),x.isNumber(i)?i:i.split(s).join("")};l.push(n.config.chart.toolbar.export.csv.headerCategory),i.map((function(t,e){var i=t.name?t.name:"series-".concat(e);n.globals.axisCharts&&l.push(i.split(s).join("")?i.split(s).join(""):"series-".concat(e))})),n.globals.axisCharts||(l.push(n.config.chart.toolbar.export.csv.headerValue),h.push(l.join(s))),i.map((function(t,e){n.globals.axisCharts?function(t,e){if(l.length&&0===e&&h.push(l.join(s)),t.data&&t.data.length)for(var a=0;a=10?n.config.chart.toolbar.export.csv.dateFormatter(r):x.isNumber(r)?r:r.split(s).join("")));for(var o=0;o0&&!i.globals.isBarHorizontal&&(this.xaxisLabels=i.globals.timescaleLabels.slice()),i.config.xaxis.overwriteCategories&&(this.xaxisLabels=i.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===i.config.xaxis.position?this.offY=0:this.offY=i.globals.gridHeight+1,this.offY=this.offY+i.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===i.config.chart.type&&i.config.plotOptions.bar.horizontal,this.xaxisFontSize=i.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=i.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=i.config.xaxis.labels.style.colors,this.xaxisBorderWidth=i.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=i.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=i.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=i.config.xaxis.axisBorder.height,this.yaxis=i.config.yaxis[0]}return r(t,[{key:"drawXaxis",value:function(){var t=this.w,e=new m(this.ctx),i=e.group({class:"apexcharts-xaxis",transform:"translate(".concat(t.config.xaxis.offsetX,", ").concat(t.config.xaxis.offsetY,")")}),a=e.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,f=l.xaxisForeColors||this.xaxisForeColors,p=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m="category"===d.config.xaxis.type?d.globals.dataPoints:v;if(s){var y=m>1?m-1:m;o=d.globals.gridWidth/y,b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&"dataPoints"!==d.config.xaxis.tickAmount&&"datetime"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(t&&y.text&&d.globals.xaxisLabelsCount++,d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-("top"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:"middle",fontWeight:y.isBold?600:p,fontSize:g,fontFamily:u,foreColor:Array.isArray(f)?t&&d.config.xaxis.convertedCatToNumeric?f[d.globals.minX+s-1]:f[s]:f,isPlainText:!1,cssClass:(t?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+x});if(i.add(k),t){var A=document.createElementNS(d.globals.SVGNS,"title");A.textContent=Array.isArray(y.text)?y.text.join(" "):y.text,k.node.appendChild(A),""!==y.text&&(h.push(y.text),c.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,"top"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new m(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}return r(t,[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new m(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new m(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elForecastMask.setAttribute("id","forecastMask".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elNonForecastMask.setAttribute("id","nonForecastMask".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;("bar"===r||"rangeBar"===r||"candlestick"===r||"boxPlot"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,"#fff");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector("defs");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||"radar"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({x1:i,y1:a,x2:s,y2:r,parent:n});var h=0;if(l.globals.hasGroups&&"between"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&(a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,xAxisTickWidth:t.globals.gridWidth/i}}},{key:"drawGridBands",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:"column"}),h+=i.globals.gridWidth/l}}]),t}(),q=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"niceScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if("dataPoints"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!x.isNumber(t)&&!x.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE){t=0,e=i;var n=this.linearScale(t,e,i);return n}t>e?(console.warn("axis.min cannot be greater than axis.max"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var l=[];o<1&&s&&("candlestick"===r.config.chart.type||"candlestick"===r.config.series[a].type||"boxPlot"===r.config.chart.type||"boxPlot"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var h=i+1;h<2?h=2:h>2&&(h-=2);var c=o/h,d=Math.floor(x.log10(c)),g=Math.pow(10,d),u=Math.round(c/g);u<1&&(u=1);var f=u*g,p=f*Math.floor(t/f),b=f*Math.ceil(e/f),v=p;if(s&&o>2){for(;l.push(v),!((v+=f)>b););return{result:l,niceMin:l[0],niceMax:l[l.length-1]}}var m=t;(l=[]).push(m);for(var y=Math.abs(e-t)/i,w=0;w<=i;w++)m+=y,l.push(m);return l[l.length-2]>=e&&l.pop(),{result:l,niceMin:l[0],niceMax:l[l.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);"dataPoints"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:"logarithmicScaleNice",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,r.logBase),a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase);else if(i!==-Number.MAX_VALUE&&x.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:"setXScale",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&x.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:"setMultipleYScales",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:"sameScaleInMultipleAxes",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o="function"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n="function"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:"autoScaleY",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis is not supported in a multi-yaxis chart."),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var f=o[n];r?(f=u[n],h=c=f,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),rd&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),Z=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.scales=new q(e)}return r(t,[{key:"init",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:"getMinYMaxY",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;"candlestick"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):"boxPlot"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;dh[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return"rangeBar"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),"bar"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){["min","max"].forEach((function(i){void 0!==e.xaxis[i]&&"number"==typeof e.xaxis[i]&&("min"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:"setXRange",value:function(){var t=this.w.globals,e=this.w.config,i="numeric"===e.xaxis.type||"datetime"===e.xaxis.type||"category"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;et.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):"dataPoints"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:"_setStackedMinMax",value:function(){var t=this.w.globals,e=[],i=[];if(t.series.length)for(var a=0;a0?s=s+parseFloat(t.series[o][a])+1e-4:r+=parseFloat(t.series[o][a])),o===t.series.length-1&&(e.push(s),i.push(r));for(var n=0;n=0;b--)x(b);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:"apexcharts-yaxis-title"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:"end",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g=0;d?g++:g--){var u=h[g];u=l(u,g,e);var f=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var p=this.axesUtils.getLabel(h,c,f,g,this.drawnLabels,this.xaxisFontSize);f=p.x,u=p.text,this.drawnLabels.push(p.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=""),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u="")}var x=i.drawText({x:f,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,"title");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(t){var e=this.w,i=new m(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;"bar"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);t.add(r)}}},{key:"inversedYAxisTitleText",value:function(t){var e=this.w,i=new m(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new m(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute("x",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute("transform","rotate(".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(e=x.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));r=x.listToArray(r);var o=s.getBoundingClientRect();"left"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","start")})),a.opposite||s.setAttribute("transform","translate(-".concat(o.width,", 0)"))):"center"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","middle")})),s.setAttribute("transform","translate(".concat(o.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute("text-anchor","end")})),a.opposite&&s.setAttribute("transform","translate(".concat(o.width,", 0)")))}}))}}]),t}(),J=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.documentEvent=x.bind(this.documentEvent,this)}return r(t,[{key:"addEventListener",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:"removeEventListener",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:"fireEvent",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=x.extend(C,i);this.w.globals.locale=a.options}}]),t}(),K=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawAxis",value:function(t,e){var i,a,s=this.w.globals,r=this.w.config,o=new _(this.ctx),n=new $(this.ctx);s.axisCharts&&"radar"!==t&&(s.isBarHorizontal?(a=n.drawYaxisInversed(0),i=o.drawXaxisInversed(0),s.dom.elGraphical.add(i),s.dom.elGraphical.add(a)):(i=o.drawXaxis(),s.dom.elGraphical.add(i),r.yaxis.map((function(t,e){-1===s.ignoreYAxisIndexes.indexOf(e)&&(a=n.drawYaxis(e),s.dom.Paper.add(a))}))))}}]),t}(),tt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawXCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=new v(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,f=s.blur,p=s.color,b=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===r&&(y=e.drawGradient("vertical",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!x.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!x.isNumber(A)||A<0)&&(A=0),w.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:f,color:p,opacity:b})),t.globals.dom.elGraphical.add(w)}}},{key:"drawYCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),t.globals.dom.elGraphical.add(r)}}]),t}(),et=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkResponsiveConfig",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new N({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=x.extend(n,t),t=x.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l0&&"function"==typeof e.config.colors[0]&&(e.globals.colors=e.config.series.map((function(i,a){var s=e.config.colors[a];return s||(s=e.config.colors[0]),"function"==typeof s?(t.isColorFn=!0,s({value:e.globals.axisCharts?e.globals.series[a][0]?e.globals.series[a][0]:0:e.globals.series[a],seriesIndex:a,dataPointIndex:a,w:e})):s})))),e.globals.seriesColors.map((function(t,i){t&&(e.globals.colors[i]=t)})),e.config.theme.monochrome.enabled){var a=[],s=e.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(s=e.globals.series[0].length*e.globals.series.length);for(var r=e.config.theme.monochrome.color,o=1/(s/e.config.theme.monochrome.shadeIntensity),n=e.config.theme.monochrome.shadeTo,l=0,h=0;h2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getLargestStringFromMultiArr",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,u(a));i=e[a.indexOf(s)]}return i}}]),t}(),rt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"getxAxisLabelsCoords",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==e.config.legend.position&&"right"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=x.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new V(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new R(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new R(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||""===String(r).trim())&&(o=r="1");var h=new m(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var t,e=this.w;if(!e.globals.hasGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=x.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new m(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e}),0);return 1.05*(t=new m(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){(function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)})(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c="right"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||"bar"!==s.chart.type&&"candlestick"!==s.chart.type&&"rangeBar"!==s.chart.type&&"boxPlot"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else"datetime"===r?e.dCtx.gridPad.rightString(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var f=e.globals.labels.slice();g=h(g=x.getLargestStringFromArr(f),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,f)}var p=new m(t.dCtx.ctx),b="rotate(".concat(r.labels.rotate," 0 0)"),v=p.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1),y=v;g!==u&&(y=p.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new m(t.dCtx.ctx),r="rotate(".concat(e.title.rotate," 0 0)"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new G(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),nt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"gridPadForColumnsInNumericAxis",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return"bar"===t||"rangeBar"===t||"candlestick"===t||"boxPlot"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:"gridPadFortitleSubtitle",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;["title","subtitle"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||"bottom"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w,a=new G(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new st(this),this.dimYAxis=new ot(this),this.dimXAxis=new rt(this),this.dimGrid=new nt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return r(t,[{key:"plotCoords",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&(e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=g(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;("radar"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||"treemap"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch("top"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case"bottom":i.translateY=c,d();break;case"top":i.translateY=this.lgRect.height+c,d();break;case"left":i.translateY=c,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case"right":i.translateY=c,i.translateX=l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new $(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s="pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case"bottom":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"top":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"left":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case"right":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(t,e,i){var a=this.w,s=a.globals.hasGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&"bottom"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),t}(),ht=function(){function t(e){a(this,t),this.w=e.w,this.lgCtx=e}return r(t,[{key:"getLegendStyles",value:function(){var t=document.createElement("style");t.setAttribute("type","text/css");var e=document.createTextNode("\t\n \t\n .apexcharts-legend {\t\n display: flex;\t\n overflow: auto;\t\n padding: 0 10px;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\t\n flex-wrap: wrap\t\n }\t\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n flex-direction: column;\t\n bottom: 0;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n justify-content: flex-start;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\t\n justify-content: center; \t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\t\n justify-content: flex-end;\t\n }\t\n .apexcharts-legend-series {\t\n cursor: pointer;\t\n line-height: normal;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\t\n display: flex;\t\n align-items: center;\t\n }\t\n .apexcharts-legend-text {\t\n position: relative;\t\n font-size: 14px;\t\n }\t\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n pointer-events: none;\t\n }\t\n .apexcharts-legend-marker {\t\n position: relative;\t\n display: inline-block;\t\n cursor: pointer;\t\n margin-right: 3px;\t\n border-style: solid;\n }\t\n \t\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\t\n display: inline-block;\t\n }\t\n .apexcharts-legend-series.apexcharts-no-click {\t\n cursor: auto;\t\n }\t\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n display: none !important;\t\n }\t\n .apexcharts-inactive-legend {\t\n opacity: 0.45;\t\n }");return t.appendChild(e),t}},{key:"getLegendBBox",value:function(){var t=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:"appendToForeignObject",value:function(){var t=this.w.globals;t.dom.elLegendForeign=document.createElementNS(t.SVGNS,"foreignObject");var e=t.dom.elLegendForeign;e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("width",t.svgWidth),e.setAttribute("height",t.svgHeight),t.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),e.appendChild(t.dom.elLegendWrap),e.appendChild(this.getLegendStyles()),t.dom.Paper.node.insertBefore(e,t.dom.elGraphical.node)}},{key:"toggleDataSeries",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||"radialBar"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t+1,"'] path")),n=a.config.chart.type;if("pie"===n||"polarArea"===n||"donut"===n){var l=a.config.plotOptions.pie.donut.labels;new m(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire("click")}}},{key:"hideSeries",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=x.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l0){for(var r=0;r-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),ct=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed="bar"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new ht(this)}return r(t,[{key:"init",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),x.isIE11()?document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"drawLegends",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if("heatmap"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+" - "+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h=o(a[l],{seriesIndex:l,w:e}),c=!1,d=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g0)for(var u=0;u0?l-10:0)+(h>0?h-10:0)}a.style.position="absolute",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=o+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px");["width","height"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+"px")}))}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.baseEl.querySelector(".apexcharts-legend").style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new lt(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;"bottom"===t.config.legend.position?r=-e.clwh/1.8:"top"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new E(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains("apexcharts-inactive-legend")&&i&&new E(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:"onLegendClick",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(t.target.getAttribute("rel"),10)-1,a="true"===t.target.getAttribute("data:collapsed"),s=this.w.config.chart.events.legendClick;"function"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;"function"==typeof r&&t.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),"treemap"!==e.config.chart.type&&"heatmap"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),dt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=i.globals.minX,this.maxX=i.globals.maxX}return r(t,[{key:"createToolbar",value:function(){var t=this,e=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=e.config.chart.toolbar.offsetY+"px",a.style.right=3-e.config.chart.toolbar.offsetX+"px",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\n \n \n\n'),o("zoomOut",this.elZoomOut,'\n \n \n\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:"zoom"===i?t.elZoom:t.elSelection,icon:"string"==typeof t.t[i]?t.t[i]:"zoom"===i?'\n \n \n \n':'\n \n \n',title:t.localeValues["zoom"===i?"selectionZoom":"selection"],class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(i,"-icon")})};n("zoom"),n("selection"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:"string"==typeof this.t.pan?this.t.pan:'\n \n \n \n \n \n \n \n',title:this.localeValues.pan,class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),o("reset",this.elZoomReset,'\n \n \n'),this.t.download&&r.push({el:this.elMenuIcon,icon:"string"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var l=0;l0&&e.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:"translate("+o+", "+l+")"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":h.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":h.config.chart.zoom.zoomedArea.stroke.opacity}),m.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,"fill-opacity":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,"stroke-width":h.config.chart.selection.stroke.width,"stroke-dasharray":h.config.chart.selection.stroke.dashArray,"stroke-opacity":h.config.chart.selection.stroke.opacity}),m.setAttrs(d.node,g))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g="x"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:"y"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging("resizing"),g}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;"resizing"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n("x"),y:n("y"),width:n("width"),height:n("height")};a.globals.selection=l,"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=x.clone(a.globals.initialConfig.yaxis),f=x.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),"xy"!==i&&"x"!==i||(f={min:h,max:c}),"xy"!==i&&"y"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var p=new q(s.ctx);u=p.autoScaleY(s.ctx,u,{xaxis:f})}if(o){var b=o.getBeforeZoomRange(f,u);b&&(f=b.xaxis?b.xaxis:f,u=b.yaxis?b.yaxis:u)}var v={xaxis:f};a.config.chart.group||(v.yaxis=u),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&o.zoomCallback(f,u)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:c},"xy"!==i&&"y"!==i||(y=x.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:"panDragging",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection="left":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection="right":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection="up":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection="down")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:"delayedPanScrolled",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;"left"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):"right"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:"panScrolled",value:function(t,e){var i=this.w,a=this.xyRatios,s=x.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),"left"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):"right"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new q(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:"updateScrolledChart",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(),ut=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return r(t,[{key:"getNearestValues",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):r.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):r.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var f=Math.round(g/h),p=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(f=Math.ceil(g/h),f-=1);var b=null,v=null,m=[],y=[];if(r.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),r.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);b=(v=this.closestInMultiArray(k,A,m,y)).index,f=v.j,null!==b&&(m=r.globals.seriesXvalues[b],f=(v=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===b?-1:b,(!f||f<1)&&(f=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=p:r.globals.capturedDataPointIndex=f,{capturedSeries:b,j:r.globals.isBarHorizontal?p:f,hoverX:g,hoverY:u}}},{key:"closestInMultiArray",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a0?e:-1})),s=0;s0)for(var a=0;ai?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(".apexcharts-marker"))})),e}},{key:"hasMarkers",value:function(){return this.getElMarkers().length>0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(i.attrs.name,"
    "),e+="
    ".concat(i.val,"
    ")})),v.innerHTML=t+"
    ",m.innerHTML=e+"
    "};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML="",m.innerHTML=""):y()}else v.innerHTML="",m.innerHTML="";null!==f&&(a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=l.config.tooltip.z.title,a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=void 0!==f?f:"");o&&p[0]&&(null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?p[0].parentNode.style.display="none":p[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:"toggleActiveInactiveSeries",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("apexcharts-active"),i.style.display=e.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",o="",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&"treemap"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var d=r;a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?r=new V(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new R(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o="function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(" "):l,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(o)?o.join(" "):o,zVal:n}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),pt=function(){function t(e){a(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return r(t,[{key:"moveXCrosshairs",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&m.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&m.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("apexcharts-active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid(),d=c.getBoundingClientRect();h=s.e.clientY+a.globals.translateY-d.top-o.ttHeight/2}else a.globals.isBarHorizontal||(o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY),h<0&&(h=0));isNaN(l)||(l+=a.globals.translateX,r.style.left=l+"px",r.style.top=h+"px")}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),r=0;r0&&(h.setAttribute("r",n),h.setAttribute("cx",i),h.setAttribute("cy",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:"moveDynamicPointsOnHover",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new E(this.ctx).getActiveConfigSeriesIndex(!0);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h0?(l[h]&&l[h].setAttribute("r",n),l[h]&&l[h].setAttribute("cy",d)):l[h]&&l[h].setAttribute("r",0)}}if(this.moveXCrosshairs(s),!i.fixedTooltip){var g=r||a.globals.gridHeight;this.moveTooltip(s,g,n)}}},{key:"moveStickyTooltipOverBars",value:function(t){var e=this.w,i=this.ttCtx,a=e.globals.columnSeries?e.globals.columnSeries.length:e.globals.series.length,s=a>=2&&a%2==0?Math.floor(a/2):Math.floor(a/2)+1;e.globals.isBarHorizontal&&(s=new E(this.ctx).getActiveConfigSeriesIndex(!1,"desc")+1);var r=e.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(s,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"']")),o=r?parseFloat(r.getAttribute("cx")):0,n=r?parseFloat(r.getAttribute("cy")):0,l=r?parseFloat(r.getAttribute("barWidth")):0,h=r?parseFloat(r.getAttribute("barHeight")):0,c=i.getElGrid().getBoundingClientRect(),d=r.classList.contains("apexcharts-candlestick-area")||r.classList.contains("apexcharts-boxPlot-area");if(e.globals.isXNumeric?(r&&!d&&(o-=a%2!=0?l/2:0),r&&d&&e.globals.comboCharts&&(o-=l/2)):e.globals.isBarHorizontal||(o=i.xAxisTicksPositions[t-1]+i.dataPointsDividedWidth/2,isNaN(o)&&(o=i.xAxisTicksPositions[t]-i.dataPointsDividedWidth/2)),e.globals.isBarHorizontal?(n>e.globals.gridHeight/2&&(n-=i.tooltipRect.ttHeight),(n=n+e.config.grid.padding.top+h/3)+h>e.globals.gridHeight&&(n=e.globals.gridHeight-h)):e.config.tooltip.followCursor?n=i.e.clientY-c.top-i.tooltipRect.ttHeight/2:n+i.tooltipRect.ttHeight+15>e.globals.gridHeight&&(n=e.globals.gridHeight),n<-10&&(n=-10),e.globals.isBarHorizontal||this.moveXCrosshairs(o),!i.fixedTooltip){var g=n||e.globals.gridHeight;this.moveTooltip(o,g)}}}]),t}(),xt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new pt(e)}return r(t,[{key:"drawDynamicPoints",value:function(){var t=this.w,e=new m(this.ctx),i=new T(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=u(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute("data:realIndex"))-parseFloat(e.getAttribute("data:realIndex"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute("cx"),o=e.getAttribute("cy");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if("radar"===s.config.chart.type){var n=this.ttCtx.getElGrid(),l=n.getBoundingClientRect();r=this.ttCtx.e.clientX-l.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),o=e.config.markers.hover.size,n=0;n=0?t[e].setAttribute("r",i):t[e].setAttribute("r",0)}}}]),t}(),bt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e}return r(t,[{key:"getAttr",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:"handleHeatTreeTooltip",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains("apexcharts-".concat(r,"-rect"))){var l=this.getAttr(e,"i"),h=this.getAttr(e,"j"),c=this.getAttr(e,"cx"),d=this.getAttr(e,"cy"),g=this.getAttr(e,"width"),u=this.getAttr(e,"height");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var f=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-f.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-f.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx"),10),c=parseInt(s.paths.getAttribute("cy"),10),d=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,l.intersect){var g=x.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),"mouseup"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)?c=r.globals.svgHeight-o.tooltipRect.ttHeight:c<0&&(c=0);var f=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),p=r.globals.isMultipleYAxis?r.config.yaxis[f]&&r.config.yaxis[f].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!p?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(p&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),!p||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),o.tooltipRect.ttHeight+c>r.globals.gridHeight?c=r.globals.gridHeight-o.tooltipRect.ttHeight+r.globals.translateY:(c=c+r.globals.translateY-o.tooltipRect.ttHeight/2)<0&&(c=0),n.style.left=h+r.globals.translateX+"px",n.style.top=c+"px")}},{key:"getBarTooltipXY",value:function(t){var e=t.e,i=t.opt,a=this.w,s=null,r=this.ttCtx,o=0,n=0,l=0,h=0,c=0,d=e.target.classList;if(d.contains("apexcharts-bar-area")||d.contains("apexcharts-candlestick-area")||d.contains("apexcharts-boxPlot-area")||d.contains("apexcharts-rangebar-area")){var g=e.target,u=g.getBoundingClientRect(),f=i.elGrid.getBoundingClientRect(),p=u.height;c=u.height;var x=u.width,b=parseInt(g.getAttribute("cx"),10),v=parseInt(g.getAttribute("cy"),10);h=parseFloat(g.getAttribute("barWidth"));var m="touchmove"===e.type?e.touches[0].clientX:e.clientX;s=parseInt(g.getAttribute("j"),10),o=parseInt(g.parentNode.getAttribute("rel"),10)-1;var y=g.getAttribute("data-range-y1"),w=g.getAttribute("data-range-y2");a.globals.comboCharts&&(o=parseInt(g.parentNode.getAttribute("data:realIndex"),10)),r.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:o,j:s,y1:y?parseInt(y,10):null,y2:w?parseInt(w,10):null,shared:!r.showOnIntersect&&a.config.tooltip.shared,e:e}),a.config.tooltip.followCursor?a.globals.isBarHorizontal?(n=m-f.left+15,l=v-r.dataPointsDividedHeight+p/2-r.tooltipRect.ttHeight/2):(n=a.globals.isXNumeric?b-x/2:b-r.dataPointsDividedWidth+x/2,l=e.clientY-f.top-r.tooltipRect.ttHeight/2-15):a.globals.isBarHorizontal?((n=b)0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),mt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.tConfig=i.config.tooltip,this.tooltipUtil=new ut(this),this.tooltipLabels=new ft(this),this.tooltipPosition=new pt(this),this.marker=new xt(this),this.intersect=new bt(this),this.axesTooltip=new vt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!i.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return r(t,[{key:"getElTooltip",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip"):null}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new _(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&"rangeBar"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement("div");o.classList.add("apexcharts-tooltip-series-group"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add("apexcharts-tooltip-series-group-hidden");var n=document.createElement("span");n.classList.add("apexcharts-tooltip-marker"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement("div");l.classList.add("apexcharts-tooltip-text"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,["y","goals","z"].forEach((function(t){var e=document.createElement("div");e.classList.add("apexcharts-tooltip-".concat(t,"-group"));var i=document.createElement("span");i.classList.add("apexcharts-tooltip-text-".concat(t,"-label")),e.appendChild(i);var a=document.createElement("span");a.classList.add("apexcharts-tooltip-text-".concat(t,"-value")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf("right")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf("bottom")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+"px",e.style.top=o+"px",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:"seriesHover",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:"seriesHoverByContext",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip();if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new E(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:"axisChartsTooltips",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n="touchmove"===a.type?a.touches[0].clientX:a.clientX,l="touchmove"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,lo.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if("mousemove"===a.type||"touchmove"===a.type||"mouseup"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add("apexcharts-active");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add("apexcharts-active"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if("heatmap"===r.config.chart.type||"treemap"===r.config.chart.type){var f=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=f.x,i=f.y,c.style.left=e+"px",c.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var p=0;pl.width?this.handleMouseOut(a):null!==n?this.handleStickyCapturedSeries(t,n,a,o):(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal)&&this.create(t,this,0,o,a.ttItems)}},{key:"handleStickyCapturedSeries",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);void 0!==s.globals.series[e][a]?this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1):this.tooltipUtil.isXoverlap(a)&&this.create(t,this,0,a,i.ttItems)}},{key:"deactivateHoverFilter",value:function(){for(var t=this.w,e=new m(this.ctx),i=t.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,o=this.w,n=e;"mouseup"===t.type&&this.markerClick(t,i,a),null===r&&(r=this.tConfig.shared);var l=this.tooltipUtil.hasMarkers(),h=this.tooltipUtil.getElBars();if(o.config.legend.tooltipHoverFormatter){var c=o.config.legend.tooltipHoverFormatter,d=Array.from(this.legendLabels);d.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}));for(var g=0;g0?n.marker.enlargePoints(a):n.tooltipPosition.moveDynamicPointsOnHover(a)),this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(h),this.barSeriesHeight>0)){var b=new m(this.ctx),v=o.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a);for(var y=0;y0&&(this.totalItems+=t[o].length);for(var n=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),l=0,h=0,c=function(r,o){var c=void 0,d=void 0,g=void 0,u=void 0,f=[],p=[],b=s.globals.comboCharts?i[r]:r;a.yRatio.length>1&&(a.yaxisIndex=b),a.isReversed=s.config.yaxis[a.yaxisIndex]&&s.config.yaxis[a.yaxisIndex].reversed;var v=a.graphics.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[b]),rel:r+1,"data:realIndex":b});a.ctx.series.addCollapsedClassToSeries(v,b);var m=a.graphics.group({class:"apexcharts-datalabels","data:realIndex":b}),y=0,w=0,k=a.initialPositions(l,h,c,d,g,u);h=k.y,y=k.barHeight,d=k.yDivision,u=k.zeroW,l=k.x,w=k.barWidth,c=k.xDivision,g=k.zeroH,a.yArrj=[],a.yArrjF=[],a.yArrjVal=[],a.xArrj=[],a.xArrjF=[],a.xArrjVal=[],1===a.prevY.length&&a.prevY[0].every((function(t){return isNaN(t)}))&&(a.prevY[0]=a.prevY[0].map((function(t){return g})),a.prevYF[0]=a.prevYF[0].map((function(t){return 0})));for(var A=0;A1?(i=l.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:n*parseInt(l.config.plotOptions.bar.columnWidth,10)/100,s=this.baseLineY[this.yaxisIndex]+(this.isReversed?l.globals.gridHeight:0)-(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=l.globals.padHorizontal+(i-n)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:o,barWidth:n,zeroH:s,zeroW:r}}},{key:"drawStackedBarPaths",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=n,g=i.i,u=i.j,f=0,p=0;p0){var x=r;this.prevXVal[g-1][u]<0?x=this.series[g][u]>=0?this.prevX[g-1][u]+f-2*(this.isReversed?f:0):this.prevX[g-1][u]:this.prevXVal[g-1][u]>=0&&(x=this.series[g][u]>=0?this.prevX[g-1][u]:this.prevX[g-1][u]-f+2*(this.isReversed?f:0)),e=x}else e=r;o=null===this.series[g][u]?e:e+this.series[g][u]/this.invertedYRatio-2*(this.isReversed?this.series[g][u]/this.invertedYRatio:0);var b=this.barHelpers.getBarpaths({barYPosition:d,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return this.barHelpers.barBackground({j:u,i:g,y1:d,y2:a,elSeries:h}),n+=l,{pathTo:b.pathTo,pathFrom:b.pathFrom,x:o,y:n}}},{key:"drawStackedColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH;t.strokeWidth;var n=t.elSeries,l=this.w,h=e.i,c=e.j,d=e.bc;if(l.globals.isXNumeric){var g=l.globals.seriesX[h][c];g||(g=0),i=(g-l.globals.minX)/this.xRatio-r/2}for(var u,f=i,p=0,x=0;x0&&!l.globals.isXNumeric||h>0&&l.globals.isXNumeric&&l.globals.seriesX[h-1][c]===l.globals.seriesX[h][c]){var b,v,m=Math.min(this.yRatio.length+1,h+1);if(void 0!==this.prevY[h-1])for(var y=1;y=0?v-p+2*(this.isReversed?p:0):v;break}if(this.prevYVal[h-w][c]>=0){b=this.series[h][c]>=0?v:v+p-2*(this.isReversed?p:0);break}}void 0===b&&(b=l.globals.gridHeight),u=this.prevYF[0].every((function(t){return 0===t}))&&this.prevYF.slice(1,h).every((function(t){return t.every((function(t){return isNaN(t)}))}))?l.globals.gridHeight-o:b}else u=l.globals.gridHeight-o;a=u-this.series[h][c]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[h][c]/this.yRatio[this.yaxisIndex]:0);var k=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:r,y1:u,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,realIndex:e.realIndex,i:h,j:c,w:l});return this.barHelpers.barBackground({bc:d,j:c,i:h,x1:f,x2:r,elSeries:n}),i+=s,{pathTo:k.pathTo,pathFrom:k.pathFrom,x:l.globals.isXNumeric?i-s:i,y:a}}}]),s}(),wt=function(t){n(s,F);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this,s=this.w,r=new m(this.ctx),o=new M(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=s.config.plotOptions.bar.horizontal;var n=new y(this.ctx,s);t=n.getLogSeries(t),this.series=t,this.yRatio=n.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var l=r.group({class:"apexcharts-".concat(s.config.chart.type,"-series apexcharts-plot-series")}),h=function(n){a.isBoxPlot="boxPlot"===s.config.chart.type||"boxPlot"===s.config.series[n].type;var h,c,d,g,u=void 0,f=void 0,p=[],b=[],v=s.globals.comboCharts?i[n]:n,m=r.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[v]),rel:n+1,"data:realIndex":v});a.ctx.series.addCollapsedClassToSeries(m,v),t[n].length>0&&(a.visibleI=a.visibleI+1);var y,w;a.yRatio.length>1&&(a.yaxisIndex=v);var k=a.barHelpers.initialPositions();f=k.y,y=k.barHeight,c=k.yDivision,g=k.zeroW,u=k.x,w=k.barWidth,h=k.xDivision,d=k.zeroH,b.push(u+w/2);for(var A=r.group({class:"apexcharts-datalabels","data:realIndex":v}),S=function(i){var r=a.barHelpers.getStrokeWidth(n,i,v),l=null,x={indexes:{i:n,j:i,realIndex:v},x:u,y:f,strokeWidth:r,elSeries:m};l=a.isHorizontal?a.drawHorizontalBoxPaths(e(e({},x),{},{yDivision:c,barHeight:y,zeroW:g})):a.drawVerticalBoxPaths(e(e({},x),{},{xDivision:h,barWidth:w,zeroH:d})),f=l.y,u=l.x,i>0&&b.push(u+w/2),p.push(f),l.pathTo.forEach((function(e,h){var c=!a.isBoxPlot&&a.candlestickOptions.wick.useFillColor?l.color[h]:s.globals.stroke.colors[n],d=o.fillPath({seriesNumber:v,dataPointIndex:i,color:l.color[h],value:t[n][i]});a.renderSeries({realIndex:v,pathFill:d,lineFill:c,j:i,i:n,pathFrom:l.pathFrom,pathTo:e,strokeWidth:r,elSeries:m,x:u,y:f,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:A,visibleSeries:a.visibleI,type:s.config.chart.type})}))},C=0;Cb.c&&(d=!1);var w=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/p,k=r-k/p,v=r-b.h/p,y=r-b.l/p,A=r-b.m/p);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+"z"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?f:d?[g]:[u]}}},{key:"drawHorizontalBoxPaths",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,f=this.getOHLCValue(u,c),p=r,x=r,b=Math.min(f.o,f.c),v=Math.max(f.o,f.c),y=f.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,p=r+f.h/g,x=r+f.l/g,y=r+f.m/g);var k=l.move(r,w),A=l.move(b,w+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,w)+l.line(b,w+s/2)+l.line(p,w+s/2)+l.line(p,w+s/2-s/4)+l.line(p,w+s/2+s/4)+l.line(p,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(b+o/2,w),l.move(y,w)+l.line(y,w+s)+l.line(v,w+s)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s-s/4)+l.line(x,w+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w)+l.line(y,w)+"z"],A+=l.move(b,w),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:w,color:d}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(),kt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkColorRange",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:"getShadeColor",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,"treemap"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new x;return s.config.plotOptions[t].enableShades&&(l="dark"===this.w.config.theme.mode?x.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):x.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:"determineColor",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&"treemap"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,u(a.globals.series[e])),c=Math.max.apply(Math,u(a.globals.series[e]));r.distributed||"heatmap"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:"calculateDataLabels",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new m(this.ctx),c=new z(this.ctx),d=null;if(l.enabled){d=h.group({class:"apexcharts-data-labels"});var g=l.offsetX,u=l.offsetY,f=i+g,p=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:f,y:p,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:"addListeners",value:function(t){var e=new m(this.ctx);t.node.addEventListener("mouseenter",e.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",e.pathMouseLeave.bind(this,t)),t.node.addEventListener("mousedown",e.pathMouseDown.bind(this,t))}}]),t}(),At=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.xRatio=i.xRatio,this.yRatio=i.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new kt(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return r(t,[{key:"draw",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(e.globals.cuid,")"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:x.escapeString(e.globals.seriesNames[h]),rel:h+1,"data:realIndex":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new v(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,f=0;f-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+"%";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),f=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),p=a>180?1:0,b=["M",h,c,"A",s,s,0,p,1,d,g];return"donut"===e.chartType?[].concat(b,["L",u.x,u.y,"A",e.donutSize,e.donutSize,0,p,0,f.x,f.y,"L",h,c,"z"]).join(" "):"pie"===e.chartType||"polarArea"===e.chartType?[].concat(b,["L",e.centerX,e.centerY,"L",h,c]).join(" "):[].concat(b).join(" ")}},{key:"drawPolarElements",value:function(t){var e=this.w,i=new q(this.ctx),a=new m(this.ctx),s=new St(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,r),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==r&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),Lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var i=this.w;this.graphics=new m(this.ctx),this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=i.globals.svgHeight0&&(p=i.getPreviousPath(n));for(var b=0;b=10?t.x>0?(i="start",a+=10):t.x<0&&(i="end",a-=10):i="middle",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:"",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var f=h.dropShadow;s.dropShadow(u,f)}l.add(u),u.attr("id","apexcharts-radialbarTrack-"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new m(this.ctx),a=new M(this.ctx),s=new v(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),"back"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var f=!1;e.config.plotOptions.radialBar.inverseOrder&&(f=!0);for(var p=f?t.series.length-1:0;f?p>=0:p100?100:t.series[p])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*x.negToZero(e.globals.previousPaths[p])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var L=S-w,P=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[p]:e.config.stroke.dashArray,T=i.drawPath({d:"",stroke:y,strokeWidth:o,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+p,strokeDashArray:P});if(m.setAttrs(T.node,{"data:angle":L,"data:value":t.series[p]}),e.config.chart.dropShadow.enabled){var I=e.config.chart.dropShadow;s.dropShadow(T,I,p)}s.setSelectionFilter(T,0,p),this.addListeners(T,this.radialDataLabels),b.add(T),T.attr({index:0,j:p});var z=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(z=e.config.chart.animations.speed),e.globals.dataChanged&&(z=e.config.chart.animations.dynamicAnimation.speed),this.animDur=z/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(T,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:p,totalItems:2,animBeginArr:this.animBeginArr,dur:z,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:"drawHollow",value:function(t){var e=new m(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,r=new M(this.ctx),o=x.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:"pattern".concat(s.globals.cuid).concat(o)}),a="url(#pattern".concat(s.globals.cuid).concat(o,")");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),i}(),Mt=function(){function t(e){a(this,t),this.w=e.w,this.lineCtx=e}return r(t,[{key:"sameValueSeriesFix",value:function(t,e){var i=this.w;if("line"===i.config.chart.type&&("gradient"===i.config.fill.type||"gradient"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:"calculatePoints",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(x.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:"checkPreviousPaths",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&("line"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):"area"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e=t.i,i=t.series,a=t.prevY,s=t.lineYPosition,r=this.w;if(void 0!==i[e][0])a=(s=r.config.chart.stacked&&e>0?this.lineCtx.prevSeriesY[e-1][0]:this.lineCtx.zeroY)-i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(r.config.chart.stacked&&e>0&&void 0===i[e][0])for(var o=e-1;o>=0;o--)if(null!==i[o][0]&&void 0!==i[o][0]){a=s=this.lineCtx.prevSeriesY[o][0];break}return{prevY:a,lineYPosition:s}}}]),t}(),Tt=function(){function t(e,i,s){a(this,t),this.ctx=e,this.w=e.w,this.xyRatios=i,this.pointsChart=!("bubble"!==this.w.config.chart.type&&"scatter"!==this.w.config.chart.type)||s,this.scatter=new I(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Mt(this),this.markers=new T(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return r(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=a.globals.comboCharts?e:a.config.chart.type,o=s.group({class:"apexcharts-".concat(r,"-series apexcharts-plot-series")}),n=new y(this.ctx,a);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=n.getLogSeries(t),this.yRatio=n.getLogYRatios(this.yRatio);for(var l=[],h=0;h0&&(u=(a.globals.seriesX[c][0]-a.globals.minX)/this.xRatio),g.push(u);var f,p=u,x=p,b=this.zeroY;b=this.lineHelpers.determineFirstPrevY({i:h,series:t,prevY:b,lineYPosition:0}).prevY,d.push(b),f=b;var v=this._calculatePathsFrom({series:t,i:h,realIndex:c,prevX:x,prevY:b}),w=this._iterateOverDataPoints({series:t,realIndex:c,i:h,x:u,y:1,pX:p,pY:f,pathsFrom:v,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:g,yArrj:d});this._handlePaths({type:r,realIndex:c,i:h,paths:w}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),l.push(this.elSeries)}if(a.config.chart.stacked)for(var k=l.length;k>0;k--)o.add(l[k-1]);else for(var A=0;A1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||"end"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",seriesName:x.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":r,rel:e+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(t){var e,i,a,s,r=t.series,o=t.i,n=t.realIndex,l=t.prevX,h=t.prevY,c=this.w,d=new m(this.ctx);if(null===r[o][0]){for(var g=0;g0){var u=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:n});a=u.pathFromLine,s=u.pathFromArea}return{prevX:l,prevY:h,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(t){var i=t.type,a=t.realIndex,s=t.i,r=t.paths,o=this.w,n=new m(this.ctx),l=new M(this.ctx);this.prevSeriesY.push(r.yArrj),o.globals.seriesXvalues[a]=r.xArrj,o.globals.seriesYvalues[a]=r.yArrj;var h=o.config.forecastDataPoints;if(h.count>0){var c=o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length-h.count-1],d=n.drawRect(c,0,o.globals.gridWidth,o.globals.gridHeight,0);o.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,o.globals.gridHeight,0);o.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||o.globals.delayedElements.push({el:this.elPointsMain.node,index:a});var u={i:s,realIndex:a,animationDelay:s,initialSpeed:o.config.chart.animations.speed,dataChangeSpeed:o.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(i)};if("area"===i)for(var f=l.fillPath({seriesNumber:a}),p=0;p0){var A=n.renderPaths(w);A.node.setAttribute("stroke-dasharray",h.dashArray),h.strokeWidth&&A.node.setAttribute("stroke-width",h.strokeWidth),this.elSeries.add(A),A.attr("clip-path","url(#forecastMask".concat(o.globals.cuid,")")),k.attr("clip-path","url(#nonForecastMask".concat(o.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(t){for(var e=t.series,i=t.realIndex,a=t.i,s=t.x,r=t.y,o=t.pX,n=t.pY,l=t.pathsFrom,h=t.linePaths,c=t.areaPaths,d=t.seriesIndex,g=t.lineYPosition,u=t.xArrj,f=t.yArrj,p=this.w,b=new m(this.ctx),v=this.yRatio,y=l.prevY,w=l.linePath,k=l.areaPath,A=l.pathFromLine,S=l.pathFromArea,C=x.isNumber(p.globals.minYArr[i])?p.globals.minYArr[i]:p.globals.minY,L=p.globals.dataPoints>1?p.globals.dataPoints-1:p.globals.dataPoints,P=0;P0&&p.globals.collapsedSeries.length-1){e--;break}return e>=0?e:0}(a-1)][P+1]}else g=this.zeroY;else g=this.zeroY;r=M?g-C/v[this.yaxisIndex]+2*(this.isReversed?C/v[this.yaxisIndex]:0):g-e[a][P+1]/v[this.yaxisIndex]+2*(this.isReversed?e[a][P+1]/v[this.yaxisIndex]:0),u.push(s),f.push(r);var I=this.lineHelpers.calculatePoints({series:e,x:s,y:r,realIndex:i,i:a,j:P,prevY:y}),z=this._createPaths({series:e,i:a,realIndex:i,j:P,x:s,y:r,pX:o,pY:n,linePath:w,areaPath:k,linePaths:h,areaPaths:c,seriesIndex:d});c=z.areaPaths,h=z.linePaths,o=z.pX,n=z.pY,k=z.areaPath,w=z.linePath,this.appendPathFrom&&(A+=b.line(s,this.zeroY),S+=b.line(s,this.zeroY)),this.handleNullDataPoints(e,I,a,P,i),this._handleMarkersAndLabels({pointsPos:I,series:e,x:s,y:r,prevY:y,i:a,j:P,realIndex:i})}return{yArrj:f,xArrj:u,pathFromArea:S,areaPaths:c,pathFromLine:A,linePaths:h}}},{key:"_handleMarkersAndLabels",value:function(t){var e=t.pointsPos;t.series,t.x,t.y,t.prevY;var i=t.i,a=t.j,s=t.realIndex,r=this.w,o=new z(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,a,{realIndex:s,pointsPos:e,zRatio:this.zRatio,elParent:this.elPointsMain});else{r.globals.series[i].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var n=this.markers.plotChartMarkers(e,s,a+1);null!==n&&this.elPointsMain.add(n)}var l=o.drawDataLabel(e,s,a+1,null);null!==l&&this.elDataLabelsWrap.add(l)}},{key:"_createPaths",value:function(t){var e=t.series,i=t.i,a=t.realIndex,s=t.j,r=t.x,o=t.y,n=t.pX,l=t.pY,h=t.linePath,c=t.areaPath,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,f=this.w,p=new m(this.ctx),x=f.config.stroke.curve,b=this.areaBottomY;if(Array.isArray(f.config.stroke.curve)&&(x=Array.isArray(u)?f.config.stroke.curve[u[i]]:f.config.stroke.curve[i]),"smooth"===x){var v=.35*(r-n);f.globals.hasNullValues?(null!==e[i][s]&&(null!==e[i][s+1]?(h=p.move(n,l)+p.curve(n+v,l,r-v,o,r+1,o),c=p.move(n+1,l)+p.curve(n+v,l,r-v,o,r+1,o)+p.line(r,b)+p.line(n,b)+"z"):(h=p.move(n,l),c=p.move(n,l)+"z")),d.push(h),g.push(c)):(h+=p.curve(n+v,l,r-v,o,r,o),c+=p.curve(n+v,l,r-v,o,r,o)),n=r,l=o,s===e[i].length-2&&(c=c+p.curve(n,l,r,o,r,b)+p.move(r,o)+"z",f.globals.hasNullValues||(d.push(h),g.push(c)))}else{if(null===e[i][s+1]){h+=p.move(r,o);var y=f.globals.isXNumeric?(f.globals.seriesX[a][s]-f.globals.minX)/this.xRatio:r-this.xDivision;c=c+p.line(y,b)+p.move(r,o)+"z"}null===e[i][s]&&(h+=p.move(r,o),c+=p.move(r,b)),"stepline"===x?(h=h+p.line(r,null,"H")+p.line(null,o,"V"),c=c+p.line(r,null,"H")+p.line(null,o,"V")):"straight"===x&&(h+=p.line(r,o),c+=p.line(r,o)),s===e[i].length-2&&(c=c+p.line(r,b)+p.move(r,o)+"z",d.push(h),g.push(c))}return{linePaths:d,areaPaths:g,pX:n,pY:l,linePath:h,areaPath:c}}},{key:"handleNullDataPoints",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){return o=void 0===o?0:o,n=void 0===n?0:n,function(t){var e,i,a=[];for(e=0;e=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;er-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(-90 ".concat(h.x," ").concat(h.y,")"))}}},{key:"animateTreemap",value:function(t,e,i,a){var s=new b(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Et=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return r(t,[{key:"calculateTimeScaleTicks",value:function(t,i){var a=this,s=this.w;if(s.globals.allSeriesCollapsed)return s.globals.labels=[],s.globals.timescaleLabels=[],[];var r=new R(this.ctx),o=(i-t)/864e5;this.determineInterval(o),s.globals.disableZoomIn=!1,s.globals.disableZoomOut=!1,o<.00011574074074074075?s.globals.disableZoomIn=!0:o>5e4&&(s.globals.disableZoomOut=!0);var n=r.getTimeUnitsfromTimestamp(t,i,this.utc),l=s.globals.gridWidth/o,h=l/24,c=h/60,d=c/60,g=Math.floor(24*o),u=Math.floor(1440*o),f=Math.floor(86400*o),p=Math.floor(o),x=Math.floor(o/30),b=Math.floor(o/365),v={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:f,numberOfMinutes:u,numberOfHours:g,numberOfDays:p,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case"years":this.generateYearScale(m);break;case"months":case"half_year":this.generateMonthScale(m);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(m);break;case"hours":this.generateHourScale(m);break;case"minutes_fives":case"minutes":this.generateMinuteScale(m);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var i={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?e(e({},i),{},{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?e(e({},i),{},{value:t.value}):"minute"===t.unit?e(e({},i),{},{value:t.value,minute:t.value}):"second"===t.unit?e(e({},i),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,i=Math.ceil(s.globals.gridWidth/120),r=t.value;void 0!==s.config.xaxis.tickAmount&&(i=s.config.xaxis.tickAmount),y.length>i&&(e=Math.floor(y.length/i));var o=!1,n=!1;switch(a.tickInterval){case"years":"year"===t.unit&&(o=!0);break;case"half_year":e=7,"year"===t.unit&&(o=!0);break;case"months":e=1,"year"===t.unit&&(o=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(o=!0),30===r&&(n=!0);break;case"months_days":e=10,"month"===t.unit&&(o=!0),30===r&&(n=!0);break;case"week_days":e=8,"month"===t.unit&&(o=!0);break;case"days":e=1,"month"===t.unit&&(o=!0);break;case"hours":"day"===t.unit&&(o=!0);break;case"minutes_fives":r%5!=0&&(n=!0);break;case"seconds_tens":r%10!=0&&(n=!0);break;case"seconds_fives":r%5!=0&&(n=!0)}if("hours"===a.tickInterval||"minutes_fives"===a.tickInterval||"seconds_tens"===a.tickInterval||"seconds_fives"===a.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new lt(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval="years";break;case t>800:this.tickInterval="half_year";break;case t>180:this.tickInterval="months";break;case t>90:this.tickInterval="months_fortnight";break;case t>60:this.tickInterval="months_days";break;case t>30:this.tickInterval="week_days";break;case t>2:this.tickInterval="days";break;case e>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new R(this.ctx),h="year";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:x.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:x.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=x.monthMod(a+1);var g=s+d,u=x.monthMod(n),f=n;0===n&&(c="year",f=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:f,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:x.monthMod(a)});for(var p=n+1,b=l,v=0,m=1;vo.determineDaysOfMonths(e+1,i)?(h=1,n="month",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=x.monthMod(e.minMonth),n="month",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:x.monthMod(u),day:h});for(var f=d,p=0;pn.determineDaysOfMonths(e+1,s)&&(p=1,e+=1),{month:e,date:p}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,f=u+1;60===d&&(g=0,f=(u=e.minHour)+1);var p=i,b=c(p,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:p,hour:f,year:s,month:x.monthMod(b)});for(var v=g,m=0;m=24)f=0,l="day",b=h(p+=1,b).month,b=c(p,b);var y=this._getYear(s,b,0);v=0===f&&0===m?d*r:60*r+v;var w=0===f?p:f;this.timeScaleArray.push({position:v,value:w,unit:l,hour:f,day:p,year:y,month:x.monthMod(b)}),f++}}},{key:"generateMinuteScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,f=n,p=s,b=(60-i-e/1e3)*h,v=0;v=60&&(d=0,24===(p+=1)&&(p=0)),this.timeScaleArray.push({position:b,value:d,unit:"minute",hour:p,minute:d,day:g,year:this._getYear(f,u,0),month:x.monthMod(u)}),b+=l,d++}},{key:"generateSecondScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,f=n,p=s,b=(1e3-e)/1e3*l,v=0;v=60&&(c=0,++d>=60&&(d=0,24===++p&&(p=0))),this.timeScaleArray.push({position:b,value:c,unit:"second",hour:p,minute:d,second:c,day:g,year:this._getYear(f,u,0),month:x.monthMod(u)}),b+=l,c++}},{key:"createRawDateString",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),"minute"===t.unit?i+=":"+("0"+e).slice(-2):i+=":"+(t.minute?("0"+t.minute).slice(-2):"00"),"second"===t.unit?i+=":"+("0"+e).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new R(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(n=l.year),"month"===t.unit&&(n=l.month),"day"===t.unit&&(n=l.day),"hour"===t.unit&&(n=l.hour),"minute"===t.unit&&(n=l.minute),"second"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:"removeOverlappingTS",value:function(t){var e,i=this,a=new m(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:"_getYear",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Yt=function(){function t(e,i){a(this,t),this.ctx=i,this.w=i.w,this.el=e}return r(t,[{key:"setupElements",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].indexOf(i)>-1,t.xyCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type||"boxPlot"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),m.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elAnnotations=t.dom.Paper.group().attr({class:"apexcharts-annotations"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elWrap.appendChild(t.dom.elLegendWrap),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]};s.series.map((function(e,g){var u=0;void 0!==t[g].type?("column"===t[g].type||"bar"===t[g].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"),h.series.push(e),h.i.push(g),u++,i.globals.columnSeries=h.series):"area"===t[g].type?(o.series.push(e),o.i.push(g),u++):"line"===t[g].type?(r.series.push(e),r.i.push(g),u++):"scatter"===t[g].type?(n.series.push(e),n.i.push(g)):"bubble"===t[g].type?(l.series.push(e),l.i.push(g),u++):"candlestick"===t[g].type?(c.series.push(e),c.i.push(g),u++):"boxPlot"===t[g].type?(d.series.push(e),d.i.push(g),u++):console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble"),u>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(g))}));var g=new Tt(this.ctx,e),u=new wt(this.ctx,e);this.ctx.pie=new Ct(this.ctx);var f=new Pt(this.ctx);this.ctx.rangeBar=new H(this.ctx,e);var p=new Lt(this.ctx),x=[];if(s.comboCharts){if(o.series.length>0&&x.push(g.draw(o.series,"area",o.i)),h.series.length>0)if(i.config.chart.stacked){var b=new yt(this.ctx,e);x.push(b.draw(h.series,h.i))}else this.ctx.bar=new F(this.ctx,e),x.push(this.ctx.bar.draw(h.series,h.i));if(r.series.length>0&&x.push(g.draw(r.series,"line",r.i)),c.series.length>0&&x.push(u.draw(c.series,c.i)),d.series.length>0&&x.push(u.draw(d.series,d.i)),n.series.length>0){var v=new Tt(this.ctx,e,!0);x.push(v.draw(n.series,"scatter",n.i))}if(l.series.length>0){var m=new Tt(this.ctx,e,!0);x.push(m.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":x=g.draw(s.series,"line");break;case"area":x=g.draw(s.series,"area");break;case"bar":if(a.chart.stacked)x=new yt(this.ctx,e).draw(s.series);else this.ctx.bar=new F(this.ctx,e),x=this.ctx.bar.draw(s.series);break;case"candlestick":x=new wt(this.ctx,e).draw(s.series);break;case"boxPlot":x=new wt(this.ctx,e).draw(s.series);break;case"rangeBar":x=this.ctx.rangeBar.draw(s.series);break;case"heatmap":x=new At(this.ctx,e).draw(s.series);break;case"treemap":x=new Xt(this.ctx,e).draw(s.series);break;case"pie":case"donut":case"polarArea":x=this.ctx.pie.draw(s.series);break;case"radialBar":x=f.draw(s.series);break;case"radar":x=p.draw(s.series);break;default:x=g.draw(s.series)}return x}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=x.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();"%"===a?x.isNumber(i[0])&&(0===i[0].width&&(i=x.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if("auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===s){var r=x.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),m.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),"%"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+"px"}t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};m.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new ct(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=x.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",l),t.config.chart.height&&String(t.config.chart.height).indexOf("%")>0||(e.dom.elWrap.style.height=l+"px",m.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+"px")}},{key:"coreCalculations",value:function(){new Z(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new O,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if("back"===e.config.xaxis.crosshairs.position)new tt(this.ctx).drawXCrosshairs();if("back"===e.config.yaxis[0].crosshairs.position)new tt(this.ctx).drawYCrosshairs();if("datetime"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Et(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var t=this,i=this.w;if(i.config.chart.brush.enabled&&"function"!=typeof i.config.chart.events.selection){var a=i.config.chart.brush.targets||[i.config.chart.brush.target];a.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,"function"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),"function"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),i.config.chart.events.selection=function(t,s){a.forEach((function(t){var a=ApexCharts.getChartByID(t),r=x.clone(i.config.yaxis);if(i.config.chart.brush.autoScaleYaxis&&1===a.w.globals.series.length){var o=new q(a);r=o.autoScaleY(a,r,s)}var n=a.w.config.yaxis.reduce((function(t,i,s){return[].concat(u(t),[e(e({},a.w.config.yaxis[s]),{},{min:r[0].min,max:r[0].max})])}),[]);a.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Ft=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"_updateOptions",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(n){var l=[e.ctx];r&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(r,h){var c=r.w;if(c.globals.shouldAnimate=s,a||(c.globals.resized=!0,c.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),t&&"object"===i(t)&&(r.config=new N(t),t=y.extendArrayProps(r.config,t,c),r.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,c.config=x.extend(c.config,t),o&&(c.globals.lastXAxis=t.xaxis?x.clone(t.xaxis):[],c.globals.lastYAxis=t.yaxis?x.clone(t.yaxis):[],c.globals.initialConfig=x.extend({},c.config),c.globals.initialSeries=x.clone(c.config.series),t.series))){for(var d=0;d2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialSeries=x.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:"_extendSeries",value:function(t,i){var a=this.w,s=a.config.series[i];return e(e({},a.config.series[i]),{},{name:t.name?t.name:s&&s.name,color:t.color?t.color:s&&s.color,type:t.type?t.type:s&&s.type,data:t.data?t.data:s&&s.data})}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(t,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"'], ").concat(s," circle[j='").concat(e,"'], ").concat(s," rect[j='").concat(e,"']")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"']")).members[0],"pie"!==i.config.chart.type&&"polarArea"!==i.config.chart.type&&"donut"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new m(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(t){var e=this.w;if(["min","max"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new D(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:"forceYAxisUpdate",value:function(t){return t.chart&&t.chart.stacked&&"100%"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:"revertDefaultAxisMinMax",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();It="undefined"!=typeof window?window:void 0,zt=function(t,e){var a=(void 0!==this?this:t).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns="http://www.w3.org/2000/svg",a.xmlns="http://www.w3.org/2000/xmlns/",a.xlink="http://www.w3.org/1999/xlink",a.svgjs="http://svgjs.dev",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return"Svgjs"+d(t)+a.did++},a.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute("id",this.eid(t)),i},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(e){return e?e.instance?e.instance:((i="svg"==e.nodeName?e.parentNode instanceof t.SVGElement?new a.Nested:new a.Doc:"linearGradient"==e.nodeName?new a.Gradient("linear"):"radialGradient"==e.nodeName?new a.Gradient("radial"):a[d(e.nodeName)]?new(a[d(e.nodeName)]):new a.Element(e)).type=e.nodeName,i.node=e,e.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(e.getAttribute("svgjs:data"))||{}),i):null;var i},a.prepare=function(){var t=e.getElementsByTagName("body")[0],i=(t?new a.Doc(t):a.adopt(e.documentElement).nested()).size(2,0);a.parser={body:t||e.documentElement,draw:i.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:i.polyline().node,path:i.path().node,native:a.create("svg")}},a.parser={native:a.create("svg")},e.addEventListener("DOMContentLoaded",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+="",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]}},r="mlhvqtcsaz".split(""),o=0,n=r.length;ol);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute("d",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return"none"!=this.style("display")},toString:function(){return this.attr("id")},classes:function(){var t=this.attr("class");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!=t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(e){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!e)return i;for(;i&&i.node instanceof t.SVGElement;){if("string"==typeof e?i.matches(e):i instanceof e)return i;if(!i.node.parentNode||"#document"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var i=e.createElement("svg");if(!(t&&this instanceof a.Parent))return i.appendChild(t=e.createElement("svg")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),i.innerHTML.replace(/^/,"").replace(/<\/svg>$/,"");i.innerHTML=""+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var s=0,r=i.firstChild.childNodes.length;s":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,s){"object"===i(t)&&(e=t.ease,s=t.delay,t=t.duration);var r=new a.Situation({duration:t||1e3,delay:s||0,ease:a.easing[e||"-"]||e});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on("finished.fx",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off("during.fx",i).on("during.fx",i),this.after((function(){this.off("during.fx",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--s)this[m[s]]=null!=t[m[s]]?t[m[s]]:e[m[s]]},extend:{extract:function(){var t=f(this,0,1);f(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=m.length-1;e>=0;e--)t[m[e]]=this[m[e]];return t},toString:function(){return"matrix("+v(this.a)+","+v(this.b)+","+v(this.c)+","+v(this.d)+","+v(this.e)+","+v(this.f)+")"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(t,e){var a;a=Array.isArray(t)?{x:t[0],y:t[1]}:"object"===i(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(t,e,s){if(null==t){for(t={},s=(e=this.node.attributes).length-1;s>=0;s--)t[e[s].nodeName]=a.regex.isNumber.test(e[s].nodeValue)?parseFloat(e[s].nodeValue):e[s].nodeValue;return t}if("object"===i(t))for(var r in t)this.attr(r,t[r]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?a.defaults.attrs[t]:a.regex.isNumber.test(e)?parseFloat(e):e;"stroke-width"==t?this.attr("stroke",parseFloat(e)>0?this._stroke:null):"stroke"==t&&(this._stroke=e),"fill"!=t&&"stroke"!=t||(a.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof a.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),"number"==typeof e?e=new a.Number(e):a.Color.isColor(e)?e=new a.Color(e):Array.isArray(e)&&(e=new a.Array(e)),"leading"==t?this.leading&&this.leading(e):"string"==typeof s?this.node.setAttributeNS(s,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!=t&&"x"!=t||this.rebuild(t,e)}return this}}),a.extend(a.Element,{transform:function(t,e){var s;return"object"!==i(t)?(s=new a.Matrix(this).extract(),"string"==typeof t?s[t]:s):(s=new a.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(s=e?s.multiply(new a.Matrix(t)):new a.Matrix(t)),this.attr("transform",s))}}),a.extend(a.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split("(");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return"matrix"==e[0]?t.multiply(p(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(t,e){if(arguments.length>1&&"boolean"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var a=0,s=this.arguments.length;a=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s=0;i--)e.childNodes[i]instanceof t.SVGElement&&x(e.childNodes[i]);return a.adopt(e).id(a.eid(e.nodeName))}function b(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function v(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if("string"==typeof e||a.Color.isRgb(e)||e&&"function"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr("transform",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)"function"==typeof a.Shape.prototype[e]&&"function"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var i=e.getElementById(function(t){var e=(t||"").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(i)},a.select=function(t,i){return new a.Set(a.utils.map((i||e).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var m="abcdef".split("");if("function"!=typeof t.CustomEvent){var y=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent("CustomEvent");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};y.prototype=t.Event.prototype,a.CustomEvent=y}else a.CustomEvent=t.CustomEvent;return a},"function"==typeof define&&define.amd?define((function(){return zt(It,It.document)})):"object"===("undefined"==typeof exports?"undefined":i(exports))&&"undefined"!=typeof module?module.exports=It.document?zt(It,It.document):function(t){return zt(t,t.document)}:It.SVG=zt(It,It.document), +/*! svg.filter.js - v2.0.2 - 2016-02-24 +* https://github.com/wout/svg.filter.js +* Copyright (c) 2016 Wout Fierens; Licensed MIT */ +function(){SVG.Filter=SVG.invent({create:"filter",inherit:SVG.Parent,extend:{source:"SourceGraphic",sourceAlpha:"SourceAlpha",background:"BackgroundImage",backgroundAlpha:"BackgroundAlpha",fill:"FillPaint",stroke:"StrokePaint",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr("in")&&this.autoSetIn&&t.attr("in",this.source),t.attr("result")||t.attr("result",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return"url(#"+this.attr("id")+")"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return"function"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr("filter",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr("filter",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr("in",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||"normal"})},colorMatrix:function(t,e){"matrix"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(" ").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr("flood-color",t),null!=e&&this.attr("flood-opacity",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr("href",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr("stdDeviation",r(Array.prototype.slice.call(arguments))):this.attr("stdDeviation","0 0")},morphology:function(t,e){this.attr({operator:t,radius:e})},tile:function(){},turbulence:function(t,e,i,a,s){this.attr({numOctaves:e,seed:i,stitchTiles:a,baseFrequency:t,type:s})}},i={merge:function(){var t;if(arguments[0]instanceof SVG.Set){var e=this;arguments[0].each((function(t){this instanceof SVG.MergeNode?e.put(this):(this instanceof SVG.Effect||this instanceof SVG.ParentEffect)&&e.put(new SVG.MergeNode(this))}))}else{t=Array.isArray(arguments[0])?arguments[0]:arguments;for(var i=0;i1&&(M*=a=Math.sqrt(a),T*=a);s=(new SVG.Matrix).rotate(I).scale(1/M,1/T).rotate(-I),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,z===X&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);X&&g>u&&(u+=2*Math.PI);!X&&gr.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,i){"function"!=typeof e&&"object"!=typeof e||(i=e,e=!0);var a=this.remember("_draggable")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,e,i){var a="string"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,"t"===t||"b"===t),y:this.pointCoord(i[1],e,"r"===t||"l"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=["points","pointsExclude"];for(var s in r){var o=this.options[r[s]];"string"==typeof o?o=o.length>0?o.split(/\s*,\s*/i):[]:"boolean"==typeof o&&"points"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"touchend.resize",(function(){e.done()})),SVG.on(window,"mousemove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"mouseup.resize",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var Rt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"initModules",value:function(){this.ctx.publicMethods=["updateOptions","updateSeries","appendData","appendSeries","toggleSeries","showSeries","hideSeries","setLocale","resetSeries","zoomX","toggleDataPointSelection","dataURI","exportToCSV","addXaxisAnnotation","addYaxisAnnotation","addPointAnnotation","clearAnnotations","removeAnnotation","paper","destroy"],this.ctx.eventList=["click","mousedown","mousemove","mouseleave","touchstart","touchmove","touchleave","mouseup","touchend"],this.ctx.animations=new b(this.ctx),this.ctx.axes=new K(this.ctx),this.ctx.core=new Yt(this.ctx.el,this.ctx),this.ctx.config=new N({}),this.ctx.data=new B(this.ctx),this.ctx.grid=new U(this.ctx),this.ctx.graphics=new m(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new tt(this.ctx),this.ctx.events=new J(this.ctx),this.ctx.exports=new j(this.ctx),this.ctx.localization=new Q(this.ctx),this.ctx.options=new L,this.ctx.responsive=new et(this.ctx),this.ctx.series=new E(this.ctx),this.ctx.theme=new it(this.ctx),this.ctx.formatters=new V(this.ctx),this.ctx.titleSubtitle=new at(this.ctx),this.ctx.legend=new ct(this.ctx),this.ctx.toolbar=new dt(this.ctx),this.ctx.dimensions=new lt(this.ctx),this.ctx.updateHelpers=new Ft(this.ctx),this.ctx.zoomPanSelection=new gt(this.ctx),this.ctx.w.globals.tooltip=new mt(this.ctx)}}]),t}(),Ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"clear",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:"killSVG",value:function(t){t.each((function(t,e){this.removeClass("*"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:"clearDomElements",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight="unset");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elAnnotations=null,r.elLegendWrap=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),Dt=new WeakMap;var Nt=function(){function t(e,i){a(this,t),this.opts=i,this.ctx=this,this.w=new W(i).init(),this.el=e,this.w.globals.cuid=x.randomId(),this.w.globals.chartID=this.w.config.chart.id?x.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Rt(this).initModules(),this.create=x.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return r(t,[{key:"render",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;if("function"==typeof a&&a(t,t.w),t.events.fireEvent("beforeMount",[t,t.w]),window.addEventListener("resize",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();"none"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),Dt.set(e,s)}(t.el.parentNode,t.parentResizeHandler),!t.css){var s=t.el.getRootNode&&t.el.getRootNode(),r=x.is("ShadowRoot",s),o=t.el.ownerDocument,n=o.getElementById("apexcharts-css");!r&&n||(t.css=document.createElement("style"),t.css.id="apexcharts-css",t.css.textContent='.apexcharts-canvas {\n position: relative;\n user-select: none;\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\n}\n\n\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px;\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, .5);\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n}\n\n\n.apexcharts-inner {\n position: relative;\n}\n\n.apexcharts-text tspan {\n font-family: inherit;\n}\n\n.legend-mouseover-inactive {\n transition: 0.15s ease all;\n opacity: 0.20;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0;\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, 0.96);\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30, 30, 30, 0.8);\n}\n\n.apexcharts-tooltip * {\n font-family: inherit;\n}\n\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #ECEFF1;\n border-bottom: 1px solid #ddd;\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid #333;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n font-weight: 600;\n margin-left: 5px;\n}\n\n.apexcharts-tooltip-title:empty,\n.apexcharts-tooltip-text-y-label:empty,\n.apexcharts-tooltip-text-y-value:empty,\n.apexcharts-tooltip-text-goals-label:empty,\n.apexcharts-tooltip-text-goals-value:empty,\n.apexcharts-tooltip-text-z-value:empty {\n display: none;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n font-weight: 600;\n}\n\n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-goals-group, \n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n display: flex;\n}\n.apexcharts-tooltip-text-goals-label:not(:empty),\n.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px;\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0px;\n margin-right: 10px;\n border-radius: 50%;\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px;\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0 !important;\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-box, .apexcharts-custom-tooltip {\n padding: 4px 8px;\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse;\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0;\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: bold;\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px;\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777;\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: bold;\n display: block;\n margin-bottom: 5px;\n}\n\n.apexcharts-xaxistooltip {\n opacity: 0;\n padding: 9px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-left: -6px;\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-left: -7px;\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%;\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n top: 100%;\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #ECEFF1;\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #ECEFF1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-yaxistooltip {\n opacity: 0;\n padding: 4px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-top: -6px;\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-top: -7px;\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n left: 100%;\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n right: 100%;\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1;\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none;\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0;\n}\n\n.apexcharts-selection-rect {\n cursor: move;\n}\n\n.svg_select_boundingRect, .svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n}\n.apexcharts-selection-rect + g .svg_select_boundingRect,\n.apexcharts-selection-rect + g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden;\n}\n\n.apexcharts-selection-rect + g .svg_select_points_l,\n.apexcharts-selection-rect + g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible;\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2;\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon,\n.apexcharts-reset-icon,\n.apexcharts-pan-icon,\n.apexcharts-selection-icon,\n.apexcharts-menu-icon,\n.apexcharts-toolbar-custom-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6E8192;\n text-align: center;\n}\n\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-menu-icon svg {\n fill: #6E8192;\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(0.76)\n}\n\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\n fill: #f3f4f5;\n}\n\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\n fill: #008FFB;\n}\n\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\n fill: #333;\n}\n\n.apexcharts-selection-icon,\n.apexcharts-menu-icon {\n position: relative;\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px;\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-reset-icon,\n.apexcharts-menu-icon {\n transform: scale(0.85);\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n transform: scale(0.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px;\n}\n\n.apexcharts-pan-icon {\n transform: scale(0.62);\n position: relative;\n left: 1px;\n top: 0px;\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6E8192;\n stroke-width: 2;\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008FFB;\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333;\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0px 6px 2px 6px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: 0.15s ease all;\n pointer-events: none;\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: 0.15s ease all;\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee;\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n}\n\n@media screen and (min-width: 768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1;\n }\n}\n\n.apexcharts-datalabel.apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-pie-label,\n.apexcharts-datalabels,\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value {\n cursor: default;\n pointer-events: none;\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: 0.3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease;\n}\n\n.apexcharts-canvas .apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-gridline,\n.apexcharts-annotation-rect,\n.apexcharts-xaxis-annotation-label,\n.apexcharts-yaxis-annotation-label,\n.apexcharts-point-annotation-label,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-line,\n.apexcharts-zoom-rect,\n.apexcharts-toolbar svg,\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-radar-series path,\n.apexcharts-radar-series polygon {\n pointer-events: none;\n}\n\n\n/* markers */\n\n.apexcharts-marker {\n transition: 0.15s ease all;\n}\n\n@keyframes opaque {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n\n/* Resize generated styles */\n\n@keyframes resizeanim {\n from {\n opacity: 0;\n }\n to {\n opacity: 0;\n }\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n}\n\n.resize-triggers,\n.resize-triggers>div,\n.contract-trigger:before {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.resize-triggers>div {\n background: #eee;\n overflow: auto;\n}\n\n.contract-trigger:before {\n width: 200%;\n height: 200%;\n}',r?s.prepend(t.css):o.head.appendChild(t.css))}var l=t.create(t.w.config.series,{});if(!l)return e(t);t.mount(l).then((function(){"function"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent("mounted",[t,t.w]),e(l)})).catch((function(t){i(t)}))}else i(new Error("Element not found"))}))}},{key:"create",value:function(t,e){var i=this.w;new Rt(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new D(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),"treemap"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new T(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),"category"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new y(this).getLargestMarkerSize(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new z(this);l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition();var h={plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}};return{elGraph:n,xyRatios:o,elInner:i.globals.dom.elGraphical,dimensions:h}}},{key:"mount",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error("Not enough data to display or target element not found"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),"treemap"!==a.config.chart.type&&i.axes.drawAxis(a.config.chart.type,e.xyRatios),i.grid=new U(i);var o=i.grid.drawGrid();i.annotations=new P(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),"back"===a.config.grid.position&&o&&a.globals.dom.elGraphical.add(o.el);var n=new _(t.ctx),l=new $(t.ctx);if(null!==o&&(n.xAxisLabelCorrections(o.xAxisTickWidth),l.setYAxisTextAlignments(),a.config.yaxis.map((function(t,e){-1===a.globals.ignoreYAxisIndexes.indexOf(e)&&l.yAxisTitleRotate(e,t.opposite)}))),"back"===a.config.annotations.position&&(a.globals.dom.Paper.add(a.globals.dom.elAnnotations),i.annotations.drawAxesAnnotations()),Array.isArray(e.elGraph))for(var h=0;h0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:"destroy",value:function(){var t,e;window.removeEventListener("resize",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=Dt.get(t))&&(e.disconnect(),Dt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===x.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Ht(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:"addEventListener",value:function(t,e){this.events.addEventListener(t,e)}},{key:"removeEventListener",value:function(t,e){this.events.removeEventListener(t,e)}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Z(this.ctx);return e.getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Z(this.ctx);return e.getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:"zoomX",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:"setLocale",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:"dataURI",value:function(t){return new j(this.ctx).dataURI(t)}},{key:"exportToCSV",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=new j(this.ctx);return e.exportToCSV(t)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:"_windowResizeHandler",value:function(){var t=this.w.config.chart.redrawOnWindowResize;"function"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:"getChartByID",value:function(t){var e=x.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),i=0;i2?s-2:0),o=2;o arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; + } + + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + /* + ** Generic functions which are not dependent on ApexCharts + */ + var Utils$1 = /*#__PURE__*/function () { + function Utils() { + _classCallCheck(this, Utils); + } + + _createClass(Utils, [{ + key: "shadeRGBColor", + value: function shadeRGBColor(percent, color) { + var f = color.split(','), + t = percent < 0 ? 0 : 255, + p = percent < 0 ? percent * -1 : percent, + R = parseInt(f[0].slice(4), 10), + G = parseInt(f[1], 10), + B = parseInt(f[2], 10); + return 'rgb(' + (Math.round((t - R) * p) + R) + ',' + (Math.round((t - G) * p) + G) + ',' + (Math.round((t - B) * p) + B) + ')'; + } + }, { + key: "shadeHexColor", + value: function shadeHexColor(percent, color) { + var f = parseInt(color.slice(1), 16), + t = percent < 0 ? 0 : 255, + p = percent < 0 ? percent * -1 : percent, + R = f >> 16, + G = f >> 8 & 0x00ff, + B = f & 0x0000ff; + return '#' + (0x1000000 + (Math.round((t - R) * p) + R) * 0x10000 + (Math.round((t - G) * p) + G) * 0x100 + (Math.round((t - B) * p) + B)).toString(16).slice(1); + } // beautiful color shading blending code + // http://stackoverflow.com/questions/5560248/programmatically-lighten-or-darken-a-hex-color-or-rgb-and-blend-colors + + }, { + key: "shadeColor", + value: function shadeColor(p, color) { + if (Utils.isColorHex(color)) { + return this.shadeHexColor(p, color); + } else { + return this.shadeRGBColor(p, color); + } + } + }], [{ + key: "bind", + value: function bind(fn, me) { + return function () { + return fn.apply(me, arguments); + }; + } + }, { + key: "isObject", + value: function isObject(item) { + return item && _typeof(item) === 'object' && !Array.isArray(item) && item != null; + } // Type checking that works across different window objects + + }, { + key: "is", + value: function is(type, val) { + return Object.prototype.toString.call(val) === '[object ' + type + ']'; + } + }, { + key: "listToArray", + value: function listToArray(list) { + var i, + array = []; + + for (i = 0; i < list.length; i++) { + array[i] = list[i]; + } + + return array; + } // to extend defaults with user options + // credit: http://stackoverflow.com/questions/27936772/deep-object-merging-in-es6-es7#answer-34749873 + + }, { + key: "extend", + value: function extend(target, source) { + var _this = this; + + if (typeof Object.assign !== 'function') { + + (function () { + Object.assign = function (target) { + + if (target === undefined || target === null) { + throw new TypeError('Cannot convert undefined or null to object'); + } + + var output = Object(target); + + for (var index = 1; index < arguments.length; index++) { + var _source = arguments[index]; + + if (_source !== undefined && _source !== null) { + for (var nextKey in _source) { + if (_source.hasOwnProperty(nextKey)) { + output[nextKey] = _source[nextKey]; + } + } + } + } + + return output; + }; + })(); + } + + var output = Object.assign({}, target); + + if (this.isObject(target) && this.isObject(source)) { + Object.keys(source).forEach(function (key) { + if (_this.isObject(source[key])) { + if (!(key in target)) { + Object.assign(output, _defineProperty({}, key, source[key])); + } else { + output[key] = _this.extend(target[key], source[key]); + } + } else { + Object.assign(output, _defineProperty({}, key, source[key])); + } + }); + } + + return output; + } + }, { + key: "extendArray", + value: function extendArray(arrToExtend, resultArr) { + var extendedArr = []; + arrToExtend.map(function (item) { + extendedArr.push(Utils.extend(resultArr, item)); + }); + arrToExtend = extendedArr; + return arrToExtend; + } // If month counter exceeds 12, it starts again from 1 + + }, { + key: "monthMod", + value: function monthMod(month) { + return month % 12; + } + }, { + key: "clone", + value: function clone(source) { + if (Utils.is('Array', source)) { + var cloneResult = []; + + for (var i = 0; i < source.length; i++) { + cloneResult[i] = this.clone(source[i]); + } + + return cloneResult; + } else if (Utils.is('Null', source)) { + // fixes an issue where null values were converted to {} + return null; + } else if (Utils.is('Date', source)) { + return source; + } else if (_typeof(source) === 'object') { + var _cloneResult = {}; + + for (var prop in source) { + if (source.hasOwnProperty(prop)) { + _cloneResult[prop] = this.clone(source[prop]); + } + } + + return _cloneResult; + } else { + return source; + } + } + }, { + key: "log10", + value: function log10(x) { + return Math.log(x) / Math.LN10; + } + }, { + key: "roundToBase10", + value: function roundToBase10(x) { + return Math.pow(10, Math.floor(Math.log10(x))); + } + }, { + key: "roundToBase", + value: function roundToBase(x, base) { + return Math.pow(base, Math.floor(Math.log(x) / Math.log(base))); + } + }, { + key: "parseNumber", + value: function parseNumber(val) { + if (val === null) return val; + return parseFloat(val); + } + }, { + key: "randomId", + value: function randomId() { + return (Math.random() + 1).toString(36).substring(4); + } + }, { + key: "noExponents", + value: function noExponents(val) { + var data = String(val).split(/[eE]/); + if (data.length === 1) return data[0]; + var z = '', + sign = val < 0 ? '-' : '', + str = data[0].replace('.', ''), + mag = Number(data[1]) + 1; + + if (mag < 0) { + z = sign + '0.'; + + while (mag++) { + z += '0'; + } + + return z + str.replace(/^-/, ''); + } + + mag -= str.length; + + while (mag--) { + z += '0'; + } + + return str + z; + } + }, { + key: "getDimensions", + value: function getDimensions(el) { + var computedStyle = getComputedStyle(el, null); + var elementHeight = el.clientHeight; + var elementWidth = el.clientWidth; + elementHeight -= parseFloat(computedStyle.paddingTop) + parseFloat(computedStyle.paddingBottom); + elementWidth -= parseFloat(computedStyle.paddingLeft) + parseFloat(computedStyle.paddingRight); + return [elementWidth, elementHeight]; + } + }, { + key: "getBoundingClientRect", + value: function getBoundingClientRect(element) { + var rect = element.getBoundingClientRect(); + return { + top: rect.top, + right: rect.right, + bottom: rect.bottom, + left: rect.left, + width: element.clientWidth, + height: element.clientHeight, + x: rect.left, + y: rect.top + }; + } + }, { + key: "getLargestStringFromArr", + value: function getLargestStringFromArr(arr) { + return arr.reduce(function (a, b) { + if (Array.isArray(b)) { + b = b.reduce(function (aa, bb) { + return aa.length > bb.length ? aa : bb; + }); + } + + return a.length > b.length ? a : b; + }, 0); + } // http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb#answer-12342275 + + }, { + key: "hexToRgba", + value: function hexToRgba() { + var hex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '#999999'; + var opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.6; + + if (hex.substring(0, 1) !== '#') { + hex = '#999999'; + } + + var h = hex.replace('#', ''); + h = h.match(new RegExp('(.{' + h.length / 3 + '})', 'g')); + + for (var i = 0; i < h.length; i++) { + h[i] = parseInt(h[i].length === 1 ? h[i] + h[i] : h[i], 16); + } + + if (typeof opacity !== 'undefined') h.push(opacity); + return 'rgba(' + h.join(',') + ')'; + } + }, { + key: "getOpacityFromRGBA", + value: function getOpacityFromRGBA(rgba) { + return parseFloat(rgba.replace(/^.*,(.+)\)/, '$1')); + } + }, { + key: "rgb2hex", + value: function rgb2hex(rgb) { + rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i); + return rgb && rgb.length === 4 ? '#' + ('0' + parseInt(rgb[1], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[2], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[3], 10).toString(16)).slice(-2) : ''; + } + }, { + key: "isColorHex", + value: function isColorHex(color) { + return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(color); + } + }, { + key: "getPolygonPos", + value: function getPolygonPos(size, dataPointsLen) { + var dotsArray = []; + var angle = Math.PI * 2 / dataPointsLen; + + for (var i = 0; i < dataPointsLen; i++) { + var curPos = {}; + curPos.x = size * Math.sin(i * angle); + curPos.y = -size * Math.cos(i * angle); + dotsArray.push(curPos); + } + + return dotsArray; + } + }, { + key: "polarToCartesian", + value: function polarToCartesian(centerX, centerY, radius, angleInDegrees) { + var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0; + return { + x: centerX + radius * Math.cos(angleInRadians), + y: centerY + radius * Math.sin(angleInRadians) + }; + } + }, { + key: "escapeString", + value: function escapeString(str) { + var escapeWith = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x'; + var newStr = str.toString().slice(); + newStr = newStr.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi, escapeWith); + return newStr; + } + }, { + key: "negToZero", + value: function negToZero(val) { + return val < 0 ? 0 : val; + } + }, { + key: "moveIndexInArray", + value: function moveIndexInArray(arr, old_index, new_index) { + if (new_index >= arr.length) { + var k = new_index - arr.length + 1; + + while (k--) { + arr.push(undefined); + } + } + + arr.splice(new_index, 0, arr.splice(old_index, 1)[0]); + return arr; + } + }, { + key: "extractNumber", + value: function extractNumber(s) { + return parseFloat(s.replace(/[^\d.]*/g, '')); + } + }, { + key: "findAncestor", + value: function findAncestor(el, cls) { + while ((el = el.parentElement) && !el.classList.contains(cls)) { + } + + return el; + } + }, { + key: "setELstyles", + value: function setELstyles(el, styles) { + for (var key in styles) { + if (styles.hasOwnProperty(key)) { + el.style.key = styles[key]; + } + } + } + }, { + key: "isNumber", + value: function isNumber(value) { + return !isNaN(value) && parseFloat(Number(value)) === value && !isNaN(parseInt(value, 10)); + } + }, { + key: "isFloat", + value: function isFloat(n) { + return Number(n) === n && n % 1 !== 0; + } + }, { + key: "isSafari", + value: function isSafari() { + return /^((?!chrome|android).)*safari/i.test(navigator.userAgent); + } + }, { + key: "isFirefox", + value: function isFirefox() { + return navigator.userAgent.toLowerCase().indexOf('firefox') > -1; + } + }, { + key: "isIE11", + value: function isIE11() { + if (window.navigator.userAgent.indexOf('MSIE') !== -1 || window.navigator.appVersion.indexOf('Trident/') > -1) { + return true; + } + } + }, { + key: "isIE", + value: function isIE() { + var ua = window.navigator.userAgent; + var msie = ua.indexOf('MSIE '); + + if (msie > 0) { + // IE 10 or older => return version number + return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10); + } + + var trident = ua.indexOf('Trident/'); + + if (trident > 0) { + // IE 11 => return version number + var rv = ua.indexOf('rv:'); + return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); + } + + var edge = ua.indexOf('Edge/'); + + if (edge > 0) { + // Edge (IE 12+) => return version number + return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10); + } // other browser + + + return false; + } + }]); + + return Utils; + }(); + + /** + * ApexCharts Animation Class. + * + * @module Animations + **/ + + var Animations = /*#__PURE__*/function () { + function Animations(ctx) { + _classCallCheck(this, Animations); + + this.ctx = ctx; + this.w = ctx.w; + this.setEasingFunctions(); + } + + _createClass(Animations, [{ + key: "setEasingFunctions", + value: function setEasingFunctions() { + var easing; + if (this.w.globals.easing) return; + var userDefinedEasing = this.w.config.chart.animations.easing; + + switch (userDefinedEasing) { + case 'linear': + { + easing = '-'; + break; + } + + case 'easein': + { + easing = '<'; + break; + } + + case 'easeout': + { + easing = '>'; + break; + } + + case 'easeinout': + { + easing = '<>'; + break; + } + + case 'swing': + { + easing = function easing(pos) { + var s = 1.70158; + var ret = (pos -= 1) * pos * ((s + 1) * pos + s) + 1; + return ret; + }; + + break; + } + + case 'bounce': + { + easing = function easing(pos) { + var ret = ''; + + if (pos < 1 / 2.75) { + ret = 7.5625 * pos * pos; + } else if (pos < 2 / 2.75) { + ret = 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; + } else if (pos < 2.5 / 2.75) { + ret = 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; + } else { + ret = 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; + } + + return ret; + }; + + break; + } + + case 'elastic': + { + easing = function easing(pos) { + if (pos === !!pos) return pos; + return Math.pow(2, -10 * pos) * Math.sin((pos - 0.075) * (2 * Math.PI) / 0.3) + 1; + }; + + break; + } + + default: + { + easing = '<>'; + } + } + + this.w.globals.easing = easing; + } + }, { + key: "animateLine", + value: function animateLine(el, from, to, speed) { + el.attr(from).animate(speed).attr(to); + } + /* + ** Animate radius of a circle element + */ + + }, { + key: "animateMarker", + value: function animateMarker(el, from, to, speed, easing, cb) { + if (!from) from = 0; + el.attr({ + r: from, + width: from, + height: from + }).animate(speed, easing).attr({ + r: to, + width: to.width, + height: to.height + }).afterAll(function () { + cb(); + }); + } + /* + ** Animate radius and position of a circle element + */ + + }, { + key: "animateCircle", + value: function animateCircle(el, from, to, speed, easing) { + el.attr({ + r: from.r, + cx: from.cx, + cy: from.cy + }).animate(speed, easing).attr({ + r: to.r, + cx: to.cx, + cy: to.cy + }); + } + /* + ** Animate rect properties + */ + + }, { + key: "animateRect", + value: function animateRect(el, from, to, speed, fn) { + el.attr(from).animate(speed).attr(to).afterAll(function () { + return fn(); + }); + } + }, { + key: "animatePathsGradually", + value: function animatePathsGradually(params) { + var el = params.el, + realIndex = params.realIndex, + j = params.j, + fill = params.fill, + pathFrom = params.pathFrom, + pathTo = params.pathTo, + speed = params.speed, + delay = params.delay; + var me = this; + var w = this.w; + var delayFactor = 0; + + if (w.config.chart.animations.animateGradually.enabled) { + delayFactor = w.config.chart.animations.animateGradually.delay; + } + + if (w.config.chart.animations.dynamicAnimation.enabled && w.globals.dataChanged && w.config.chart.type !== 'bar') { + // disabled due to this bug - https://github.com/apexcharts/vue-apexcharts/issues/75 + delayFactor = 0; + } + + me.morphSVG(el, realIndex, j, w.config.chart.type === 'line' && !w.globals.comboCharts ? 'stroke' : fill, pathFrom, pathTo, speed, delay * delayFactor); + } + }, { + key: "showDelayedElements", + value: function showDelayedElements() { + this.w.globals.delayedElements.forEach(function (d) { + var ele = d.el; + ele.classList.remove('apexcharts-element-hidden'); + }); + } + }, { + key: "animationCompleted", + value: function animationCompleted(el) { + var w = this.w; + if (w.globals.animationEnded) return; + w.globals.animationEnded = true; + this.showDelayedElements(); + + if (typeof w.config.chart.events.animationEnd === 'function') { + w.config.chart.events.animationEnd(this.ctx, { + el: el, + w: w + }); + } + } // SVG.js animation for morphing one path to another + + }, { + key: "morphSVG", + value: function morphSVG(el, realIndex, j, fill, pathFrom, pathTo, speed, delay) { + var _this = this; + + var w = this.w; + + if (!pathFrom) { + pathFrom = el.attr('pathFrom'); + } + + if (!pathTo) { + pathTo = el.attr('pathTo'); + } + + var disableAnimationForCorrupPath = function disableAnimationForCorrupPath(path) { + if (w.config.chart.type === 'radar') { + // radar chart drops the path to bottom and hence a corrup path looks ugly + // therefore, disable animation for such a case + speed = 1; + } + + return "M 0 ".concat(w.globals.gridHeight); + }; + + if (!pathFrom || pathFrom.indexOf('undefined') > -1 || pathFrom.indexOf('NaN') > -1) { + pathFrom = disableAnimationForCorrupPath(); + } + + if (!pathTo || pathTo.indexOf('undefined') > -1 || pathTo.indexOf('NaN') > -1) { + pathTo = disableAnimationForCorrupPath(); + } + + if (!w.globals.shouldAnimate) { + speed = 1; + } + + el.plot(pathFrom).animate(1, w.globals.easing, delay).plot(pathFrom).animate(speed, w.globals.easing, delay).plot(pathTo).afterAll(function () { + // a flag to indicate that the original mount function can return true now as animation finished here + if (Utils$1.isNumber(j)) { + if (j === w.globals.series[w.globals.maxValsInArrayIndex].length - 2 && w.globals.shouldAnimate) { + _this.animationCompleted(el); + } + } else if (fill !== 'none' && w.globals.shouldAnimate) { + if (!w.globals.comboCharts && realIndex === w.globals.series.length - 1 || w.globals.comboCharts) { + _this.animationCompleted(el); + } + } + + _this.showDelayedElements(); + }); + } + }]); + + return Animations; + }(); + + /** + * ApexCharts Filters Class for setting hover/active states on the paths. + * + * @module Formatters + **/ + + var Filters = /*#__PURE__*/function () { + function Filters(ctx) { + _classCallCheck(this, Filters); + + this.ctx = ctx; + this.w = ctx.w; + } // create a re-usable filter which can be appended other filter effects and applied to multiple elements + + + _createClass(Filters, [{ + key: "getDefaultFilter", + value: function getDefaultFilter(el, i) { + var w = this.w; + el.unfilter(true); + var filter = new window.SVG.Filter(); + filter.size('120%', '180%', '-5%', '-40%'); + + if (w.config.states.normal.filter !== 'none') { + this.applyFilter(el, i, w.config.states.normal.filter.type, w.config.states.normal.filter.value); + } else { + if (w.config.chart.dropShadow.enabled) { + this.dropShadow(el, w.config.chart.dropShadow, i); + } + } + } + }, { + key: "addNormalFilter", + value: function addNormalFilter(el, i) { + var w = this.w; // revert shadow if it was there + // but, ignore marker as marker don't have dropshadow yet + + if (w.config.chart.dropShadow.enabled && !el.node.classList.contains('apexcharts-marker')) { + this.dropShadow(el, w.config.chart.dropShadow, i); + } + } // appends dropShadow to the filter object which can be chained with other filter effects + + }, { + key: "addLightenFilter", + value: function addLightenFilter(el, i, attrs) { + var _this = this; + + var w = this.w; + var intensity = attrs.intensity; + el.unfilter(true); + var filter = new window.SVG.Filter(); + el.filter(function (add) { + var shadowAttr = w.config.chart.dropShadow; + + if (shadowAttr.enabled) { + filter = _this.addShadow(add, i, shadowAttr); + } else { + filter = add; + } + + filter.componentTransfer({ + rgb: { + type: 'linear', + slope: 1.5, + intercept: intensity + } + }); + }); + el.filterer.node.setAttribute('filterUnits', 'userSpaceOnUse'); + + this._scaleFilterSize(el.filterer.node); + } // appends dropShadow to the filter object which can be chained with other filter effects + + }, { + key: "addDarkenFilter", + value: function addDarkenFilter(el, i, attrs) { + var _this2 = this; + + var w = this.w; + var intensity = attrs.intensity; + el.unfilter(true); + var filter = new window.SVG.Filter(); + el.filter(function (add) { + var shadowAttr = w.config.chart.dropShadow; + + if (shadowAttr.enabled) { + filter = _this2.addShadow(add, i, shadowAttr); + } else { + filter = add; + } + + filter.componentTransfer({ + rgb: { + type: 'linear', + slope: intensity + } + }); + }); + el.filterer.node.setAttribute('filterUnits', 'userSpaceOnUse'); + + this._scaleFilterSize(el.filterer.node); + } + }, { + key: "applyFilter", + value: function applyFilter(el, i, filter) { + var intensity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.5; + + switch (filter) { + case 'none': + { + this.addNormalFilter(el, i); + break; + } + + case 'lighten': + { + this.addLightenFilter(el, i, { + intensity: intensity + }); + break; + } + + case 'darken': + { + this.addDarkenFilter(el, i, { + intensity: intensity + }); + break; + } + } + } // appends dropShadow to the filter object which can be chained with other filter effects + + }, { + key: "addShadow", + value: function addShadow(add, i, attrs) { + var blur = attrs.blur, + top = attrs.top, + left = attrs.left, + color = attrs.color, + opacity = attrs.opacity; + var shadowBlur = add.flood(Array.isArray(color) ? color[i] : color, opacity).composite(add.sourceAlpha, 'in').offset(left, top).gaussianBlur(blur).merge(add.source); + return add.blend(add.source, shadowBlur); + } // directly adds dropShadow to the element and returns the same element. + // the only way it is different from the addShadow() function is that addShadow is chainable to other filters, while this function discards all filters and add dropShadow + + }, { + key: "dropShadow", + value: function dropShadow(el, attrs) { + var i = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + var top = attrs.top, + left = attrs.left, + blur = attrs.blur, + color = attrs.color, + opacity = attrs.opacity, + noUserSpaceOnUse = attrs.noUserSpaceOnUse; + var w = this.w; + el.unfilter(true); + + if (Utils$1.isIE() && w.config.chart.type === 'radialBar') { + // in radialbar charts, dropshadow is clipping actual drawing in IE + return el; + } + + color = Array.isArray(color) ? color[i] : color; + el.filter(function (add) { + var shadowBlur = null; + + if (Utils$1.isSafari() || Utils$1.isFirefox() || Utils$1.isIE()) { + // safari/firefox/IE have some alternative way to use this filter + shadowBlur = add.flood(color, opacity).composite(add.sourceAlpha, 'in').offset(left, top).gaussianBlur(blur); + } else { + shadowBlur = add.flood(color, opacity).composite(add.sourceAlpha, 'in').offset(left, top).gaussianBlur(blur).merge(add.source); + } + + add.blend(add.source, shadowBlur); + }); + + if (!noUserSpaceOnUse) { + el.filterer.node.setAttribute('filterUnits', 'userSpaceOnUse'); + } + + this._scaleFilterSize(el.filterer.node); + + return el; + } + }, { + key: "setSelectionFilter", + value: function setSelectionFilter(el, realIndex, dataPointIndex) { + var w = this.w; + + if (typeof w.globals.selectedDataPoints[realIndex] !== 'undefined') { + if (w.globals.selectedDataPoints[realIndex].indexOf(dataPointIndex) > -1) { + el.node.setAttribute('selected', true); + var activeFilter = w.config.states.active.filter; + + if (activeFilter !== 'none') { + this.applyFilter(el, realIndex, activeFilter.type, activeFilter.value); + } + } + } + } + }, { + key: "_scaleFilterSize", + value: function _scaleFilterSize(el) { + var setAttributes = function setAttributes(attrs) { + for (var key in attrs) { + if (attrs.hasOwnProperty(key)) { + el.setAttribute(key, attrs[key]); + } + } + }; + + setAttributes({ + width: '200%', + height: '200%', + x: '-50%', + y: '-50%' + }); + } + }]); + + return Filters; + }(); + + /** + * ApexCharts Graphics Class for all drawing operations. + * + * @module Graphics + **/ + + var Graphics = /*#__PURE__*/function () { + function Graphics(ctx) { + _classCallCheck(this, Graphics); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(Graphics, [{ + key: "drawLine", + value: function drawLine(x1, y1, x2, y2) { + var lineColor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '#a8a8a8'; + var dashArray = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + var strokeWidth = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null; + var strokeLineCap = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 'butt'; + var w = this.w; + var line = w.globals.dom.Paper.line().attr({ + x1: x1, + y1: y1, + x2: x2, + y2: y2, + stroke: lineColor, + 'stroke-dasharray': dashArray, + 'stroke-width': strokeWidth, + 'stroke-linecap': strokeLineCap + }); + return line; + } + }, { + key: "drawRect", + value: function drawRect() { + var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + var radius = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var color = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '#fefefe'; + var opacity = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 1; + var strokeWidth = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null; + var strokeColor = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : null; + var strokeDashArray = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 0; + var w = this.w; + var rect = w.globals.dom.Paper.rect(); + rect.attr({ + x: x1, + y: y1, + width: x2 > 0 ? x2 : 0, + height: y2 > 0 ? y2 : 0, + rx: radius, + ry: radius, + opacity: opacity, + 'stroke-width': strokeWidth !== null ? strokeWidth : 0, + stroke: strokeColor !== null ? strokeColor : 'none', + 'stroke-dasharray': strokeDashArray + }); // fix apexcharts.js#1410 + + rect.node.setAttribute('fill', color); + return rect; + } + }, { + key: "drawPolygon", + value: function drawPolygon(polygonString) { + var stroke = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '#e1e1e1'; + var strokeWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + var fill = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'none'; + var w = this.w; + var polygon = w.globals.dom.Paper.polygon(polygonString).attr({ + fill: fill, + stroke: stroke, + 'stroke-width': strokeWidth + }); + return polygon; + } + }, { + key: "drawCircle", + value: function drawCircle(radius) { + var attrs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var w = this.w; + if (radius < 0) radius = 0; + var c = w.globals.dom.Paper.circle(radius * 2); + + if (attrs !== null) { + c.attr(attrs); + } + + return c; + } + }, { + key: "drawPath", + value: function drawPath(_ref) { + var _ref$d = _ref.d, + d = _ref$d === void 0 ? '' : _ref$d, + _ref$stroke = _ref.stroke, + stroke = _ref$stroke === void 0 ? '#a8a8a8' : _ref$stroke, + _ref$strokeWidth = _ref.strokeWidth, + strokeWidth = _ref$strokeWidth === void 0 ? 1 : _ref$strokeWidth, + fill = _ref.fill, + _ref$fillOpacity = _ref.fillOpacity, + fillOpacity = _ref$fillOpacity === void 0 ? 1 : _ref$fillOpacity, + _ref$strokeOpacity = _ref.strokeOpacity, + strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity, + classes = _ref.classes, + _ref$strokeLinecap = _ref.strokeLinecap, + strokeLinecap = _ref$strokeLinecap === void 0 ? null : _ref$strokeLinecap, + _ref$strokeDashArray = _ref.strokeDashArray, + strokeDashArray = _ref$strokeDashArray === void 0 ? 0 : _ref$strokeDashArray; + var w = this.w; + + if (strokeLinecap === null) { + strokeLinecap = w.config.stroke.lineCap; + } + + if (d.indexOf('undefined') > -1 || d.indexOf('NaN') > -1) { + d = "M 0 ".concat(w.globals.gridHeight); + } + + var p = w.globals.dom.Paper.path(d).attr({ + fill: fill, + 'fill-opacity': fillOpacity, + stroke: stroke, + 'stroke-opacity': strokeOpacity, + 'stroke-linecap': strokeLinecap, + 'stroke-width': strokeWidth, + 'stroke-dasharray': strokeDashArray, + class: classes + }); + return p; + } + }, { + key: "group", + value: function group() { + var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var w = this.w; + var g = w.globals.dom.Paper.group(); + + if (attrs !== null) { + g.attr(attrs); + } + + return g; + } + }, { + key: "move", + value: function move(x, y) { + var move = ['M', x, y].join(' '); + return move; + } + }, { + key: "line", + value: function line(x, y) { + var hORv = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var line = null; + + if (hORv === null) { + line = ['L', x, y].join(' '); + } else if (hORv === 'H') { + line = ['H', x].join(' '); + } else if (hORv === 'V') { + line = ['V', y].join(' '); + } + + return line; + } + }, { + key: "curve", + value: function curve(x1, y1, x2, y2, x, y) { + var curve = ['C', x1, y1, x2, y2, x, y].join(' '); + return curve; + } + }, { + key: "quadraticCurve", + value: function quadraticCurve(x1, y1, x, y) { + var curve = ['Q', x1, y1, x, y].join(' '); + return curve; + } + }, { + key: "arc", + value: function arc(rx, ry, axisRotation, largeArcFlag, sweepFlag, x, y) { + var relative = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false; + var coord = 'A'; + if (relative) coord = 'a'; + var arc = [coord, rx, ry, axisRotation, largeArcFlag, sweepFlag, x, y].join(' '); + return arc; + } + /** + * @memberof Graphics + * @param {object} + * i = series's index + * realIndex = realIndex is series's actual index when it was drawn time. After several redraws, the iterating "i" may change in loops, but realIndex doesn't + * pathFrom = existing pathFrom to animateTo + * pathTo = new Path to which d attr will be animated from pathFrom to pathTo + * stroke = line Color + * strokeWidth = width of path Line + * fill = it can be gradient, single color, pattern or image + * animationDelay = how much to delay when starting animation (in milliseconds) + * dataChangeSpeed = for dynamic animations, when data changes + * className = class attribute to add + * @return {object} svg.js path object + **/ + + }, { + key: "renderPaths", + value: function renderPaths(_ref2) { + var j = _ref2.j, + realIndex = _ref2.realIndex, + pathFrom = _ref2.pathFrom, + pathTo = _ref2.pathTo, + stroke = _ref2.stroke, + strokeWidth = _ref2.strokeWidth, + strokeLinecap = _ref2.strokeLinecap, + fill = _ref2.fill, + animationDelay = _ref2.animationDelay, + initialSpeed = _ref2.initialSpeed, + dataChangeSpeed = _ref2.dataChangeSpeed, + className = _ref2.className, + _ref2$shouldClipToGri = _ref2.shouldClipToGrid, + shouldClipToGrid = _ref2$shouldClipToGri === void 0 ? true : _ref2$shouldClipToGri, + _ref2$bindEventsOnPat = _ref2.bindEventsOnPaths, + bindEventsOnPaths = _ref2$bindEventsOnPat === void 0 ? true : _ref2$bindEventsOnPat, + _ref2$drawShadow = _ref2.drawShadow, + drawShadow = _ref2$drawShadow === void 0 ? true : _ref2$drawShadow; + var w = this.w; + var filters = new Filters(this.ctx); + var anim = new Animations(this.ctx); + var initialAnim = this.w.config.chart.animations.enabled; + var dynamicAnim = initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled; + var d; + var shouldAnimate = !!(initialAnim && !w.globals.resized || dynamicAnim && w.globals.dataChanged && w.globals.shouldAnimate); + + if (shouldAnimate) { + d = pathFrom; + } else { + d = pathTo; + w.globals.animationEnded = true; + } + + var strokeDashArrayOpt = w.config.stroke.dashArray; + var strokeDashArray = 0; + + if (Array.isArray(strokeDashArrayOpt)) { + strokeDashArray = strokeDashArrayOpt[realIndex]; + } else { + strokeDashArray = w.config.stroke.dashArray; + } + + var el = this.drawPath({ + d: d, + stroke: stroke, + strokeWidth: strokeWidth, + fill: fill, + fillOpacity: 1, + classes: className, + strokeLinecap: strokeLinecap, + strokeDashArray: strokeDashArray + }); + el.attr('index', realIndex); + + if (shouldClipToGrid) { + el.attr({ + 'clip-path': "url(#gridRectMask".concat(w.globals.cuid, ")") + }); + } // const defaultFilter = el.filterer + + + if (w.config.states.normal.filter.type !== 'none') { + filters.getDefaultFilter(el, realIndex); + } else { + if (w.config.chart.dropShadow.enabled && drawShadow) { + if (!w.config.chart.dropShadow.enabledOnSeries || w.config.chart.dropShadow.enabledOnSeries && w.config.chart.dropShadow.enabledOnSeries.indexOf(realIndex) !== -1) { + var shadow = w.config.chart.dropShadow; + filters.dropShadow(el, shadow, realIndex); + } + } + } + + if (bindEventsOnPaths) { + el.node.addEventListener('mouseenter', this.pathMouseEnter.bind(this, el)); + el.node.addEventListener('mouseleave', this.pathMouseLeave.bind(this, el)); + el.node.addEventListener('mousedown', this.pathMouseDown.bind(this, el)); + } + + el.attr({ + pathTo: pathTo, + pathFrom: pathFrom + }); + var defaultAnimateOpts = { + el: el, + j: j, + realIndex: realIndex, + pathFrom: pathFrom, + pathTo: pathTo, + fill: fill, + strokeWidth: strokeWidth, + delay: animationDelay + }; + + if (initialAnim && !w.globals.resized && !w.globals.dataChanged) { + anim.animatePathsGradually(_objectSpread2(_objectSpread2({}, defaultAnimateOpts), {}, { + speed: initialSpeed + })); + } else { + if (w.globals.resized || !w.globals.dataChanged) { + anim.showDelayedElements(); + } + } + + if (w.globals.dataChanged && dynamicAnim && shouldAnimate) { + anim.animatePathsGradually(_objectSpread2(_objectSpread2({}, defaultAnimateOpts), {}, { + speed: dataChangeSpeed + })); + } + + return el; + } + }, { + key: "drawPattern", + value: function drawPattern(style, width, height) { + var stroke = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '#a8a8a8'; + var strokeWidth = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var w = this.w; + var p = w.globals.dom.Paper.pattern(width, height, function (add) { + if (style === 'horizontalLines') { + add.line(0, 0, height, 0).stroke({ + color: stroke, + width: strokeWidth + 1 + }); + } else if (style === 'verticalLines') { + add.line(0, 0, 0, width).stroke({ + color: stroke, + width: strokeWidth + 1 + }); + } else if (style === 'slantedLines') { + add.line(0, 0, width, height).stroke({ + color: stroke, + width: strokeWidth + }); + } else if (style === 'squares') { + add.rect(width, height).fill('none').stroke({ + color: stroke, + width: strokeWidth + }); + } else if (style === 'circles') { + add.circle(width).fill('none').stroke({ + color: stroke, + width: strokeWidth + }); + } + }); + return p; + } + }, { + key: "drawGradient", + value: function drawGradient(style, gfrom, gto, opacityFrom, opacityTo) { + var size = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null; + var stops = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null; + var colorStops = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null; + var i = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 0; + var w = this.w; + var g; + + if (gfrom.length < 9 && gfrom.indexOf('#') === 0) { + // if the hex contains alpha and is of 9 digit, skip the opacity + gfrom = Utils$1.hexToRgba(gfrom, opacityFrom); + } + + if (gto.length < 9 && gto.indexOf('#') === 0) { + gto = Utils$1.hexToRgba(gto, opacityTo); + } + + var stop1 = 0; + var stop2 = 1; + var stop3 = 1; + var stop4 = null; + + if (stops !== null) { + stop1 = typeof stops[0] !== 'undefined' ? stops[0] / 100 : 0; + stop2 = typeof stops[1] !== 'undefined' ? stops[1] / 100 : 1; + stop3 = typeof stops[2] !== 'undefined' ? stops[2] / 100 : 1; + stop4 = typeof stops[3] !== 'undefined' ? stops[3] / 100 : null; + } + + var radial = !!(w.config.chart.type === 'donut' || w.config.chart.type === 'pie' || w.config.chart.type === 'polarArea' || w.config.chart.type === 'bubble'); + + if (colorStops === null || colorStops.length === 0) { + g = w.globals.dom.Paper.gradient(radial ? 'radial' : 'linear', function (stop) { + stop.at(stop1, gfrom, opacityFrom); + stop.at(stop2, gto, opacityTo); + stop.at(stop3, gto, opacityTo); + + if (stop4 !== null) { + stop.at(stop4, gfrom, opacityFrom); + } + }); + } else { + g = w.globals.dom.Paper.gradient(radial ? 'radial' : 'linear', function (stop) { + var gradientStops = Array.isArray(colorStops[i]) ? colorStops[i] : colorStops; + gradientStops.forEach(function (s) { + stop.at(s.offset / 100, s.color, s.opacity); + }); + }); + } + + if (!radial) { + if (style === 'vertical') { + g.from(0, 0).to(0, 1); + } else if (style === 'diagonal') { + g.from(0, 0).to(1, 1); + } else if (style === 'horizontal') { + g.from(0, 1).to(1, 1); + } else if (style === 'diagonal2') { + g.from(1, 0).to(0, 1); + } + } else { + var offx = w.globals.gridWidth / 2; + var offy = w.globals.gridHeight / 2; + + if (w.config.chart.type !== 'bubble') { + g.attr({ + gradientUnits: 'userSpaceOnUse', + cx: offx, + cy: offy, + r: size + }); + } else { + g.attr({ + cx: 0.5, + cy: 0.5, + r: 0.8, + fx: 0.2, + fy: 0.2 + }); + } + } + + return g; + } + }, { + key: "getTextBasedOnMaxWidth", + value: function getTextBasedOnMaxWidth(_ref3) { + var text = _ref3.text, + maxWidth = _ref3.maxWidth, + fontSize = _ref3.fontSize, + fontFamily = _ref3.fontFamily; + var tRects = this.getTextRects(text, fontSize, fontFamily); + var wordWidth = tRects.width / text.length; + var wordsBasedOnWidth = Math.floor(maxWidth / wordWidth); + + if (maxWidth < tRects.width) { + return text.slice(0, wordsBasedOnWidth - 3) + '...'; + } + + return text; + } + }, { + key: "drawText", + value: function drawText(_ref4) { + var _this = this; + + var x = _ref4.x, + y = _ref4.y, + text = _ref4.text, + textAnchor = _ref4.textAnchor, + fontSize = _ref4.fontSize, + fontFamily = _ref4.fontFamily, + fontWeight = _ref4.fontWeight, + foreColor = _ref4.foreColor, + opacity = _ref4.opacity, + maxWidth = _ref4.maxWidth, + _ref4$cssClass = _ref4.cssClass, + cssClass = _ref4$cssClass === void 0 ? '' : _ref4$cssClass, + _ref4$isPlainText = _ref4.isPlainText, + isPlainText = _ref4$isPlainText === void 0 ? true : _ref4$isPlainText; + var w = this.w; + if (typeof text === 'undefined') text = ''; + var truncatedText = text; + + if (!textAnchor) { + textAnchor = 'start'; + } + + if (!foreColor || !foreColor.length) { + foreColor = w.config.chart.foreColor; + } + + fontFamily = fontFamily || w.config.chart.fontFamily; + fontSize = fontSize || '11px'; + fontWeight = fontWeight || 'regular'; + var commonProps = { + maxWidth: maxWidth, + fontSize: fontSize, + fontFamily: fontFamily + }; + var elText; + + if (Array.isArray(text)) { + elText = w.globals.dom.Paper.text(function (add) { + for (var i = 0; i < text.length; i++) { + truncatedText = text[i]; + + if (maxWidth) { + truncatedText = _this.getTextBasedOnMaxWidth(_objectSpread2({ + text: text[i] + }, commonProps)); + } + + i === 0 ? add.tspan(truncatedText) : add.tspan(truncatedText).newLine(); + } + }); + } else { + if (maxWidth) { + truncatedText = this.getTextBasedOnMaxWidth(_objectSpread2({ + text: text + }, commonProps)); + } + + elText = isPlainText ? w.globals.dom.Paper.plain(text) : w.globals.dom.Paper.text(function (add) { + return add.tspan(truncatedText); + }); + } + + elText.attr({ + x: x, + y: y, + 'text-anchor': textAnchor, + 'dominant-baseline': 'auto', + 'font-size': fontSize, + 'font-family': fontFamily, + 'font-weight': fontWeight, + fill: foreColor, + class: 'apexcharts-text ' + cssClass + }); + elText.node.style.fontFamily = fontFamily; + elText.node.style.opacity = opacity; + return elText; + } + }, { + key: "drawMarker", + value: function drawMarker(x, y, opts) { + x = x || 0; + var size = opts.pSize || 0; + var elPoint = null; + + if (opts.shape === 'square' || opts.shape === 'rect') { + var radius = opts.pRadius === undefined ? size / 2 : opts.pRadius; + + if (y === null || !size) { + size = 0; + radius = 0; + } + + var nSize = size * 1.2 + radius; + var p = this.drawRect(nSize, nSize, nSize, nSize, radius); + p.attr({ + x: x - nSize / 2, + y: y - nSize / 2, + cx: x, + cy: y, + class: opts.class ? opts.class : '', + fill: opts.pointFillColor, + 'fill-opacity': opts.pointFillOpacity ? opts.pointFillOpacity : 1, + stroke: opts.pointStrokeColor, + 'stroke-width': opts.pointStrokeWidth ? opts.pointStrokeWidth : 0, + 'stroke-opacity': opts.pointStrokeOpacity ? opts.pointStrokeOpacity : 1 + }); + elPoint = p; + } else if (opts.shape === 'circle' || !opts.shape) { + if (!Utils$1.isNumber(y)) { + size = 0; + y = 0; + } // let nSize = size - opts.pRadius / 2 < 0 ? 0 : size - opts.pRadius / 2 + + + elPoint = this.drawCircle(size, { + cx: x, + cy: y, + class: opts.class ? opts.class : '', + stroke: opts.pointStrokeColor, + fill: opts.pointFillColor, + 'fill-opacity': opts.pointFillOpacity ? opts.pointFillOpacity : 1, + 'stroke-width': opts.pointStrokeWidth ? opts.pointStrokeWidth : 0, + 'stroke-opacity': opts.pointStrokeOpacity ? opts.pointStrokeOpacity : 1 + }); + } + + return elPoint; + } + }, { + key: "pathMouseEnter", + value: function pathMouseEnter(path, e) { + var w = this.w; + var filters = new Filters(this.ctx); + var i = parseInt(path.node.getAttribute('index'), 10); + var j = parseInt(path.node.getAttribute('j'), 10); + + if (typeof w.config.chart.events.dataPointMouseEnter === 'function') { + w.config.chart.events.dataPointMouseEnter(e, this.ctx, { + seriesIndex: i, + dataPointIndex: j, + w: w + }); + } + + this.ctx.events.fireEvent('dataPointMouseEnter', [e, this.ctx, { + seriesIndex: i, + dataPointIndex: j, + w: w + }]); + + if (w.config.states.active.filter.type !== 'none') { + if (path.node.getAttribute('selected') === 'true') { + return; + } + } + + if (w.config.states.hover.filter.type !== 'none') { + if (!w.globals.isTouchDevice) { + var hoverFilter = w.config.states.hover.filter; + filters.applyFilter(path, i, hoverFilter.type, hoverFilter.value); + } + } + } + }, { + key: "pathMouseLeave", + value: function pathMouseLeave(path, e) { + var w = this.w; + var filters = new Filters(this.ctx); + var i = parseInt(path.node.getAttribute('index'), 10); + var j = parseInt(path.node.getAttribute('j'), 10); + + if (typeof w.config.chart.events.dataPointMouseLeave === 'function') { + w.config.chart.events.dataPointMouseLeave(e, this.ctx, { + seriesIndex: i, + dataPointIndex: j, + w: w + }); + } + + this.ctx.events.fireEvent('dataPointMouseLeave', [e, this.ctx, { + seriesIndex: i, + dataPointIndex: j, + w: w + }]); + + if (w.config.states.active.filter.type !== 'none') { + if (path.node.getAttribute('selected') === 'true') { + return; + } + } + + if (w.config.states.hover.filter.type !== 'none') { + filters.getDefaultFilter(path, i); + } + } + }, { + key: "pathMouseDown", + value: function pathMouseDown(path, e) { + var w = this.w; + var filters = new Filters(this.ctx); + var i = parseInt(path.node.getAttribute('index'), 10); + var j = parseInt(path.node.getAttribute('j'), 10); + var selected = 'false'; + + if (path.node.getAttribute('selected') === 'true') { + path.node.setAttribute('selected', 'false'); + + if (w.globals.selectedDataPoints[i].indexOf(j) > -1) { + var index = w.globals.selectedDataPoints[i].indexOf(j); + w.globals.selectedDataPoints[i].splice(index, 1); + } + } else { + if (!w.config.states.active.allowMultipleDataPointsSelection && w.globals.selectedDataPoints.length > 0) { + w.globals.selectedDataPoints = []; + var elPaths = w.globals.dom.Paper.select('.apexcharts-series path').members; + var elCircles = w.globals.dom.Paper.select('.apexcharts-series circle, .apexcharts-series rect').members; + + var deSelect = function deSelect(els) { + Array.prototype.forEach.call(els, function (el) { + el.node.setAttribute('selected', 'false'); + filters.getDefaultFilter(el, i); + }); + }; + + deSelect(elPaths); + deSelect(elCircles); + } + + path.node.setAttribute('selected', 'true'); + selected = 'true'; + + if (typeof w.globals.selectedDataPoints[i] === 'undefined') { + w.globals.selectedDataPoints[i] = []; + } + + w.globals.selectedDataPoints[i].push(j); + } + + if (selected === 'true') { + var activeFilter = w.config.states.active.filter; + + if (activeFilter !== 'none') { + filters.applyFilter(path, i, activeFilter.type, activeFilter.value); + } else { + // Reapply the hover filter in case it was removed by `deselect`when there is no active filter and it is not a touch device + if (w.config.states.hover.filter !== 'none') { + if (!w.globals.isTouchDevice) { + var hoverFilter = w.config.states.hover.filter; + filters.applyFilter(path, i, hoverFilter.type, hoverFilter.value); + } + } + } + } else { + // If the item was deselected, apply hover state filter if it is not a touch device + if (w.config.states.active.filter.type !== 'none') { + if (w.config.states.hover.filter.type !== 'none' && !w.globals.isTouchDevice) { + var hoverFilter = w.config.states.hover.filter; + filters.applyFilter(path, i, hoverFilter.type, hoverFilter.value); + } else { + filters.getDefaultFilter(path, i); + } + } + } + + if (typeof w.config.chart.events.dataPointSelection === 'function') { + w.config.chart.events.dataPointSelection(e, this.ctx, { + selectedDataPoints: w.globals.selectedDataPoints, + seriesIndex: i, + dataPointIndex: j, + w: w + }); + } + + if (e) { + this.ctx.events.fireEvent('dataPointSelection', [e, this.ctx, { + selectedDataPoints: w.globals.selectedDataPoints, + seriesIndex: i, + dataPointIndex: j, + w: w + }]); + } + } + }, { + key: "rotateAroundCenter", + value: function rotateAroundCenter(el) { + var coord = {}; + + if (el && typeof el.getBBox === 'function') { + coord = el.getBBox(); + } + + var x = coord.x + coord.width / 2; + var y = coord.y + coord.height / 2; + return { + x: x, + y: y + }; + } + }, { + key: "getTextRects", + value: function getTextRects(text, fontSize, fontFamily, transform) { + var useBBox = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var w = this.w; + var virtualText = this.drawText({ + x: -200, + y: -200, + text: text, + textAnchor: 'start', + fontSize: fontSize, + fontFamily: fontFamily, + foreColor: '#fff', + opacity: 0 + }); + + if (transform) { + virtualText.attr('transform', transform); + } + + w.globals.dom.Paper.add(virtualText); + var rect = virtualText.bbox(); + + if (!useBBox) { + rect = virtualText.node.getBoundingClientRect(); + } + + virtualText.remove(); + return { + width: rect.width, + height: rect.height + }; + } + /** + * append ... to long text + * http://stackoverflow.com/questions/9241315/trimming-text-to-a-given-pixel-width-in-svg + * @memberof Graphics + **/ + + }, { + key: "placeTextWithEllipsis", + value: function placeTextWithEllipsis(textObj, textString, width) { + if (typeof textObj.getComputedTextLength !== 'function') return; + textObj.textContent = textString; + + if (textString.length > 0) { + // ellipsis is needed + if (textObj.getComputedTextLength() >= width / 1.1) { + for (var x = textString.length - 3; x > 0; x -= 3) { + if (textObj.getSubStringLength(0, x) <= width / 1.1) { + textObj.textContent = textString.substring(0, x) + '...'; + return; + } + } + + textObj.textContent = '.'; // can't place at all + } + } + } + }], [{ + key: "setAttrs", + value: function setAttrs(el, attrs) { + for (var key in attrs) { + if (attrs.hasOwnProperty(key)) { + el.setAttribute(key, attrs[key]); + } + } + } + }]); + + return Graphics; + }(); + + /* + ** Util functions which are dependent on ApexCharts instance + */ + var CoreUtils = /*#__PURE__*/function () { + function CoreUtils(ctx) { + _classCallCheck(this, CoreUtils); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(CoreUtils, [{ + key: "getStackedSeriesTotals", + value: + /** + * @memberof CoreUtils + * returns the sum of all individual values in a multiple stacked series + * Eg. w.globals.series = [[32,33,43,12], [2,3,5,1]] + * @return [34,36,48,13] + **/ + function getStackedSeriesTotals() { + var w = this.w; + var total = []; + if (w.globals.series.length === 0) return total; + + for (var i = 0; i < w.globals.series[w.globals.maxValsInArrayIndex].length; i++) { + var t = 0; + + for (var j = 0; j < w.globals.series.length; j++) { + if (typeof w.globals.series[j][i] !== 'undefined') { + t += w.globals.series[j][i]; + } + } + + total.push(t); + } + + w.globals.stackedSeriesTotals = total; + return total; + } // get total of the all values inside all series + + }, { + key: "getSeriesTotalByIndex", + value: function getSeriesTotalByIndex() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (index === null) { + // non-plot chart types - pie / donut / circle + return this.w.config.series.reduce(function (acc, cur) { + return acc + cur; + }, 0); + } else { + // axis charts - supporting multiple series + return this.w.globals.series[index].reduce(function (acc, cur) { + return acc + cur; + }, 0); + } + } + }, { + key: "isSeriesNull", + value: function isSeriesNull() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var r = []; + + if (index === null) { + // non-plot chart types - pie / donut / circle + r = this.w.config.series.filter(function (d) { + return d !== null; + }); + } else { + // axis charts - supporting multiple series + r = this.w.config.series[index].data.filter(function (d) { + return d !== null; + }); + } + + return r.length === 0; + } + }, { + key: "seriesHaveSameValues", + value: function seriesHaveSameValues(index) { + return this.w.globals.series[index].every(function (val, i, arr) { + return val === arr[0]; + }); + } + }, { + key: "getCategoryLabels", + value: function getCategoryLabels(labels) { + var w = this.w; + var catLabels = labels.slice(); + + if (w.config.xaxis.convertedCatToNumeric) { + catLabels = labels.map(function (i, li) { + return w.config.xaxis.labels.formatter(i - w.globals.minX + 1); + }); + } + + return catLabels; + } // maxValsInArrayIndex is the index of series[] which has the largest number of items + + }, { + key: "getLargestSeries", + value: function getLargestSeries() { + var w = this.w; + w.globals.maxValsInArrayIndex = w.globals.series.map(function (a) { + return a.length; + }).indexOf(Math.max.apply(Math, w.globals.series.map(function (a) { + return a.length; + }))); + } + }, { + key: "getLargestMarkerSize", + value: function getLargestMarkerSize() { + var w = this.w; + var size = 0; + w.globals.markers.size.forEach(function (m) { + size = Math.max(size, m); + }); + + if (w.config.markers.discrete && w.config.markers.discrete.length) { + w.config.markers.discrete.forEach(function (m) { + size = Math.max(size, m.size); + }); + } + + if (size > 0) { + size += w.config.markers.hover.sizeOffset + 1; + } + + w.globals.markers.largestSize = size; + return size; + } + /** + * @memberof Core + * returns the sum of all values in a series + * Eg. w.globals.series = [[32,33,43,12], [2,3,5,1]] + * @return [120, 11] + **/ + + }, { + key: "getSeriesTotals", + value: function getSeriesTotals() { + var w = this.w; + w.globals.seriesTotals = w.globals.series.map(function (ser, index) { + var total = 0; + + if (Array.isArray(ser)) { + for (var j = 0; j < ser.length; j++) { + total += ser[j]; + } + } else { + // for pie/donuts/gauges + total += ser; + } + + return total; + }); + } + }, { + key: "getSeriesTotalsXRange", + value: function getSeriesTotalsXRange(minX, maxX) { + var w = this.w; + var seriesTotalsXRange = w.globals.series.map(function (ser, index) { + var total = 0; + + for (var j = 0; j < ser.length; j++) { + if (w.globals.seriesX[index][j] > minX && w.globals.seriesX[index][j] < maxX) { + total += ser[j]; + } + } + + return total; + }); + return seriesTotalsXRange; + } + /** + * @memberof CoreUtils + * returns the percentage value of all individual values which can be used in a 100% stacked series + * Eg. w.globals.series = [[32, 33, 43, 12], [2, 3, 5, 1]] + * @return [[94.11, 91.66, 89.58, 92.30], [5.88, 8.33, 10.41, 7.7]] + **/ + + }, { + key: "getPercentSeries", + value: function getPercentSeries() { + var w = this.w; + w.globals.seriesPercent = w.globals.series.map(function (ser, index) { + var seriesPercent = []; + + if (Array.isArray(ser)) { + for (var j = 0; j < ser.length; j++) { + var total = w.globals.stackedSeriesTotals[j]; + var percent = 0; + + if (total) { + percent = 100 * ser[j] / total; + } + + seriesPercent.push(percent); + } + } else { + var _total = w.globals.seriesTotals.reduce(function (acc, val) { + return acc + val; + }, 0); + + var _percent = 100 * ser / _total; + + seriesPercent.push(_percent); + } + + return seriesPercent; + }); + } + }, { + key: "getCalculatedRatios", + value: function getCalculatedRatios() { + var gl = this.w.globals; + var yRatio = []; + var invertedYRatio = 0; + var xRatio = 0; + var initialXRatio = 0; + var invertedXRatio = 0; + var zRatio = 0; + var baseLineY = []; + var baseLineInvertedY = 0.1; + var baseLineX = 0; + gl.yRange = []; + + if (gl.isMultipleYAxis) { + for (var i = 0; i < gl.minYArr.length; i++) { + gl.yRange.push(Math.abs(gl.minYArr[i] - gl.maxYArr[i])); + baseLineY.push(0); + } + } else { + gl.yRange.push(Math.abs(gl.minY - gl.maxY)); + } + + gl.xRange = Math.abs(gl.maxX - gl.minX); + gl.zRange = Math.abs(gl.maxZ - gl.minZ); // multiple y axis + + for (var _i = 0; _i < gl.yRange.length; _i++) { + yRatio.push(gl.yRange[_i] / gl.gridHeight); + } + + xRatio = gl.xRange / gl.gridWidth; + initialXRatio = Math.abs(gl.initialMaxX - gl.initialMinX) / gl.gridWidth; + invertedYRatio = gl.yRange / gl.gridWidth; + invertedXRatio = gl.xRange / gl.gridHeight; + zRatio = gl.zRange / gl.gridHeight * 16; + + if (!zRatio) { + zRatio = 1; + } + + if (gl.minY !== Number.MIN_VALUE && Math.abs(gl.minY) !== 0) { + // Negative numbers present in series + gl.hasNegs = true; + } + + if (gl.isMultipleYAxis) { + baseLineY = []; // baseline variables is the 0 of the yaxis which will be needed when there are negatives + + for (var _i2 = 0; _i2 < yRatio.length; _i2++) { + baseLineY.push(-gl.minYArr[_i2] / yRatio[_i2]); + } + } else { + baseLineY.push(-gl.minY / yRatio[0]); + + if (gl.minY !== Number.MIN_VALUE && Math.abs(gl.minY) !== 0) { + baseLineInvertedY = -gl.minY / invertedYRatio; // this is for bar chart + + baseLineX = gl.minX / xRatio; + } + } + + return { + yRatio: yRatio, + invertedYRatio: invertedYRatio, + zRatio: zRatio, + xRatio: xRatio, + initialXRatio: initialXRatio, + invertedXRatio: invertedXRatio, + baseLineInvertedY: baseLineInvertedY, + baseLineY: baseLineY, + baseLineX: baseLineX + }; + } + }, { + key: "getLogSeries", + value: function getLogSeries(series) { + var _this = this; + + var w = this.w; + w.globals.seriesLog = series.map(function (s, i) { + if (w.config.yaxis[i] && w.config.yaxis[i].logarithmic) { + return s.map(function (d) { + if (d === null) return null; + return _this.getLogVal(w.config.yaxis[i].logBase, d, i); + }); + } else { + return s; + } + }); + return w.globals.invalidLogScale ? series : w.globals.seriesLog; + } + }, { + key: "getBaseLog", + value: function getBaseLog(base, value) { + return Math.log(value) / Math.log(base); + } + }, { + key: "getLogVal", + value: function getLogVal(b, d, yIndex) { + if (d === 0) { + return 0; + } + + var w = this.w; + var min_log_val = w.globals.minYArr[yIndex] === 0 ? -1 // make sure we dont calculate log of 0 + : this.getBaseLog(b, w.globals.minYArr[yIndex]); + var max_log_val = w.globals.maxYArr[yIndex] === 0 ? 0 // make sure we dont calculate log of 0 + : this.getBaseLog(b, w.globals.maxYArr[yIndex]); + var number_of_height_levels = max_log_val - min_log_val; + if (d < 1) return d / number_of_height_levels; + var log_height_value = this.getBaseLog(b, d) - min_log_val; + return log_height_value / number_of_height_levels; + } + }, { + key: "getLogYRatios", + value: function getLogYRatios(yRatio) { + var _this2 = this; + + var w = this.w; + var gl = this.w.globals; + gl.yLogRatio = yRatio.slice(); + gl.logYRange = gl.yRange.map(function (yRange, i) { + if (w.config.yaxis[i] && _this2.w.config.yaxis[i].logarithmic) { + var maxY = -Number.MAX_VALUE; + var minY = Number.MIN_VALUE; + var range = 1; + gl.seriesLog.forEach(function (s, si) { + s.forEach(function (v) { + if (w.config.yaxis[si] && w.config.yaxis[si].logarithmic) { + maxY = Math.max(v, maxY); + minY = Math.min(v, minY); + } + }); + }); + range = Math.pow(gl.yRange[i], Math.abs(minY - maxY) / gl.yRange[i]); + gl.yLogRatio[i] = range / gl.gridHeight; + return range; + } + }); + return gl.invalidLogScale ? yRatio.slice() : gl.yLogRatio; + } // Some config objects can be array - and we need to extend them correctly + + }], [{ + key: "checkComboSeries", + value: function checkComboSeries(series) { + var comboCharts = false; + var comboBarCount = 0; + var comboCount = 0; // if user specified a type in series too, turn on comboCharts flag + + if (series.length && typeof series[0].type !== 'undefined') { + series.forEach(function (s) { + if (s.type === 'bar' || s.type === 'column' || s.type === 'candlestick' || s.type === 'boxPlot') { + comboBarCount++; + } + + if (typeof s.type !== 'undefined') { + comboCount++; + } + }); + } + + if (comboCount > 0) { + comboCharts = true; + } + + return { + comboBarCount: comboBarCount, + comboCharts: comboCharts + }; + } + }, { + key: "extendArrayProps", + value: function extendArrayProps(configInstance, options, w) { + if (options.yaxis) { + options = configInstance.extendYAxis(options, w); + } + + if (options.annotations) { + if (options.annotations.yaxis) { + options = configInstance.extendYAxisAnnotations(options); + } + + if (options.annotations.xaxis) { + options = configInstance.extendXAxisAnnotations(options); + } + + if (options.annotations.points) { + options = configInstance.extendPointAnnotations(options); + } + } + + return options; + } + }]); + + return CoreUtils; + }(); + + var Helpers$4 = /*#__PURE__*/function () { + function Helpers(annoCtx) { + _classCallCheck(this, Helpers); + + this.w = annoCtx.w; + this.annoCtx = annoCtx; + } + + _createClass(Helpers, [{ + key: "setOrientations", + value: function setOrientations(anno) { + var annoIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var w = this.w; + + if (anno.label.orientation === 'vertical') { + var i = annoIndex !== null ? annoIndex : 0; + var xAnno = w.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(i, "']")); + + if (xAnno !== null) { + var xAnnoCoord = xAnno.getBoundingClientRect(); + xAnno.setAttribute('x', parseFloat(xAnno.getAttribute('x')) - xAnnoCoord.height + 4); + + if (anno.label.position === 'top') { + xAnno.setAttribute('y', parseFloat(xAnno.getAttribute('y')) + xAnnoCoord.width); + } else { + xAnno.setAttribute('y', parseFloat(xAnno.getAttribute('y')) - xAnnoCoord.width); + } + + var annoRotatingCenter = this.annoCtx.graphics.rotateAroundCenter(xAnno); + var x = annoRotatingCenter.x; + var y = annoRotatingCenter.y; + xAnno.setAttribute('transform', "rotate(-90 ".concat(x, " ").concat(y, ")")); + } + } + } + }, { + key: "addBackgroundToAnno", + value: function addBackgroundToAnno(annoEl, anno) { + var w = this.w; + if (!annoEl || typeof anno.label.text === 'undefined' || typeof anno.label.text !== 'undefined' && !String(anno.label.text).trim()) return null; + var elGridRect = w.globals.dom.baseEl.querySelector('.apexcharts-grid').getBoundingClientRect(); + var coords = annoEl.getBoundingClientRect(); + var pleft = anno.label.style.padding.left; + var pright = anno.label.style.padding.right; + var ptop = anno.label.style.padding.top; + var pbottom = anno.label.style.padding.bottom; + + if (anno.label.orientation === 'vertical') { + ptop = anno.label.style.padding.left; + pbottom = anno.label.style.padding.right; + pleft = anno.label.style.padding.top; + pright = anno.label.style.padding.bottom; + } + + var x1 = coords.left - elGridRect.left - pleft; + var y1 = coords.top - elGridRect.top - ptop; + var elRect = this.annoCtx.graphics.drawRect(x1 - w.globals.barPadForNumericAxis, y1, coords.width + pleft + pright, coords.height + ptop + pbottom, anno.label.borderRadius, anno.label.style.background, 1, anno.label.borderWidth, anno.label.borderColor, 0); + + if (anno.id) { + // don't escapeString for this ID as it causes duplicate rects + elRect.node.classList.add(anno.id); + } + + return elRect; + } + }, { + key: "annotationsBackground", + value: function annotationsBackground() { + var _this = this; + + var w = this.w; + + var add = function add(anno, i, type) { + var annoLabel = w.globals.dom.baseEl.querySelector(".apexcharts-".concat(type, "-annotations .apexcharts-").concat(type, "-annotation-label[rel='").concat(i, "']")); + + if (annoLabel) { + var parent = annoLabel.parentNode; + + var elRect = _this.addBackgroundToAnno(annoLabel, anno); + + if (elRect) { + parent.insertBefore(elRect.node, annoLabel); + + if (anno.label.mouseEnter) { + elRect.node.addEventListener('mouseenter', anno.label.mouseEnter.bind(_this, anno)); + } + + if (anno.label.mouseLeave) { + elRect.node.addEventListener('mouseleave', anno.label.mouseLeave.bind(_this, anno)); + } + + if (anno.label.click) { + elRect.node.addEventListener('click', anno.label.click.bind(_this, anno)); + } + } + } + }; + + w.config.annotations.xaxis.map(function (anno, i) { + add(anno, i, 'xaxis'); + }); + w.config.annotations.yaxis.map(function (anno, i) { + add(anno, i, 'yaxis'); + }); + w.config.annotations.points.map(function (anno, i) { + add(anno, i, 'point'); + }); + } + }, { + key: "getY1Y2", + value: function getY1Y2(type, anno) { + var y = type === 'y1' ? anno.y : anno.y2; + var yP; + var w = this.w; + + if (this.annoCtx.invertAxis) { + var catIndex = w.globals.labels.indexOf(y); + + if (w.config.xaxis.convertedCatToNumeric) { + catIndex = w.globals.categoryLabels.indexOf(y); + } + + var xLabel = w.globals.dom.baseEl.querySelector('.apexcharts-yaxis-texts-g text:nth-child(' + (catIndex + 1) + ')'); + + if (xLabel) { + yP = parseFloat(xLabel.getAttribute('y')); + } + } else { + var yPos; + + if (w.config.yaxis[anno.yAxisIndex].logarithmic) { + var coreUtils = new CoreUtils(this.annoCtx.ctx); + y = coreUtils.getLogVal(y, anno.yAxisIndex); + yPos = y / w.globals.yLogRatio[anno.yAxisIndex]; + } else { + yPos = (y - w.globals.minYArr[anno.yAxisIndex]) / (w.globals.yRange[anno.yAxisIndex] / w.globals.gridHeight); + } + + yP = w.globals.gridHeight - yPos; + + if (anno.marker && (anno.y === undefined || anno.y === null)) { + // point annotation + yP = 0; + } + + if (w.config.yaxis[anno.yAxisIndex] && w.config.yaxis[anno.yAxisIndex].reversed) { + yP = yPos; + } + } + + return yP; + } + }, { + key: "getX1X2", + value: function getX1X2(type, anno) { + var w = this.w; + var min = this.annoCtx.invertAxis ? w.globals.minY : w.globals.minX; + var max = this.annoCtx.invertAxis ? w.globals.maxY : w.globals.maxX; + var range = this.annoCtx.invertAxis ? w.globals.yRange[0] : w.globals.xRange; + var x1 = (anno.x - min) / (range / w.globals.gridWidth); + + if (this.annoCtx.inversedReversedAxis) { + x1 = (max - anno.x) / (range / w.globals.gridWidth); + } + + if ((w.config.xaxis.type === 'category' || w.config.xaxis.convertedCatToNumeric) && !this.annoCtx.invertAxis && !w.globals.dataFormatXNumeric) { + x1 = this.getStringX(anno.x); + } + + var x2 = (anno.x2 - min) / (range / w.globals.gridWidth); + + if (this.annoCtx.inversedReversedAxis) { + x2 = (max - anno.x2) / (range / w.globals.gridWidth); + } + + if ((w.config.xaxis.type === 'category' || w.config.xaxis.convertedCatToNumeric) && !this.annoCtx.invertAxis && !w.globals.dataFormatXNumeric) { + x2 = this.getStringX(anno.x2); + } + + if ((anno.x === undefined || anno.x === null) && anno.marker) { + // point annotation in a horizontal chart + x1 = w.globals.gridWidth; + } + + return type === 'x1' ? x1 : x2; + } + }, { + key: "getStringX", + value: function getStringX(x) { + var w = this.w; + var rX = x; + + if (w.config.xaxis.convertedCatToNumeric && w.globals.categoryLabels.length) { + x = w.globals.categoryLabels.indexOf(x) + 1; + } + + var catIndex = w.globals.labels.indexOf(x); + var xLabel = w.globals.dom.baseEl.querySelector('.apexcharts-xaxis-texts-g text:nth-child(' + (catIndex + 1) + ')'); + + if (xLabel) { + rX = parseFloat(xLabel.getAttribute('x')); + } + + return rX; + } + }]); + + return Helpers; + }(); + + var XAnnotations = /*#__PURE__*/function () { + function XAnnotations(annoCtx) { + _classCallCheck(this, XAnnotations); + + this.w = annoCtx.w; + this.annoCtx = annoCtx; + this.invertAxis = this.annoCtx.invertAxis; + this.helpers = new Helpers$4(this.annoCtx); + } + + _createClass(XAnnotations, [{ + key: "addXaxisAnnotation", + value: function addXaxisAnnotation(anno, parent, index) { + var w = this.w; + var x1 = this.helpers.getX1X2('x1', anno); + var x2; + var text = anno.label.text; + var strokeDashArray = anno.strokeDashArray; + if (!Utils$1.isNumber(x1)) return; + + if (anno.x2 === null || typeof anno.x2 === 'undefined') { + var line = this.annoCtx.graphics.drawLine(x1 + anno.offsetX, // x1 + 0 + anno.offsetY, // y1 + x1 + anno.offsetX, // x2 + w.globals.gridHeight + anno.offsetY, // y2 + anno.borderColor, // lineColor + strokeDashArray, //dashArray + anno.borderWidth); + parent.appendChild(line.node); + + if (anno.id) { + line.node.classList.add(anno.id); + } + } else { + x2 = this.helpers.getX1X2('x2', anno); + + if (x2 < x1) { + var temp = x1; + x1 = x2; + x2 = temp; + } + + var rect = this.annoCtx.graphics.drawRect(x1 + anno.offsetX, // x1 + 0 + anno.offsetY, // y1 + x2 - x1, // x2 + w.globals.gridHeight + anno.offsetY, // y2 + 0, // radius + anno.fillColor, // color + anno.opacity, // opacity, + 1, // strokeWidth + anno.borderColor, // strokeColor + strokeDashArray // stokeDashArray + ); + rect.node.classList.add('apexcharts-annotation-rect'); + rect.attr('clip-path', "url(#gridRectMask".concat(w.globals.cuid, ")")); + parent.appendChild(rect.node); + + if (anno.id) { + rect.node.classList.add(anno.id); + } + } + + var textY = anno.label.position === 'top' ? 4 : w.globals.gridHeight; + var textRects = this.annoCtx.graphics.getTextRects(text, parseFloat(anno.label.style.fontSize)); + var elText = this.annoCtx.graphics.drawText({ + x: x1 + anno.label.offsetX, + y: textY + anno.label.offsetY - (anno.label.orientation === 'vertical' ? anno.label.position === 'top' ? textRects.width / 2 - 12 : -textRects.width / 2 : 0), + text: text, + textAnchor: anno.label.textAnchor, + fontSize: anno.label.style.fontSize, + fontFamily: anno.label.style.fontFamily, + fontWeight: anno.label.style.fontWeight, + foreColor: anno.label.style.color, + cssClass: "apexcharts-xaxis-annotation-label ".concat(anno.label.style.cssClass, " ").concat(anno.id ? anno.id : '') + }); + elText.attr({ + rel: index + }); + parent.appendChild(elText.node); // after placing the annotations on svg, set any vertically placed annotations + + this.annoCtx.helpers.setOrientations(anno, index); + } + }, { + key: "drawXAxisAnnotations", + value: function drawXAxisAnnotations() { + var _this = this; + + var w = this.w; + var elg = this.annoCtx.graphics.group({ + class: 'apexcharts-xaxis-annotations' + }); + w.config.annotations.xaxis.map(function (anno, index) { + _this.addXaxisAnnotation(anno, elg.node, index); + }); + return elg; + } + }]); + + return XAnnotations; + }(); + + var YAnnotations = /*#__PURE__*/function () { + function YAnnotations(annoCtx) { + _classCallCheck(this, YAnnotations); + + this.w = annoCtx.w; + this.annoCtx = annoCtx; + this.helpers = new Helpers$4(this.annoCtx); + } + + _createClass(YAnnotations, [{ + key: "addYaxisAnnotation", + value: function addYaxisAnnotation(anno, parent, index) { + var w = this.w; + var strokeDashArray = anno.strokeDashArray; + var y1 = this.helpers.getY1Y2('y1', anno); + var y2; + var text = anno.label.text; + + if (anno.y2 === null || typeof anno.y2 === 'undefined') { + var line = this.annoCtx.graphics.drawLine(0 + anno.offsetX, // x1 + y1 + anno.offsetY, // y1 + this._getYAxisAnnotationWidth(anno), // x2 + y1 + anno.offsetY, // y2 + anno.borderColor, // lineColor + strokeDashArray, // dashArray + anno.borderWidth); + parent.appendChild(line.node); + + if (anno.id) { + line.node.classList.add(anno.id); + } + } else { + y2 = this.helpers.getY1Y2('y2', anno); + + if (y2 > y1) { + var temp = y1; + y1 = y2; + y2 = temp; + } + + var rect = this.annoCtx.graphics.drawRect(0 + anno.offsetX, // x1 + y2 + anno.offsetY, // y1 + this._getYAxisAnnotationWidth(anno), // x2 + y1 - y2, // y2 + 0, // radius + anno.fillColor, // color + anno.opacity, // opacity, + 1, // strokeWidth + anno.borderColor, // strokeColor + strokeDashArray // stokeDashArray + ); + rect.node.classList.add('apexcharts-annotation-rect'); + rect.attr('clip-path', "url(#gridRectMask".concat(w.globals.cuid, ")")); + parent.appendChild(rect.node); + + if (anno.id) { + rect.node.classList.add(anno.id); + } + } + + var textX = anno.label.position === 'right' ? w.globals.gridWidth : 0; + var elText = this.annoCtx.graphics.drawText({ + x: textX + anno.label.offsetX, + y: (y2 != null ? y2 : y1) + anno.label.offsetY - 3, + text: text, + textAnchor: anno.label.textAnchor, + fontSize: anno.label.style.fontSize, + fontFamily: anno.label.style.fontFamily, + fontWeight: anno.label.style.fontWeight, + foreColor: anno.label.style.color, + cssClass: "apexcharts-yaxis-annotation-label ".concat(anno.label.style.cssClass, " ").concat(anno.id ? anno.id : '') + }); + elText.attr({ + rel: index + }); + parent.appendChild(elText.node); + } + }, { + key: "_getYAxisAnnotationWidth", + value: function _getYAxisAnnotationWidth(anno) { + // issue apexcharts.js#2009 + var w = this.w; + var width = w.globals.gridWidth; + + if (anno.width.indexOf('%') > -1) { + width = w.globals.gridWidth * parseInt(anno.width, 10) / 100; + } else { + width = parseInt(anno.width, 10); + } + + return width + anno.offsetX; + } + }, { + key: "drawYAxisAnnotations", + value: function drawYAxisAnnotations() { + var _this = this; + + var w = this.w; + var elg = this.annoCtx.graphics.group({ + class: 'apexcharts-yaxis-annotations' + }); + w.config.annotations.yaxis.map(function (anno, index) { + _this.addYaxisAnnotation(anno, elg.node, index); + }); + return elg; + } + }]); + + return YAnnotations; + }(); + + var PointAnnotations = /*#__PURE__*/function () { + function PointAnnotations(annoCtx) { + _classCallCheck(this, PointAnnotations); + + this.w = annoCtx.w; + this.annoCtx = annoCtx; + this.helpers = new Helpers$4(this.annoCtx); + } + + _createClass(PointAnnotations, [{ + key: "addPointAnnotation", + value: function addPointAnnotation(anno, parent, index) { + this.w; + var x = this.helpers.getX1X2('x1', anno); + var y = this.helpers.getY1Y2('y1', anno); + if (!Utils$1.isNumber(x)) return; + var optsPoints = { + pSize: anno.marker.size, + pointStrokeWidth: anno.marker.strokeWidth, + pointFillColor: anno.marker.fillColor, + pointStrokeColor: anno.marker.strokeColor, + shape: anno.marker.shape, + pRadius: anno.marker.radius, + class: "apexcharts-point-annotation-marker ".concat(anno.marker.cssClass, " ").concat(anno.id ? anno.id : '') + }; + var point = this.annoCtx.graphics.drawMarker(x + anno.marker.offsetX, y + anno.marker.offsetY, optsPoints); + parent.appendChild(point.node); + var text = anno.label.text ? anno.label.text : ''; + var elText = this.annoCtx.graphics.drawText({ + x: x + anno.label.offsetX, + y: y + anno.label.offsetY - anno.marker.size - parseFloat(anno.label.style.fontSize) / 1.6, + text: text, + textAnchor: anno.label.textAnchor, + fontSize: anno.label.style.fontSize, + fontFamily: anno.label.style.fontFamily, + fontWeight: anno.label.style.fontWeight, + foreColor: anno.label.style.color, + cssClass: "apexcharts-point-annotation-label ".concat(anno.label.style.cssClass, " ").concat(anno.id ? anno.id : '') + }); + elText.attr({ + rel: index + }); + parent.appendChild(elText.node); // TODO: deprecate this as we will use custom + + if (anno.customSVG.SVG) { + var g = this.annoCtx.graphics.group({ + class: 'apexcharts-point-annotations-custom-svg ' + anno.customSVG.cssClass + }); + g.attr({ + transform: "translate(".concat(x + anno.customSVG.offsetX, ", ").concat(y + anno.customSVG.offsetY, ")") + }); + g.node.innerHTML = anno.customSVG.SVG; + parent.appendChild(g.node); + } + + if (anno.image.path) { + var imgWidth = anno.image.width ? anno.image.width : 20; + var imgHeight = anno.image.height ? anno.image.height : 20; + point = this.annoCtx.addImage({ + x: x + anno.image.offsetX - imgWidth / 2, + y: y + anno.image.offsetY - imgHeight / 2, + width: imgWidth, + height: imgHeight, + path: anno.image.path, + appendTo: '.apexcharts-point-annotations' + }); + } + + if (anno.mouseEnter) { + point.node.addEventListener('mouseenter', anno.mouseEnter.bind(this, anno)); + } + + if (anno.mouseLeave) { + point.node.addEventListener('mouseleave', anno.mouseLeave.bind(this, anno)); + } + + if (anno.click) { + point.node.addEventListener('click', anno.click.bind(this, anno)); + } + } + }, { + key: "drawPointAnnotations", + value: function drawPointAnnotations() { + var _this = this; + + var w = this.w; + var elg = this.annoCtx.graphics.group({ + class: 'apexcharts-point-annotations' + }); + w.config.annotations.points.map(function (anno, index) { + _this.addPointAnnotation(anno, elg.node, index); + }); + return elg; + } + }]); + + return PointAnnotations; + }(); + + const name = "en"; + const options = { + months: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + shortMonths: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ], + days: [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + shortDays: [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ], + toolbar: { + exportToSVG: "Download SVG", + exportToPNG: "Download PNG", + exportToCSV: "Download CSV", + menu: "Menu", + selection: "Selection", + selectionZoom: "Selection Zoom", + zoomIn: "Zoom In", + zoomOut: "Zoom Out", + pan: "Panning", + reset: "Reset Zoom" + } + }; + var en = { + name: name, + options: options + }; + + var Options = /*#__PURE__*/function () { + function Options() { + _classCallCheck(this, Options); + + this.yAxis = { + show: true, + showAlways: false, + showForNullSeries: true, + seriesName: undefined, + opposite: false, + reversed: false, + logarithmic: false, + logBase: 10, + tickAmount: undefined, + forceNiceScale: false, + max: undefined, + min: undefined, + floating: false, + decimalsInFloat: undefined, + labels: { + show: true, + minWidth: 0, + maxWidth: 160, + offsetX: 0, + offsetY: 0, + align: undefined, + rotate: 0, + padding: 20, + style: { + colors: [], + fontSize: '11px', + fontWeight: 400, + fontFamily: undefined, + cssClass: '' + }, + formatter: undefined + }, + axisBorder: { + show: false, + color: '#e0e0e0', + width: 1, + offsetX: 0, + offsetY: 0 + }, + axisTicks: { + show: false, + color: '#e0e0e0', + width: 6, + offsetX: 0, + offsetY: 0 + }, + title: { + text: undefined, + rotate: -90, + offsetY: 0, + offsetX: 0, + style: { + color: undefined, + fontSize: '11px', + fontWeight: 900, + fontFamily: undefined, + cssClass: '' + } + }, + tooltip: { + enabled: false, + offsetX: 0 + }, + crosshairs: { + show: true, + position: 'front', + stroke: { + color: '#b6b6b6', + width: 1, + dashArray: 0 + } + } + }; + this.pointAnnotation = { + id: undefined, + x: 0, + y: null, + yAxisIndex: 0, + seriesIndex: 0, + mouseEnter: undefined, + mouseLeave: undefined, + click: undefined, + marker: { + size: 4, + fillColor: '#fff', + strokeWidth: 2, + strokeColor: '#333', + shape: 'circle', + offsetX: 0, + offsetY: 0, + radius: 2, + cssClass: '' + }, + label: { + borderColor: '#c2c2c2', + borderWidth: 1, + borderRadius: 2, + text: undefined, + textAnchor: 'middle', + offsetX: 0, + offsetY: 0, + mouseEnter: undefined, + mouseLeave: undefined, + click: undefined, + style: { + background: '#fff', + color: undefined, + fontSize: '11px', + fontFamily: undefined, + fontWeight: 400, + cssClass: '', + padding: { + left: 5, + right: 5, + top: 2, + bottom: 2 + } + } + }, + customSVG: { + // this will be deprecated in the next major version as it is going to be replaced with a better alternative below + SVG: undefined, + cssClass: undefined, + offsetX: 0, + offsetY: 0 + }, + image: { + path: undefined, + width: 20, + height: 20, + offsetX: 0, + offsetY: 0 + } + }; + this.yAxisAnnotation = { + id: undefined, + y: 0, + y2: null, + strokeDashArray: 1, + fillColor: '#c2c2c2', + borderColor: '#c2c2c2', + borderWidth: 1, + opacity: 0.3, + offsetX: 0, + offsetY: 0, + width: '100%', + yAxisIndex: 0, + label: { + borderColor: '#c2c2c2', + borderWidth: 1, + borderRadius: 2, + text: undefined, + textAnchor: 'end', + position: 'right', + offsetX: 0, + offsetY: -3, + mouseEnter: undefined, + mouseLeave: undefined, + click: undefined, + style: { + background: '#fff', + color: undefined, + fontSize: '11px', + fontFamily: undefined, + fontWeight: 400, + cssClass: '', + padding: { + left: 5, + right: 5, + top: 2, + bottom: 2 + } + } + } + }; + this.xAxisAnnotation = { + id: undefined, + x: 0, + x2: null, + strokeDashArray: 1, + fillColor: '#c2c2c2', + borderColor: '#c2c2c2', + borderWidth: 1, + opacity: 0.3, + offsetX: 0, + offsetY: 0, + label: { + borderColor: '#c2c2c2', + borderWidth: 1, + borderRadius: 2, + text: undefined, + textAnchor: 'middle', + orientation: 'vertical', + position: 'top', + offsetX: 0, + offsetY: 0, + mouseEnter: undefined, + mouseLeave: undefined, + click: undefined, + style: { + background: '#fff', + color: undefined, + fontSize: '11px', + fontFamily: undefined, + fontWeight: 400, + cssClass: '', + padding: { + left: 5, + right: 5, + top: 2, + bottom: 2 + } + } + } + }; + this.text = { + x: 0, + y: 0, + text: '', + textAnchor: 'start', + foreColor: undefined, + fontSize: '13px', + fontFamily: undefined, + fontWeight: 400, + appendTo: '.apexcharts-annotations', + backgroundColor: 'transparent', + borderColor: '#c2c2c2', + borderRadius: 0, + borderWidth: 0, + paddingLeft: 4, + paddingRight: 4, + paddingTop: 2, + paddingBottom: 2 + }; + } + + _createClass(Options, [{ + key: "init", + value: function init() { + return { + annotations: { + position: 'front', + yaxis: [this.yAxisAnnotation], + xaxis: [this.xAxisAnnotation], + points: [this.pointAnnotation], + texts: [], + images: [], + shapes: [] + }, + chart: { + animations: { + enabled: true, + easing: 'easeinout', + // linear, easeout, easein, easeinout, swing, bounce, elastic + speed: 800, + animateGradually: { + delay: 150, + enabled: true + }, + dynamicAnimation: { + enabled: true, + speed: 350 + } + }, + background: 'transparent', + locales: [en], + defaultLocale: 'en', + dropShadow: { + enabled: false, + enabledOnSeries: undefined, + top: 2, + left: 2, + blur: 4, + color: '#000', + opacity: 0.35 + }, + events: { + animationEnd: undefined, + beforeMount: undefined, + mounted: undefined, + updated: undefined, + click: undefined, + mouseMove: undefined, + mouseLeave: undefined, + legendClick: undefined, + markerClick: undefined, + selection: undefined, + dataPointSelection: undefined, + dataPointMouseEnter: undefined, + dataPointMouseLeave: undefined, + beforeZoom: undefined, + beforeResetZoom: undefined, + zoomed: undefined, + scrolled: undefined, + brushScrolled: undefined + }, + foreColor: '#373d3f', + fontFamily: 'Helvetica, Arial, sans-serif', + height: 'auto', + parentHeightOffset: 15, + redrawOnParentResize: true, + redrawOnWindowResize: true, + id: undefined, + group: undefined, + offsetX: 0, + offsetY: 0, + selection: { + enabled: false, + type: 'x', + // selectedPoints: undefined, // default datapoints that should be selected automatically + fill: { + color: '#24292e', + opacity: 0.1 + }, + stroke: { + width: 1, + color: '#24292e', + opacity: 0.4, + dashArray: 3 + }, + xaxis: { + min: undefined, + max: undefined + }, + yaxis: { + min: undefined, + max: undefined + } + }, + sparkline: { + enabled: false + }, + brush: { + enabled: false, + autoScaleYaxis: true, + target: undefined + }, + stacked: false, + stackType: 'normal', + toolbar: { + show: true, + offsetX: 0, + offsetY: 0, + tools: { + download: true, + selection: true, + zoom: true, + zoomin: true, + zoomout: true, + pan: true, + reset: true, + customIcons: [] + }, + export: { + csv: { + filename: undefined, + columnDelimiter: ',', + headerCategory: 'category', + headerValue: 'value', + dateFormatter: function dateFormatter(timestamp) { + return new Date(timestamp).toDateString(); + } + }, + png: { + filename: undefined + }, + svg: { + filename: undefined + } + }, + autoSelected: 'zoom' // accepts -> zoom, pan, selection + + }, + type: 'line', + width: '100%', + zoom: { + enabled: true, + type: 'x', + autoScaleYaxis: false, + zoomedArea: { + fill: { + color: '#90CAF9', + opacity: 0.4 + }, + stroke: { + color: '#0D47A1', + opacity: 0.4, + width: 1 + } + } + } + }, + plotOptions: { + area: { + fillTo: 'origin' + }, + bar: { + horizontal: false, + columnWidth: '70%', + // should be in percent 0 - 100 + barHeight: '70%', + // should be in percent 0 - 100 + distributed: false, + borderRadius: 0, + rangeBarOverlap: true, + rangeBarGroupRows: false, + colors: { + ranges: [], + backgroundBarColors: [], + backgroundBarOpacity: 1, + backgroundBarRadius: 0 + }, + dataLabels: { + position: 'top', + // top, center, bottom + maxItems: 100, + hideOverflowingLabels: true, + orientation: 'horizontal' // TODO: provide stackedLabels for stacked charts which gives additions of values + + } + }, + bubble: { + minBubbleRadius: undefined, + maxBubbleRadius: undefined + }, + candlestick: { + colors: { + upward: '#00B746', + downward: '#EF403C' + }, + wick: { + useFillColor: true + } + }, + boxPlot: { + colors: { + upper: '#00E396', + lower: '#008FFB' + } + }, + heatmap: { + radius: 2, + enableShades: true, + shadeIntensity: 0.5, + reverseNegativeShade: false, + distributed: false, + useFillColorAsStroke: false, + colorScale: { + inverse: false, + ranges: [], + min: undefined, + max: undefined + } + }, + treemap: { + enableShades: true, + shadeIntensity: 0.5, + distributed: false, + reverseNegativeShade: false, + useFillColorAsStroke: false, + colorScale: { + inverse: false, + ranges: [], + min: undefined, + max: undefined + } + }, + radialBar: { + inverseOrder: false, + startAngle: 0, + endAngle: 360, + offsetX: 0, + offsetY: 0, + hollow: { + margin: 5, + size: '50%', + background: 'transparent', + image: undefined, + imageWidth: 150, + imageHeight: 150, + imageOffsetX: 0, + imageOffsetY: 0, + imageClipped: true, + position: 'front', + dropShadow: { + enabled: false, + top: 0, + left: 0, + blur: 3, + color: '#000', + opacity: 0.5 + } + }, + track: { + show: true, + startAngle: undefined, + endAngle: undefined, + background: '#f2f2f2', + strokeWidth: '97%', + opacity: 1, + margin: 5, + // margin is in pixels + dropShadow: { + enabled: false, + top: 0, + left: 0, + blur: 3, + color: '#000', + opacity: 0.5 + } + }, + dataLabels: { + show: true, + name: { + show: true, + fontSize: '16px', + fontFamily: undefined, + fontWeight: 600, + color: undefined, + offsetY: 0, + formatter: function formatter(val) { + return val; + } + }, + value: { + show: true, + fontSize: '14px', + fontFamily: undefined, + fontWeight: 400, + color: undefined, + offsetY: 16, + formatter: function formatter(val) { + return val + '%'; + } + }, + total: { + show: false, + label: 'Total', + fontSize: '16px', + fontWeight: 600, + fontFamily: undefined, + color: undefined, + formatter: function formatter(w) { + return w.globals.seriesTotals.reduce(function (a, b) { + return a + b; + }, 0) / w.globals.series.length + '%'; + } + } + } + }, + pie: { + customScale: 1, + offsetX: 0, + offsetY: 0, + startAngle: 0, + endAngle: 360, + expandOnClick: true, + dataLabels: { + // These are the percentage values which are displayed on slice + offset: 0, + // offset by which labels will move outside + minAngleToShowLabel: 10 + }, + donut: { + size: '65%', + background: 'transparent', + labels: { + // These are the inner labels appearing inside donut + show: false, + name: { + show: true, + fontSize: '16px', + fontFamily: undefined, + fontWeight: 600, + color: undefined, + offsetY: -10, + formatter: function formatter(val) { + return val; + } + }, + value: { + show: true, + fontSize: '20px', + fontFamily: undefined, + fontWeight: 400, + color: undefined, + offsetY: 10, + formatter: function formatter(val) { + return val; + } + }, + total: { + show: false, + showAlways: false, + label: 'Total', + fontSize: '16px', + fontWeight: 400, + fontFamily: undefined, + color: undefined, + formatter: function formatter(w) { + return w.globals.seriesTotals.reduce(function (a, b) { + return a + b; + }, 0); + } + } + } + } + }, + polarArea: { + rings: { + strokeWidth: 1, + strokeColor: '#e8e8e8' + }, + spokes: { + strokeWidth: 1, + connectorColors: '#e8e8e8' + } + }, + radar: { + size: undefined, + offsetX: 0, + offsetY: 0, + polygons: { + // strokeColor: '#e8e8e8', // should be deprecated in the minor version i.e 3.2 + strokeWidth: 1, + strokeColors: '#e8e8e8', + connectorColors: '#e8e8e8', + fill: { + colors: undefined + } + } + } + }, + colors: undefined, + dataLabels: { + enabled: true, + enabledOnSeries: undefined, + formatter: function formatter(val) { + return val !== null ? val : ''; + }, + textAnchor: 'middle', + distributed: false, + offsetX: 0, + offsetY: 0, + style: { + fontSize: '12px', + fontFamily: undefined, + fontWeight: 600, + colors: undefined + }, + background: { + enabled: true, + foreColor: '#fff', + borderRadius: 2, + padding: 4, + opacity: 0.9, + borderWidth: 1, + borderColor: '#fff', + dropShadow: { + enabled: false, + top: 1, + left: 1, + blur: 1, + color: '#000', + opacity: 0.45 + } + }, + dropShadow: { + enabled: false, + top: 1, + left: 1, + blur: 1, + color: '#000', + opacity: 0.45 + } + }, + fill: { + type: 'solid', + colors: undefined, + // array of colors + opacity: 0.85, + gradient: { + shade: 'dark', + type: 'horizontal', + shadeIntensity: 0.5, + gradientToColors: undefined, + inverseColors: true, + opacityFrom: 1, + opacityTo: 1, + stops: [0, 50, 100], + colorStops: [] + }, + image: { + src: [], + width: undefined, + // optional + height: undefined // optional + + }, + pattern: { + style: 'squares', + // String | Array of Strings + width: 6, + height: 6, + strokeWidth: 2 + } + }, + forecastDataPoints: { + count: 0, + fillOpacity: 0.5, + strokeWidth: undefined, + dashArray: 4 + }, + grid: { + show: true, + borderColor: '#e0e0e0', + strokeDashArray: 0, + position: 'back', + xaxis: { + lines: { + show: false + } + }, + yaxis: { + lines: { + show: true + } + }, + row: { + colors: undefined, + // takes as array which will be repeated on rows + opacity: 0.5 + }, + column: { + colors: undefined, + // takes an array which will be repeated on columns + opacity: 0.5 + }, + padding: { + top: 0, + right: 10, + bottom: 0, + left: 12 + } + }, + labels: [], + legend: { + show: true, + showForSingleSeries: false, + showForNullSeries: true, + showForZeroSeries: true, + floating: false, + position: 'bottom', + // whether to position legends in 1 of 4 + // direction - top, bottom, left, right + horizontalAlign: 'center', + // when position top/bottom, you can specify whether to align legends left, right or center + inverseOrder: false, + fontSize: '12px', + fontFamily: undefined, + fontWeight: 400, + width: undefined, + height: undefined, + formatter: undefined, + tooltipHoverFormatter: undefined, + offsetX: -20, + offsetY: 4, + customLegendItems: [], + labels: { + colors: undefined, + useSeriesColors: false + }, + markers: { + width: 12, + height: 12, + strokeWidth: 0, + fillColors: undefined, + strokeColor: '#fff', + radius: 12, + customHTML: undefined, + offsetX: 0, + offsetY: 0, + onClick: undefined + }, + itemMargin: { + horizontal: 5, + vertical: 2 + }, + onItemClick: { + toggleDataSeries: true + }, + onItemHover: { + highlightDataSeries: true + } + }, + markers: { + discrete: [], + size: 0, + colors: undefined, + //strokeColor: '#fff', // TODO: deprecate in major version 4.0 + strokeColors: '#fff', + strokeWidth: 2, + strokeOpacity: 0.9, + strokeDashArray: 0, + fillOpacity: 1, + shape: 'circle', + width: 8, + // only applicable when shape is rect/square + height: 8, + // only applicable when shape is rect/square + radius: 2, + offsetX: 0, + offsetY: 0, + onClick: undefined, + onDblClick: undefined, + showNullDataPoints: true, + hover: { + size: undefined, + sizeOffset: 3 + } + }, + noData: { + text: undefined, + align: 'center', + verticalAlign: 'middle', + offsetX: 0, + offsetY: 0, + style: { + color: undefined, + fontSize: '14px', + fontFamily: undefined + } + }, + responsive: [], + // breakpoints should follow ascending order 400, then 700, then 1000 + series: undefined, + states: { + normal: { + filter: { + type: 'none', + value: 0 + } + }, + hover: { + filter: { + type: 'lighten', + value: 0.1 + } + }, + active: { + allowMultipleDataPointsSelection: false, + filter: { + type: 'darken', + value: 0.5 + } + } + }, + title: { + text: undefined, + align: 'left', + margin: 5, + offsetX: 0, + offsetY: 0, + floating: false, + style: { + fontSize: '14px', + fontWeight: 900, + fontFamily: undefined, + color: undefined + } + }, + subtitle: { + text: undefined, + align: 'left', + margin: 5, + offsetX: 0, + offsetY: 30, + floating: false, + style: { + fontSize: '12px', + fontWeight: 400, + fontFamily: undefined, + color: undefined + } + }, + stroke: { + show: true, + curve: 'smooth', + // "smooth" / "straight" / "stepline" + lineCap: 'butt', + // round, butt , square + width: 2, + colors: undefined, + // array of colors + dashArray: 0, + // single value or array of values + fill: { + type: 'solid', + colors: undefined, + // array of colors + opacity: 0.85, + gradient: { + shade: 'dark', + type: 'horizontal', + shadeIntensity: 0.5, + gradientToColors: undefined, + inverseColors: true, + opacityFrom: 1, + opacityTo: 1, + stops: [0, 50, 100], + colorStops: [] + } + } + }, + tooltip: { + enabled: true, + enabledOnSeries: undefined, + shared: true, + followCursor: false, + // when disabled, the tooltip will show on top of the series instead of mouse position + intersect: false, + // when enabled, tooltip will only show when user directly hovers over point + inverseOrder: false, + custom: undefined, + fillSeriesColor: false, + theme: 'light', + cssClass: '', + style: { + fontSize: '12px', + fontFamily: undefined + }, + onDatasetHover: { + highlightDataSeries: false + }, + x: { + // x value + show: true, + format: 'dd MMM', + // dd/MM, dd MMM yy, dd MMM yyyy + formatter: undefined // a custom user supplied formatter function + + }, + y: { + formatter: undefined, + title: { + formatter: function formatter(seriesName) { + return seriesName ? seriesName + ': ' : ''; + } + } + }, + z: { + formatter: undefined, + title: 'Size: ' + }, + marker: { + show: true, + fillColors: undefined + }, + items: { + display: 'flex' + }, + fixed: { + enabled: false, + position: 'topRight', + // topRight, topLeft, bottomRight, bottomLeft + offsetX: 0, + offsetY: 0 + } + }, + xaxis: { + type: 'category', + categories: [], + convertedCatToNumeric: false, + // internal property which should not be altered outside + offsetX: 0, + offsetY: 0, + overwriteCategories: undefined, + labels: { + show: true, + rotate: -45, + rotateAlways: false, + hideOverlappingLabels: true, + trim: false, + minHeight: undefined, + maxHeight: 120, + showDuplicates: true, + style: { + colors: [], + fontSize: '12px', + fontWeight: 400, + fontFamily: undefined, + cssClass: '' + }, + offsetX: 0, + offsetY: 0, + format: undefined, + formatter: undefined, + // custom formatter function which will override format + datetimeUTC: true, + datetimeFormatter: { + year: 'yyyy', + month: "MMM 'yy", + day: 'dd MMM', + hour: 'HH:mm', + minute: 'HH:mm:ss', + second: 'HH:mm:ss' + } + }, + group: { + groups: [], + style: { + colors: [], + fontSize: '12px', + fontWeight: 400, + fontFamily: undefined, + cssClass: '' + } + }, + axisBorder: { + show: true, + color: '#e0e0e0', + width: '100%', + height: 1, + offsetX: 0, + offsetY: 0 + }, + axisTicks: { + show: true, + color: '#e0e0e0', + height: 6, + offsetX: 0, + offsetY: 0 + }, + tickAmount: undefined, + tickPlacement: 'on', + min: undefined, + max: undefined, + range: undefined, + floating: false, + decimalsInFloat: undefined, + position: 'bottom', + title: { + text: undefined, + offsetX: 0, + offsetY: 0, + style: { + color: undefined, + fontSize: '12px', + fontWeight: 900, + fontFamily: undefined, + cssClass: '' + } + }, + crosshairs: { + show: true, + width: 1, + // tickWidth/barWidth or an integer + position: 'back', + opacity: 0.9, + stroke: { + color: '#b6b6b6', + width: 1, + dashArray: 3 + }, + fill: { + type: 'solid', + // solid, gradient + color: '#B1B9C4', + gradient: { + colorFrom: '#D8E3F0', + colorTo: '#BED1E6', + stops: [0, 100], + opacityFrom: 0.4, + opacityTo: 0.5 + } + }, + dropShadow: { + enabled: false, + left: 0, + top: 0, + blur: 1, + opacity: 0.4 + } + }, + tooltip: { + enabled: true, + offsetY: 0, + formatter: undefined, + style: { + fontSize: '12px', + fontFamily: undefined + } + } + }, + yaxis: this.yAxis, + theme: { + mode: 'light', + palette: 'palette1', + // If defined, it will overwrite globals.colors variable + monochrome: { + // monochrome allows you to select just 1 color and fill out the rest with light/dark shade (intensity can be selected) + enabled: false, + color: '#008FFB', + shadeTo: 'light', + shadeIntensity: 0.65 + } + } + }; + } + }]); + + return Options; + }(); + + /** + * ApexCharts Annotations Class for drawing lines/rects on both xaxis and yaxis. + * + * @module Annotations + **/ + + var Annotations = /*#__PURE__*/function () { + function Annotations(ctx) { + _classCallCheck(this, Annotations); + + this.ctx = ctx; + this.w = ctx.w; + this.graphics = new Graphics(this.ctx); + + if (this.w.globals.isBarHorizontal) { + this.invertAxis = true; + } + + this.helpers = new Helpers$4(this); + this.xAxisAnnotations = new XAnnotations(this); + this.yAxisAnnotations = new YAnnotations(this); + this.pointsAnnotations = new PointAnnotations(this); + + if (this.w.globals.isBarHorizontal && this.w.config.yaxis[0].reversed) { + this.inversedReversedAxis = true; + } + + this.xDivision = this.w.globals.gridWidth / this.w.globals.dataPoints; + } + + _createClass(Annotations, [{ + key: "drawAxesAnnotations", + value: function drawAxesAnnotations() { + var w = this.w; + + if (w.globals.axisCharts) { + var yAnnotations = this.yAxisAnnotations.drawYAxisAnnotations(); + var xAnnotations = this.xAxisAnnotations.drawXAxisAnnotations(); + var pointAnnotations = this.pointsAnnotations.drawPointAnnotations(); + var initialAnim = w.config.chart.animations.enabled; + var annoArray = [yAnnotations, xAnnotations, pointAnnotations]; + var annoElArray = [xAnnotations.node, yAnnotations.node, pointAnnotations.node]; + + for (var i = 0; i < 3; i++) { + w.globals.dom.elGraphical.add(annoArray[i]); + + if (initialAnim && !w.globals.resized && !w.globals.dataChanged) { + // fixes apexcharts/apexcharts.js#685 + if (w.config.chart.type !== 'scatter' && w.config.chart.type !== 'bubble' && w.globals.dataPoints > 1) { + annoElArray[i].classList.add('apexcharts-element-hidden'); + } + } + + w.globals.delayedElements.push({ + el: annoElArray[i], + index: 0 + }); + } // background sizes needs to be calculated after text is drawn, so calling them last + + + this.helpers.annotationsBackground(); + } + } + }, { + key: "drawImageAnnos", + value: function drawImageAnnos() { + var _this = this; + + var w = this.w; + w.config.annotations.images.map(function (s, index) { + _this.addImage(s, index); + }); + } + }, { + key: "drawTextAnnos", + value: function drawTextAnnos() { + var _this2 = this; + + var w = this.w; + w.config.annotations.texts.map(function (t, index) { + _this2.addText(t, index); + }); + } + }, { + key: "addXaxisAnnotation", + value: function addXaxisAnnotation(anno, parent, index) { + this.xAxisAnnotations.addXaxisAnnotation(anno, parent, index); + } + }, { + key: "addYaxisAnnotation", + value: function addYaxisAnnotation(anno, parent, index) { + this.yAxisAnnotations.addYaxisAnnotation(anno, parent, index); + } + }, { + key: "addPointAnnotation", + value: function addPointAnnotation(anno, parent, index) { + this.pointsAnnotations.addPointAnnotation(anno, parent, index); + } + }, { + key: "addText", + value: function addText(params, index) { + var x = params.x, + y = params.y, + text = params.text, + textAnchor = params.textAnchor, + foreColor = params.foreColor, + fontSize = params.fontSize, + fontFamily = params.fontFamily, + fontWeight = params.fontWeight, + cssClass = params.cssClass, + backgroundColor = params.backgroundColor, + borderWidth = params.borderWidth, + strokeDashArray = params.strokeDashArray, + borderRadius = params.borderRadius, + borderColor = params.borderColor, + _params$appendTo = params.appendTo, + appendTo = _params$appendTo === void 0 ? '.apexcharts-annotations' : _params$appendTo, + _params$paddingLeft = params.paddingLeft, + paddingLeft = _params$paddingLeft === void 0 ? 4 : _params$paddingLeft, + _params$paddingRight = params.paddingRight, + paddingRight = _params$paddingRight === void 0 ? 4 : _params$paddingRight, + _params$paddingBottom = params.paddingBottom, + paddingBottom = _params$paddingBottom === void 0 ? 2 : _params$paddingBottom, + _params$paddingTop = params.paddingTop, + paddingTop = _params$paddingTop === void 0 ? 2 : _params$paddingTop; + var w = this.w; + var elText = this.graphics.drawText({ + x: x, + y: y, + text: text, + textAnchor: textAnchor || 'start', + fontSize: fontSize || '12px', + fontWeight: fontWeight || 'regular', + fontFamily: fontFamily || w.config.chart.fontFamily, + foreColor: foreColor || w.config.chart.foreColor, + cssClass: 'apexcharts-text ' + cssClass ? cssClass : '' + }); + var parent = w.globals.dom.baseEl.querySelector(appendTo); + + if (parent) { + parent.appendChild(elText.node); + } + + var textRect = elText.bbox(); + + if (text) { + var elRect = this.graphics.drawRect(textRect.x - paddingLeft, textRect.y - paddingTop, textRect.width + paddingLeft + paddingRight, textRect.height + paddingBottom + paddingTop, borderRadius, backgroundColor ? backgroundColor : 'transparent', 1, borderWidth, borderColor, strokeDashArray); + parent.insertBefore(elRect.node, elText.node); + } + } + }, { + key: "addImage", + value: function addImage(params, index) { + var w = this.w; + var path = params.path, + _params$x = params.x, + x = _params$x === void 0 ? 0 : _params$x, + _params$y = params.y, + y = _params$y === void 0 ? 0 : _params$y, + _params$width = params.width, + width = _params$width === void 0 ? 20 : _params$width, + _params$height = params.height, + height = _params$height === void 0 ? 20 : _params$height, + _params$appendTo2 = params.appendTo, + appendTo = _params$appendTo2 === void 0 ? '.apexcharts-annotations' : _params$appendTo2; + var img = w.globals.dom.Paper.image(path); + img.size(width, height).move(x, y); + var parent = w.globals.dom.baseEl.querySelector(appendTo); + + if (parent) { + parent.appendChild(img.node); + } + + return img; + } // The addXaxisAnnotation method requires a parent class, and user calling this method externally on the chart instance may not specify parent, hence a different method + + }, { + key: "addXaxisAnnotationExternal", + value: function addXaxisAnnotationExternal(params, pushToMemory, context) { + this.addAnnotationExternal({ + params: params, + pushToMemory: pushToMemory, + context: context, + type: 'xaxis', + contextMethod: context.addXaxisAnnotation + }); + return context; + } + }, { + key: "addYaxisAnnotationExternal", + value: function addYaxisAnnotationExternal(params, pushToMemory, context) { + this.addAnnotationExternal({ + params: params, + pushToMemory: pushToMemory, + context: context, + type: 'yaxis', + contextMethod: context.addYaxisAnnotation + }); + return context; + } + }, { + key: "addPointAnnotationExternal", + value: function addPointAnnotationExternal(params, pushToMemory, context) { + if (typeof this.invertAxis === 'undefined') { + this.invertAxis = context.w.globals.isBarHorizontal; + } + + this.addAnnotationExternal({ + params: params, + pushToMemory: pushToMemory, + context: context, + type: 'point', + contextMethod: context.addPointAnnotation + }); + return context; + } + }, { + key: "addAnnotationExternal", + value: function addAnnotationExternal(_ref) { + var params = _ref.params, + pushToMemory = _ref.pushToMemory, + context = _ref.context, + type = _ref.type, + contextMethod = _ref.contextMethod; + var me = context; + var w = me.w; + var parent = w.globals.dom.baseEl.querySelector(".apexcharts-".concat(type, "-annotations")); + var index = parent.childNodes.length + 1; + var options = new Options(); + var axesAnno = Object.assign({}, type === 'xaxis' ? options.xAxisAnnotation : type === 'yaxis' ? options.yAxisAnnotation : options.pointAnnotation); + var anno = Utils$1.extend(axesAnno, params); + + switch (type) { + case 'xaxis': + this.addXaxisAnnotation(anno, parent, index); + break; + + case 'yaxis': + this.addYaxisAnnotation(anno, parent, index); + break; + + case 'point': + this.addPointAnnotation(anno, parent, index); + break; + } // add background + + + var axesAnnoLabel = w.globals.dom.baseEl.querySelector(".apexcharts-".concat(type, "-annotations .apexcharts-").concat(type, "-annotation-label[rel='").concat(index, "']")); + var elRect = this.helpers.addBackgroundToAnno(axesAnnoLabel, anno); + + if (elRect) { + parent.insertBefore(elRect.node, axesAnnoLabel); + } + + if (pushToMemory) { + w.globals.memory.methodsToExec.push({ + context: me, + id: anno.id ? anno.id : Utils$1.randomId(), + method: contextMethod, + label: 'addAnnotation', + params: params + }); + } + + return context; + } + }, { + key: "clearAnnotations", + value: function clearAnnotations(ctx) { + var w = ctx.w; + var annos = w.globals.dom.baseEl.querySelectorAll('.apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations'); // annotations added externally should be cleared out too + + w.globals.memory.methodsToExec.map(function (m, i) { + if (m.label === 'addText' || m.label === 'addAnnotation') { + w.globals.memory.methodsToExec.splice(i, 1); + } + }); + annos = Utils$1.listToArray(annos); // delete the DOM elements + + Array.prototype.forEach.call(annos, function (a) { + while (a.firstChild) { + a.removeChild(a.firstChild); + } + }); + } + }, { + key: "removeAnnotation", + value: function removeAnnotation(ctx, id) { + var w = ctx.w; + var annos = w.globals.dom.baseEl.querySelectorAll(".".concat(id)); + + if (annos) { + w.globals.memory.methodsToExec.map(function (m, i) { + if (m.id === id) { + w.globals.memory.methodsToExec.splice(i, 1); + } + }); + Array.prototype.forEach.call(annos, function (a) { + a.parentElement.removeChild(a); + }); + } + } + }]); + + return Annotations; + }(); + + /** + * ApexCharts Fill Class for setting fill options of the paths. + * + * @module Fill + **/ + + var Fill = /*#__PURE__*/function () { + function Fill(ctx) { + _classCallCheck(this, Fill); + + this.ctx = ctx; + this.w = ctx.w; + this.opts = null; + this.seriesIndex = 0; + } + + _createClass(Fill, [{ + key: "clippedImgArea", + value: function clippedImgArea(params) { + var w = this.w; + var cnf = w.config; + var svgW = parseInt(w.globals.gridWidth, 10); + var svgH = parseInt(w.globals.gridHeight, 10); + var size = svgW > svgH ? svgW : svgH; + var fillImg = params.image; + var imgWidth = 0; + var imgHeight = 0; + + if (typeof params.width === 'undefined' && typeof params.height === 'undefined') { + if (cnf.fill.image.width !== undefined && cnf.fill.image.height !== undefined) { + imgWidth = cnf.fill.image.width + 1; + imgHeight = cnf.fill.image.height; + } else { + imgWidth = size + 1; + imgHeight = size; + } + } else { + imgWidth = params.width; + imgHeight = params.height; + } + + var elPattern = document.createElementNS(w.globals.SVGNS, 'pattern'); + Graphics.setAttrs(elPattern, { + id: params.patternID, + patternUnits: params.patternUnits ? params.patternUnits : 'userSpaceOnUse', + width: imgWidth + 'px', + height: imgHeight + 'px' + }); + var elImage = document.createElementNS(w.globals.SVGNS, 'image'); + elPattern.appendChild(elImage); + elImage.setAttributeNS(window.SVG.xlink, 'href', fillImg); + Graphics.setAttrs(elImage, { + x: 0, + y: 0, + preserveAspectRatio: 'none', + width: imgWidth + 'px', + height: imgHeight + 'px' + }); + elImage.style.opacity = params.opacity; + w.globals.dom.elDefs.node.appendChild(elPattern); + } + }, { + key: "getSeriesIndex", + value: function getSeriesIndex(opts) { + var w = this.w; + + if ((w.config.chart.type === 'bar' || w.config.chart.type === 'rangeBar') && w.config.plotOptions.bar.distributed || w.config.chart.type === 'heatmap' || w.config.chart.type === 'treemap') { + this.seriesIndex = opts.seriesNumber; + } else { + this.seriesIndex = opts.seriesNumber % w.globals.series.length; + } + + return this.seriesIndex; + } + }, { + key: "fillPath", + value: function fillPath(opts) { + var w = this.w; + this.opts = opts; + var cnf = this.w.config; + var pathFill; + var patternFill, gradientFill; + this.seriesIndex = this.getSeriesIndex(opts); + var fillColors = this.getFillColors(); + var fillColor = fillColors[this.seriesIndex]; //override fillcolor if user inputted color with data + + if (w.globals.seriesColors[this.seriesIndex] !== undefined) { + fillColor = w.globals.seriesColors[this.seriesIndex]; + } + + if (typeof fillColor === 'function') { + fillColor = fillColor({ + seriesIndex: this.seriesIndex, + dataPointIndex: opts.dataPointIndex, + value: opts.value, + w: w + }); + } + + var fillType = this.getFillType(this.seriesIndex); + var fillOpacity = Array.isArray(cnf.fill.opacity) ? cnf.fill.opacity[this.seriesIndex] : cnf.fill.opacity; + + if (opts.color) { + fillColor = opts.color; + } + + var defaultColor = fillColor; + + if (fillColor.indexOf('rgb') === -1) { + if (fillColor.length < 9) { + // if the hex contains alpha and is of 9 digit, skip the opacity + defaultColor = Utils$1.hexToRgba(fillColor, fillOpacity); + } + } else { + if (fillColor.indexOf('rgba') > -1) { + fillOpacity = Utils$1.getOpacityFromRGBA(fillColor); + } + } + + if (opts.opacity) fillOpacity = opts.opacity; + + if (fillType === 'pattern') { + patternFill = this.handlePatternFill(patternFill, fillColor, fillOpacity, defaultColor); + } + + if (fillType === 'gradient') { + gradientFill = this.handleGradientFill(fillColor, fillOpacity, this.seriesIndex); + } + + if (fillType === 'image') { + var imgSrc = cnf.fill.image.src; + var patternID = opts.patternID ? opts.patternID : ''; + this.clippedImgArea({ + opacity: fillOpacity, + image: Array.isArray(imgSrc) ? opts.seriesNumber < imgSrc.length ? imgSrc[opts.seriesNumber] : imgSrc[0] : imgSrc, + width: opts.width ? opts.width : undefined, + height: opts.height ? opts.height : undefined, + patternUnits: opts.patternUnits, + patternID: "pattern".concat(w.globals.cuid).concat(opts.seriesNumber + 1).concat(patternID) + }); + pathFill = "url(#pattern".concat(w.globals.cuid).concat(opts.seriesNumber + 1).concat(patternID, ")"); + } else if (fillType === 'gradient') { + pathFill = gradientFill; + } else if (fillType === 'pattern') { + pathFill = patternFill; + } else { + pathFill = defaultColor; + } // override pattern/gradient if opts.solid is true + + + if (opts.solid) { + pathFill = defaultColor; + } + + return pathFill; + } + }, { + key: "getFillType", + value: function getFillType(seriesIndex) { + var w = this.w; + + if (Array.isArray(w.config.fill.type)) { + return w.config.fill.type[seriesIndex]; + } else { + return w.config.fill.type; + } + } + }, { + key: "getFillColors", + value: function getFillColors() { + var w = this.w; + var cnf = w.config; + var opts = this.opts; + var fillColors = []; + + if (w.globals.comboCharts) { + if (w.config.series[this.seriesIndex].type === 'line') { + if (Array.isArray(w.globals.stroke.colors)) { + fillColors = w.globals.stroke.colors; + } else { + fillColors.push(w.globals.stroke.colors); + } + } else { + if (Array.isArray(w.globals.fill.colors)) { + fillColors = w.globals.fill.colors; + } else { + fillColors.push(w.globals.fill.colors); + } + } + } else { + if (cnf.chart.type === 'line') { + if (Array.isArray(w.globals.stroke.colors)) { + fillColors = w.globals.stroke.colors; + } else { + fillColors.push(w.globals.stroke.colors); + } + } else { + if (Array.isArray(w.globals.fill.colors)) { + fillColors = w.globals.fill.colors; + } else { + fillColors.push(w.globals.fill.colors); + } + } + } // colors passed in arguments + + + if (typeof opts.fillColors !== 'undefined') { + fillColors = []; + + if (Array.isArray(opts.fillColors)) { + fillColors = opts.fillColors.slice(); + } else { + fillColors.push(opts.fillColors); + } + } + + return fillColors; + } + }, { + key: "handlePatternFill", + value: function handlePatternFill(patternFill, fillColor, fillOpacity, defaultColor) { + var cnf = this.w.config; + var opts = this.opts; + var graphics = new Graphics(this.ctx); + var patternStrokeWidth = cnf.fill.pattern.strokeWidth === undefined ? Array.isArray(cnf.stroke.width) ? cnf.stroke.width[this.seriesIndex] : cnf.stroke.width : Array.isArray(cnf.fill.pattern.strokeWidth) ? cnf.fill.pattern.strokeWidth[this.seriesIndex] : cnf.fill.pattern.strokeWidth; + var patternLineColor = fillColor; + + if (Array.isArray(cnf.fill.pattern.style)) { + if (typeof cnf.fill.pattern.style[opts.seriesNumber] !== 'undefined') { + var pf = graphics.drawPattern(cnf.fill.pattern.style[opts.seriesNumber], cnf.fill.pattern.width, cnf.fill.pattern.height, patternLineColor, patternStrokeWidth, fillOpacity); + patternFill = pf; + } else { + patternFill = defaultColor; + } + } else { + patternFill = graphics.drawPattern(cnf.fill.pattern.style, cnf.fill.pattern.width, cnf.fill.pattern.height, patternLineColor, patternStrokeWidth, fillOpacity); + } + + return patternFill; + } + }, { + key: "handleGradientFill", + value: function handleGradientFill(fillColor, fillOpacity, i) { + var cnf = this.w.config; + var opts = this.opts; + var graphics = new Graphics(this.ctx); + var utils = new Utils$1(); + var type = cnf.fill.gradient.type; + var gradientFrom = fillColor; + var gradientTo; + var opacityFrom = cnf.fill.gradient.opacityFrom === undefined ? fillOpacity : Array.isArray(cnf.fill.gradient.opacityFrom) ? cnf.fill.gradient.opacityFrom[i] : cnf.fill.gradient.opacityFrom; + + if (gradientFrom.indexOf('rgba') > -1) { + opacityFrom = Utils$1.getOpacityFromRGBA(gradientFrom); + } + + var opacityTo = cnf.fill.gradient.opacityTo === undefined ? fillOpacity : Array.isArray(cnf.fill.gradient.opacityTo) ? cnf.fill.gradient.opacityTo[i] : cnf.fill.gradient.opacityTo; + + if (cnf.fill.gradient.gradientToColors === undefined || cnf.fill.gradient.gradientToColors.length === 0) { + if (cnf.fill.gradient.shade === 'dark') { + gradientTo = utils.shadeColor(parseFloat(cnf.fill.gradient.shadeIntensity) * -1, fillColor.indexOf('rgb') > -1 ? Utils$1.rgb2hex(fillColor) : fillColor); + } else { + gradientTo = utils.shadeColor(parseFloat(cnf.fill.gradient.shadeIntensity), fillColor.indexOf('rgb') > -1 ? Utils$1.rgb2hex(fillColor) : fillColor); + } + } else { + if (cnf.fill.gradient.gradientToColors[opts.seriesNumber]) { + var gToColor = cnf.fill.gradient.gradientToColors[opts.seriesNumber]; + gradientTo = gToColor; + + if (gToColor.indexOf('rgba') > -1) { + opacityTo = Utils$1.getOpacityFromRGBA(gToColor); + } + } else { + gradientTo = fillColor; + } + } + + if (cnf.fill.gradient.inverseColors) { + var t = gradientFrom; + gradientFrom = gradientTo; + gradientTo = t; + } + + if (gradientFrom.indexOf('rgb') > -1) { + gradientFrom = Utils$1.rgb2hex(gradientFrom); + } + + if (gradientTo.indexOf('rgb') > -1) { + gradientTo = Utils$1.rgb2hex(gradientTo); + } + + return graphics.drawGradient(type, gradientFrom, gradientTo, opacityFrom, opacityTo, opts.size, cnf.fill.gradient.stops, cnf.fill.gradient.colorStops, i); + } + }]); + + return Fill; + }(); + + /** + * ApexCharts Markers Class for drawing points on y values in axes charts. + * + * @module Markers + **/ + + var Markers = /*#__PURE__*/function () { + function Markers(ctx, opts) { + _classCallCheck(this, Markers); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(Markers, [{ + key: "setGlobalMarkerSize", + value: function setGlobalMarkerSize() { + var w = this.w; + w.globals.markers.size = Array.isArray(w.config.markers.size) ? w.config.markers.size : [w.config.markers.size]; + + if (w.globals.markers.size.length > 0) { + if (w.globals.markers.size.length < w.globals.series.length + 1) { + for (var i = 0; i <= w.globals.series.length; i++) { + if (typeof w.globals.markers.size[i] === 'undefined') { + w.globals.markers.size.push(w.globals.markers.size[0]); + } + } + } + } else { + w.globals.markers.size = w.config.series.map(function (s) { + return w.config.markers.size; + }); + } + } + }, { + key: "plotChartMarkers", + value: function plotChartMarkers(pointsPos, seriesIndex, j, pSize) { + var alwaysDrawMarker = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + var w = this.w; + var i = seriesIndex; + var p = pointsPos; + var elPointsWrap = null; + var graphics = new Graphics(this.ctx); + var point; + var hasDiscreteMarkers = w.config.markers.discrete && w.config.markers.discrete.length; + + if (w.globals.markers.size[seriesIndex] > 0 || alwaysDrawMarker || hasDiscreteMarkers) { + elPointsWrap = graphics.group({ + class: alwaysDrawMarker || hasDiscreteMarkers ? '' : 'apexcharts-series-markers' + }); + elPointsWrap.attr('clip-path', "url(#gridRectMarkerMask".concat(w.globals.cuid, ")")); + } + + if (Array.isArray(p.x)) { + for (var q = 0; q < p.x.length; q++) { + var dataPointIndex = j; // a small hack as we have 2 points for the first val to connect it + + if (j === 1 && q === 0) dataPointIndex = 0; + if (j === 1 && q === 1) dataPointIndex = 1; + var PointClasses = 'apexcharts-marker'; + + if ((w.config.chart.type === 'line' || w.config.chart.type === 'area') && !w.globals.comboCharts && !w.config.tooltip.intersect) { + PointClasses += ' no-pointer-events'; + } + + var shouldMarkerDraw = Array.isArray(w.config.markers.size) ? w.globals.markers.size[seriesIndex] > 0 : w.config.markers.size > 0; + + if (shouldMarkerDraw || alwaysDrawMarker || hasDiscreteMarkers) { + if (Utils$1.isNumber(p.y[q])) { + PointClasses += " w".concat(Utils$1.randomId()); + } else { + PointClasses = 'apexcharts-nullpoint'; + } + + var opts = this.getMarkerConfig({ + cssClass: PointClasses, + seriesIndex: seriesIndex, + dataPointIndex: dataPointIndex + }); + + if (w.config.series[i].data[dataPointIndex]) { + if (w.config.series[i].data[dataPointIndex].fillColor) { + opts.pointFillColor = w.config.series[i].data[dataPointIndex].fillColor; + } + + if (w.config.series[i].data[dataPointIndex].strokeColor) { + opts.pointStrokeColor = w.config.series[i].data[dataPointIndex].strokeColor; + } + } + + if (pSize) { + opts.pSize = pSize; + } + + point = graphics.drawMarker(p.x[q], p.y[q], opts); + point.attr('rel', dataPointIndex); + point.attr('j', dataPointIndex); + point.attr('index', seriesIndex); + point.node.setAttribute('default-marker-size', opts.pSize); + var filters = new Filters(this.ctx); + filters.setSelectionFilter(point, seriesIndex, dataPointIndex); + this.addEvents(point); + + if (elPointsWrap) { + elPointsWrap.add(point); + } + } else { + // dynamic array creation - multidimensional + if (typeof w.globals.pointsArray[seriesIndex] === 'undefined') w.globals.pointsArray[seriesIndex] = []; + w.globals.pointsArray[seriesIndex].push([p.x[q], p.y[q]]); + } + } + } + + return elPointsWrap; + } + }, { + key: "getMarkerConfig", + value: function getMarkerConfig(_ref) { + var cssClass = _ref.cssClass, + seriesIndex = _ref.seriesIndex, + _ref$dataPointIndex = _ref.dataPointIndex, + dataPointIndex = _ref$dataPointIndex === void 0 ? null : _ref$dataPointIndex, + _ref$finishRadius = _ref.finishRadius, + finishRadius = _ref$finishRadius === void 0 ? null : _ref$finishRadius; + var w = this.w; + var pStyle = this.getMarkerStyle(seriesIndex); + var pSize = w.globals.markers.size[seriesIndex]; + var m = w.config.markers; // discrete markers is an option where user can specify a particular marker with different shape, size and color + + if (dataPointIndex !== null && m.discrete.length) { + m.discrete.map(function (marker) { + if (marker.seriesIndex === seriesIndex && marker.dataPointIndex === dataPointIndex) { + pStyle.pointStrokeColor = marker.strokeColor; + pStyle.pointFillColor = marker.fillColor; + pSize = marker.size; + pStyle.pointShape = marker.shape; + } + }); + } + + return { + pSize: finishRadius === null ? pSize : finishRadius, + pRadius: m.radius, + width: Array.isArray(m.width) ? m.width[seriesIndex] : m.width, + height: Array.isArray(m.height) ? m.height[seriesIndex] : m.height, + pointStrokeWidth: Array.isArray(m.strokeWidth) ? m.strokeWidth[seriesIndex] : m.strokeWidth, + pointStrokeColor: pStyle.pointStrokeColor, + pointFillColor: pStyle.pointFillColor, + shape: pStyle.pointShape || (Array.isArray(m.shape) ? m.shape[seriesIndex] : m.shape), + class: cssClass, + pointStrokeOpacity: Array.isArray(m.strokeOpacity) ? m.strokeOpacity[seriesIndex] : m.strokeOpacity, + pointStrokeDashArray: Array.isArray(m.strokeDashArray) ? m.strokeDashArray[seriesIndex] : m.strokeDashArray, + pointFillOpacity: Array.isArray(m.fillOpacity) ? m.fillOpacity[seriesIndex] : m.fillOpacity, + seriesIndex: seriesIndex + }; + } + }, { + key: "addEvents", + value: function addEvents(circle) { + var w = this.w; + var graphics = new Graphics(this.ctx); + circle.node.addEventListener('mouseenter', graphics.pathMouseEnter.bind(this.ctx, circle)); + circle.node.addEventListener('mouseleave', graphics.pathMouseLeave.bind(this.ctx, circle)); + circle.node.addEventListener('mousedown', graphics.pathMouseDown.bind(this.ctx, circle)); + circle.node.addEventListener('click', w.config.markers.onClick); + circle.node.addEventListener('dblclick', w.config.markers.onDblClick); + circle.node.addEventListener('touchstart', graphics.pathMouseDown.bind(this.ctx, circle), { + passive: true + }); + } + }, { + key: "getMarkerStyle", + value: function getMarkerStyle(seriesIndex) { + var w = this.w; + var colors = w.globals.markers.colors; + var strokeColors = w.config.markers.strokeColor || w.config.markers.strokeColors; + var pointStrokeColor = Array.isArray(strokeColors) ? strokeColors[seriesIndex] : strokeColors; + var pointFillColor = Array.isArray(colors) ? colors[seriesIndex] : colors; + return { + pointStrokeColor: pointStrokeColor, + pointFillColor: pointFillColor + }; + } + }]); + + return Markers; + }(); + + /** + * ApexCharts Scatter Class. + * This Class also handles bubbles chart as currently there is no major difference in drawing them, + * @module Scatter + **/ + + var Scatter = /*#__PURE__*/function () { + function Scatter(ctx) { + _classCallCheck(this, Scatter); + + this.ctx = ctx; + this.w = ctx.w; + this.initialAnim = this.w.config.chart.animations.enabled; + this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled; + } + + _createClass(Scatter, [{ + key: "draw", + value: function draw(elSeries, j, opts) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var realIndex = opts.realIndex; + var pointsPos = opts.pointsPos; + var zRatio = opts.zRatio; + var elPointsMain = opts.elParent; + var elPointsWrap = graphics.group({ + class: "apexcharts-series-markers apexcharts-series-".concat(w.config.chart.type) + }); + elPointsWrap.attr('clip-path', "url(#gridRectMarkerMask".concat(w.globals.cuid, ")")); + + if (Array.isArray(pointsPos.x)) { + for (var q = 0; q < pointsPos.x.length; q++) { + var dataPointIndex = j + 1; + var shouldDraw = true; // a small hack as we have 2 points for the first val to connect it + + if (j === 0 && q === 0) dataPointIndex = 0; + if (j === 0 && q === 1) dataPointIndex = 1; + var radius = 0; + var finishRadius = w.globals.markers.size[realIndex]; + + if (zRatio !== Infinity) { + // means we have a bubble + finishRadius = w.globals.seriesZ[realIndex][dataPointIndex] / zRatio; + var bubble = w.config.plotOptions.bubble; + + if (bubble.minBubbleRadius && finishRadius < bubble.minBubbleRadius) { + finishRadius = bubble.minBubbleRadius; + } + + if (bubble.maxBubbleRadius && finishRadius > bubble.maxBubbleRadius) { + finishRadius = bubble.maxBubbleRadius; + } + } + + if (!w.config.chart.animations.enabled) { + radius = finishRadius; + } + + var x = pointsPos.x[q]; + var y = pointsPos.y[q]; + radius = radius || 0; + + if (y === null || typeof w.globals.series[realIndex][dataPointIndex] === 'undefined') { + shouldDraw = false; + } + + if (shouldDraw) { + var point = this.drawPoint(x, y, radius, finishRadius, realIndex, dataPointIndex, j); + elPointsWrap.add(point); + } + + elPointsMain.add(elPointsWrap); + } + } + } + }, { + key: "drawPoint", + value: function drawPoint(x, y, radius, finishRadius, realIndex, dataPointIndex, j) { + var w = this.w; + var i = realIndex; + var anim = new Animations(this.ctx); + var filters = new Filters(this.ctx); + var fill = new Fill(this.ctx); + var markers = new Markers(this.ctx); + var graphics = new Graphics(this.ctx); + var markerConfig = markers.getMarkerConfig({ + cssClass: 'apexcharts-marker', + seriesIndex: i, + dataPointIndex: dataPointIndex, + finishRadius: w.config.chart.type === 'bubble' || w.globals.comboCharts && w.config.series[realIndex] && w.config.series[realIndex].type === 'bubble' ? finishRadius : null + }); + finishRadius = markerConfig.pSize; + var pathFillCircle = fill.fillPath({ + seriesNumber: realIndex, + dataPointIndex: dataPointIndex, + color: markerConfig.pointFillColor, + patternUnits: 'objectBoundingBox', + value: w.globals.series[realIndex][j] + }); + var el; + + if (markerConfig.shape === 'circle') { + el = graphics.drawCircle(radius); + } else if (markerConfig.shape === 'square' || markerConfig.shape === 'rect') { + el = graphics.drawRect(0, 0, markerConfig.width - markerConfig.pointStrokeWidth / 2, markerConfig.height - markerConfig.pointStrokeWidth / 2, markerConfig.pRadius); + } + + if (w.config.series[i].data[dataPointIndex]) { + if (w.config.series[i].data[dataPointIndex].fillColor) { + pathFillCircle = w.config.series[i].data[dataPointIndex].fillColor; + } + } + + el.attr({ + x: x - markerConfig.width / 2 - markerConfig.pointStrokeWidth / 2, + y: y - markerConfig.height / 2 - markerConfig.pointStrokeWidth / 2, + cx: x, + cy: y, + fill: pathFillCircle, + 'fill-opacity': markerConfig.pointFillOpacity, + stroke: markerConfig.pointStrokeColor, + r: finishRadius, + 'stroke-width': markerConfig.pointStrokeWidth, + 'stroke-dasharray': markerConfig.pointStrokeDashArray, + 'stroke-opacity': markerConfig.pointStrokeOpacity + }); + + if (w.config.chart.dropShadow.enabled) { + var dropShadow = w.config.chart.dropShadow; + filters.dropShadow(el, dropShadow, realIndex); + } + + if (this.initialAnim && !w.globals.dataChanged && !w.globals.resized) { + var speed = w.config.chart.animations.speed; + anim.animateMarker(el, 0, markerConfig.shape === 'circle' ? finishRadius : { + width: markerConfig.width, + height: markerConfig.height + }, speed, w.globals.easing, function () { + window.setTimeout(function () { + anim.animationCompleted(el); + }, 100); + }); + } else { + w.globals.animationEnded = true; + } + + if (w.globals.dataChanged && markerConfig.shape === 'circle') { + if (this.dynamicAnim) { + var _speed = w.config.chart.animations.dynamicAnimation.speed; + var prevX, prevY, prevR; + var prevPathJ = null; + prevPathJ = w.globals.previousPaths[realIndex] && w.globals.previousPaths[realIndex][j]; + + if (typeof prevPathJ !== 'undefined' && prevPathJ !== null) { + // series containing less elements will ignore these values and revert to 0 + prevX = prevPathJ.x; + prevY = prevPathJ.y; + prevR = typeof prevPathJ.r !== 'undefined' ? prevPathJ.r : finishRadius; + } + + for (var cs = 0; cs < w.globals.collapsedSeries.length; cs++) { + if (w.globals.collapsedSeries[cs].index === realIndex) { + _speed = 1; + finishRadius = 0; + } + } + + if (x === 0 && y === 0) finishRadius = 0; + anim.animateCircle(el, { + cx: prevX, + cy: prevY, + r: prevR + }, { + cx: x, + cy: y, + r: finishRadius + }, _speed, w.globals.easing); + } else { + el.attr({ + r: finishRadius + }); + } + } + + el.attr({ + rel: dataPointIndex, + j: dataPointIndex, + index: realIndex, + 'default-marker-size': finishRadius + }); + filters.setSelectionFilter(el, realIndex, dataPointIndex); + markers.addEvents(el); + el.node.classList.add('apexcharts-marker'); + return el; + } + }, { + key: "centerTextInBubble", + value: function centerTextInBubble(y) { + var w = this.w; + y = y + parseInt(w.config.dataLabels.style.fontSize, 10) / 4; + return { + y: y + }; + } + }]); + + return Scatter; + }(); + + /** + * ApexCharts DataLabels Class for drawing dataLabels on Axes based Charts. + * + * @module DataLabels + **/ + + var DataLabels = /*#__PURE__*/function () { + function DataLabels(ctx) { + _classCallCheck(this, DataLabels); + + this.ctx = ctx; + this.w = ctx.w; + } // When there are many datalabels to be printed, and some of them overlaps each other in the same series, this method will take care of that + // Also, when datalabels exceeds the drawable area and get clipped off, we need to adjust and move some pixels to make them visible again + + + _createClass(DataLabels, [{ + key: "dataLabelsCorrection", + value: function dataLabelsCorrection(x, y, val, i, dataPointIndex, alwaysDrawDataLabel, fontSize) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var drawnextLabel = false; // + + var textRects = graphics.getTextRects(val, fontSize); + var width = textRects.width; + var height = textRects.height; + if (y < 0) y = 0; + if (y > w.globals.gridHeight + height) y = w.globals.gridHeight + height / 2; // first value in series, so push an empty array + + if (typeof w.globals.dataLabelsRects[i] === 'undefined') w.globals.dataLabelsRects[i] = []; // then start pushing actual rects in that sub-array + + w.globals.dataLabelsRects[i].push({ + x: x, + y: y, + width: width, + height: height + }); + var len = w.globals.dataLabelsRects[i].length - 2; + var lastDrawnIndex = typeof w.globals.lastDrawnDataLabelsIndexes[i] !== 'undefined' ? w.globals.lastDrawnDataLabelsIndexes[i][w.globals.lastDrawnDataLabelsIndexes[i].length - 1] : 0; + + if (typeof w.globals.dataLabelsRects[i][len] !== 'undefined') { + var lastDataLabelRect = w.globals.dataLabelsRects[i][lastDrawnIndex]; + + if ( // next label forward and x not intersecting + x > lastDataLabelRect.x + lastDataLabelRect.width + 2 || y > lastDataLabelRect.y + lastDataLabelRect.height + 2 || x + width < lastDataLabelRect.x // next label is going to be drawn backwards + ) { + // the 2 indexes don't override, so OK to draw next label + drawnextLabel = true; + } + } + + if (dataPointIndex === 0 || alwaysDrawDataLabel) { + drawnextLabel = true; + } + + return { + x: x, + y: y, + textRects: textRects, + drawnextLabel: drawnextLabel + }; + } + }, { + key: "drawDataLabel", + value: function drawDataLabel(pos, i, j) { + var _this = this; + var strokeWidth = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2; + // this method handles line, area, bubble, scatter charts as those charts contains markers/points which have pre-defined x/y positions + // all other charts like radar / bars / heatmaps will define their own drawDataLabel routine + var w = this.w; + var graphics = new Graphics(this.ctx); + var dataLabelsConfig = w.config.dataLabels; + var x = 0; + var y = 0; + var dataPointIndex = j; + var elDataLabelsWrap = null; + + if (!dataLabelsConfig.enabled || !Array.isArray(pos.x)) { + return elDataLabelsWrap; + } + + elDataLabelsWrap = graphics.group({ + class: 'apexcharts-data-labels' + }); + + for (var q = 0; q < pos.x.length; q++) { + x = pos.x[q] + dataLabelsConfig.offsetX; + y = pos.y[q] + dataLabelsConfig.offsetY + strokeWidth; + + if (!isNaN(x)) { + // a small hack as we have 2 points for the first val to connect it + if (j === 1 && q === 0) dataPointIndex = 0; + if (j === 1 && q === 1) dataPointIndex = 1; + var val = w.globals.series[i][dataPointIndex]; + var text = ''; + + var getText = function getText(v) { + return w.config.dataLabels.formatter(v, { + ctx: _this.ctx, + seriesIndex: i, + dataPointIndex: dataPointIndex, + w: w + }); + }; + + if (w.config.chart.type === 'bubble') { + val = w.globals.seriesZ[i][dataPointIndex]; + text = getText(val); + y = pos.y[q]; + var scatter = new Scatter(this.ctx); + var centerTextInBubbleCoords = scatter.centerTextInBubble(y, i, dataPointIndex); + y = centerTextInBubbleCoords.y; + } else { + if (typeof val !== 'undefined') { + text = getText(val); + } + } + + this.plotDataLabelsText({ + x: x, + y: y, + text: text, + i: i, + j: dataPointIndex, + parent: elDataLabelsWrap, + offsetCorrection: true, + dataLabelsConfig: w.config.dataLabels + }); + } + } + + return elDataLabelsWrap; + } + }, { + key: "plotDataLabelsText", + value: function plotDataLabelsText(opts) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var x = opts.x, + y = opts.y, + i = opts.i, + j = opts.j, + text = opts.text, + textAnchor = opts.textAnchor, + fontSize = opts.fontSize, + parent = opts.parent, + dataLabelsConfig = opts.dataLabelsConfig, + color = opts.color, + alwaysDrawDataLabel = opts.alwaysDrawDataLabel, + offsetCorrection = opts.offsetCorrection; + + if (Array.isArray(w.config.dataLabels.enabledOnSeries)) { + if (w.config.dataLabels.enabledOnSeries.indexOf(i) < 0) { + return; + } + } + + var correctedLabels = { + x: x, + y: y, + drawnextLabel: true, + textRects: null + }; + + if (offsetCorrection) { + correctedLabels = this.dataLabelsCorrection(x, y, text, i, j, alwaysDrawDataLabel, parseInt(dataLabelsConfig.style.fontSize, 10)); + } // when zoomed, we don't need to correct labels offsets, + // but if normally, labels get cropped, correct them + + + if (!w.globals.zoomed) { + x = correctedLabels.x; + y = correctedLabels.y; + } + + if (correctedLabels.textRects) { + // fixes #2264 + if (x < -10 - correctedLabels.textRects.width || x > w.globals.gridWidth + correctedLabels.textRects.width + 10) { + // datalabels fall outside drawing area, so draw a blank label + text = ''; + } + } + + var dataLabelColor = w.globals.dataLabels.style.colors[i]; + + if ((w.config.chart.type === 'bar' || w.config.chart.type === 'rangeBar') && w.config.plotOptions.bar.distributed || w.config.dataLabels.distributed) { + dataLabelColor = w.globals.dataLabels.style.colors[j]; + } + + if (typeof dataLabelColor === 'function') { + dataLabelColor = dataLabelColor({ + series: w.globals.series, + seriesIndex: i, + dataPointIndex: j, + w: w + }); + } + + if (color) { + dataLabelColor = color; + } + + var offX = dataLabelsConfig.offsetX; + var offY = dataLabelsConfig.offsetY; + + if (w.config.chart.type === 'bar' || w.config.chart.type === 'rangeBar') { + // for certain chart types, we handle offsets while calculating datalabels pos + // why? because bars/column may have negative values and based on that + // offsets becomes reversed + offX = 0; + offY = 0; + } + + if (correctedLabels.drawnextLabel) { + var dataLabelText = graphics.drawText({ + width: 100, + height: parseInt(dataLabelsConfig.style.fontSize, 10), + x: x + offX, + y: y + offY, + foreColor: dataLabelColor, + textAnchor: textAnchor || dataLabelsConfig.textAnchor, + text: text, + fontSize: fontSize || dataLabelsConfig.style.fontSize, + fontFamily: dataLabelsConfig.style.fontFamily, + fontWeight: dataLabelsConfig.style.fontWeight || 'normal' + }); + dataLabelText.attr({ + class: 'apexcharts-datalabel', + cx: x, + cy: y + }); + + if (dataLabelsConfig.dropShadow.enabled) { + var textShadow = dataLabelsConfig.dropShadow; + var filters = new Filters(this.ctx); + filters.dropShadow(dataLabelText, textShadow); + } + + parent.add(dataLabelText); + + if (typeof w.globals.lastDrawnDataLabelsIndexes[i] === 'undefined') { + w.globals.lastDrawnDataLabelsIndexes[i] = []; + } + + w.globals.lastDrawnDataLabelsIndexes[i].push(j); + } + } + }, { + key: "addBackgroundToDataLabel", + value: function addBackgroundToDataLabel(el, coords) { + var w = this.w; + var bCnf = w.config.dataLabels.background; + var paddingH = bCnf.padding; + var paddingV = bCnf.padding / 2; + var width = coords.width; + var height = coords.height; + var graphics = new Graphics(this.ctx); + var elRect = graphics.drawRect(coords.x - paddingH, coords.y - paddingV / 2, width + paddingH * 2, height + paddingV, bCnf.borderRadius, w.config.chart.background === 'transparent' ? '#fff' : w.config.chart.background, bCnf.opacity, bCnf.borderWidth, bCnf.borderColor); + + if (bCnf.dropShadow.enabled) { + var filters = new Filters(this.ctx); + filters.dropShadow(elRect, bCnf.dropShadow); + } + + return elRect; + } + }, { + key: "dataLabelsBackground", + value: function dataLabelsBackground() { + var w = this.w; + if (w.config.chart.type === 'bubble') return; + var elDataLabels = w.globals.dom.baseEl.querySelectorAll('.apexcharts-datalabels text'); + + for (var i = 0; i < elDataLabels.length; i++) { + var el = elDataLabels[i]; + var coords = el.getBBox(); + var elRect = null; + + if (coords.width && coords.height) { + elRect = this.addBackgroundToDataLabel(el, coords); + } + + if (elRect) { + el.parentNode.insertBefore(elRect.node, el); + var background = el.getAttribute('fill'); + var shouldAnim = w.config.chart.animations.enabled && !w.globals.resized && !w.globals.dataChanged; + + if (shouldAnim) { + elRect.animate().attr({ + fill: background + }); + } else { + elRect.attr({ + fill: background + }); + } + + el.setAttribute('fill', w.config.dataLabels.background.foreColor); + } + } + } + }, { + key: "bringForward", + value: function bringForward() { + var w = this.w; + var elDataLabelsNodes = w.globals.dom.baseEl.querySelectorAll('.apexcharts-datalabels'); + var elSeries = w.globals.dom.baseEl.querySelector('.apexcharts-plot-series:last-child'); + + for (var i = 0; i < elDataLabelsNodes.length; i++) { + if (elSeries) { + elSeries.insertBefore(elDataLabelsNodes[i], elSeries.nextSibling); + } + } + } + }]); + + return DataLabels; + }(); + + var BarDataLabels = /*#__PURE__*/function () { + function BarDataLabels(barCtx) { + _classCallCheck(this, BarDataLabels); + + this.w = barCtx.w; + this.barCtx = barCtx; + } + /** handleBarDataLabels is used to calculate the positions for the data-labels + * It also sets the element's data attr for bars and calls drawCalculatedBarDataLabels() + * After calculating, it also calls the function to draw data labels + * @memberof Bar + * @param {object} {barProps} most of the bar properties used throughout the bar + * drawing function + * @return {object} dataLabels node-element which you can append later + **/ + + + _createClass(BarDataLabels, [{ + key: "handleBarDataLabels", + value: function handleBarDataLabels(opts) { + var x = opts.x, + y = opts.y, + y1 = opts.y1, + y2 = opts.y2, + i = opts.i, + j = opts.j, + realIndex = opts.realIndex, + series = opts.series, + barHeight = opts.barHeight, + barWidth = opts.barWidth, + barYPosition = opts.barYPosition, + visibleSeries = opts.visibleSeries, + renderedPath = opts.renderedPath; + var w = this.w; + var graphics = new Graphics(this.barCtx.ctx); + var strokeWidth = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[realIndex] : this.barCtx.strokeWidth; + var bcx = x + parseFloat(barWidth * visibleSeries); + var bcy = y + parseFloat(barHeight * visibleSeries); + + if (w.globals.isXNumeric && !w.globals.isBarHorizontal) { + bcx = x + parseFloat(barWidth * (visibleSeries + 1)); + bcy = y + parseFloat(barHeight * (visibleSeries + 1)) - strokeWidth; + } + + var dataLabels = null; + var dataLabelsX = x; + var dataLabelsY = y; + var dataLabelsPos = {}; + var dataLabelsConfig = w.config.dataLabels; + var barDataLabelsConfig = this.barCtx.barOptions.dataLabels; + + if (typeof barYPosition !== 'undefined' && this.barCtx.isRangeBar) { + bcy = barYPosition; + dataLabelsY = barYPosition; + } + + var offX = dataLabelsConfig.offsetX; + var offY = dataLabelsConfig.offsetY; + var textRects = { + width: 0, + height: 0 + }; + + if (w.config.dataLabels.enabled) { + var yLabel = this.barCtx.series[i][j]; + textRects = graphics.getTextRects(w.globals.yLabelFormatters[0](yLabel), parseFloat(dataLabelsConfig.style.fontSize)); + } + + var params = { + x: x, + y: y, + i: i, + j: j, + renderedPath: renderedPath, + bcx: bcx, + bcy: bcy, + barHeight: barHeight, + barWidth: barWidth, + textRects: textRects, + strokeWidth: strokeWidth, + dataLabelsX: dataLabelsX, + dataLabelsY: dataLabelsY, + barDataLabelsConfig: barDataLabelsConfig, + offX: offX, + offY: offY + }; + + if (this.barCtx.isHorizontal) { + dataLabelsPos = this.calculateBarsDataLabelsPosition(params); + } else { + dataLabelsPos = this.calculateColumnsDataLabelsPosition(params); + } + + renderedPath.attr({ + cy: dataLabelsPos.bcy, + cx: dataLabelsPos.bcx, + j: j, + val: series[i][j], + barHeight: barHeight, + barWidth: barWidth + }); + dataLabels = this.drawCalculatedDataLabels({ + x: dataLabelsPos.dataLabelsX, + y: dataLabelsPos.dataLabelsY, + val: this.barCtx.isRangeBar ? [y1, y2] : series[i][j], + i: realIndex, + j: j, + barWidth: barWidth, + barHeight: barHeight, + textRects: textRects, + dataLabelsConfig: dataLabelsConfig + }); + return dataLabels; + } + }, { + key: "calculateColumnsDataLabelsPosition", + value: function calculateColumnsDataLabelsPosition(opts) { + var w = this.w; + var i = opts.i, + j = opts.j, + y = opts.y, + bcx = opts.bcx, + barWidth = opts.barWidth, + barHeight = opts.barHeight, + textRects = opts.textRects, + dataLabelsY = opts.dataLabelsY, + barDataLabelsConfig = opts.barDataLabelsConfig, + strokeWidth = opts.strokeWidth, + offX = opts.offX, + offY = opts.offY; + var dataLabelsX; + barHeight = Math.abs(barHeight); + var vertical = w.config.plotOptions.bar.dataLabels.orientation === 'vertical'; + bcx = bcx - strokeWidth / 2; + var dataPointsDividedWidth = w.globals.gridWidth / w.globals.dataPoints; + + if (w.globals.isXNumeric) { + dataLabelsX = bcx - barWidth / 2 + offX; + } else { + dataLabelsX = bcx - dataPointsDividedWidth + barWidth / 2 + offX; + } + + if (vertical) { + var offsetDLX = 2; + dataLabelsX = dataLabelsX + textRects.height / 2 - strokeWidth / 2 - offsetDLX; + } + + var valIsNegative = this.barCtx.series[i][j] < 0; + var newY = y; + + if (this.barCtx.isReversed) { + newY = y - barHeight + (valIsNegative ? barHeight * 2 : 0); + y = y - barHeight; + } + + switch (barDataLabelsConfig.position) { + case 'center': + if (vertical) { + if (valIsNegative) { + dataLabelsY = newY + barHeight / 2 + offY; + } else { + dataLabelsY = newY + barHeight / 2 - offY; + } + } else { + if (valIsNegative) { + dataLabelsY = newY - barHeight / 2 + textRects.height / 2 + offY; + } else { + dataLabelsY = newY + barHeight / 2 + textRects.height / 2 - offY; + } + } + + break; + + case 'bottom': + if (vertical) { + if (valIsNegative) { + dataLabelsY = newY + barHeight + offY; + } else { + dataLabelsY = newY + barHeight - offY; + } + } else { + if (valIsNegative) { + dataLabelsY = newY - barHeight + textRects.height + strokeWidth + offY; + } else { + dataLabelsY = newY + barHeight - textRects.height / 2 + strokeWidth - offY; + } + } + + break; + + case 'top': + if (vertical) { + if (valIsNegative) { + dataLabelsY = newY + offY; + } else { + dataLabelsY = newY - offY; + } + } else { + if (valIsNegative) { + dataLabelsY = newY - textRects.height / 2 - offY; + } else { + dataLabelsY = newY + textRects.height + offY; + } + } + + break; + } + + if (!w.config.chart.stacked) { + if (dataLabelsY < 0) { + dataLabelsY = 0 + strokeWidth; + } else if (dataLabelsY + textRects.height / 3 > w.globals.gridHeight) { + dataLabelsY = w.globals.gridHeight - strokeWidth; + } + } + + return { + bcx: bcx, + bcy: y, + dataLabelsX: dataLabelsX, + dataLabelsY: dataLabelsY + }; + } + }, { + key: "calculateBarsDataLabelsPosition", + value: function calculateBarsDataLabelsPosition(opts) { + var w = this.w; + var x = opts.x, + i = opts.i, + j = opts.j, + bcy = opts.bcy, + barHeight = opts.barHeight, + barWidth = opts.barWidth, + textRects = opts.textRects, + dataLabelsX = opts.dataLabelsX, + strokeWidth = opts.strokeWidth, + barDataLabelsConfig = opts.barDataLabelsConfig, + offX = opts.offX, + offY = opts.offY; + var dataPointsDividedHeight = w.globals.gridHeight / w.globals.dataPoints; + barWidth = Math.abs(barWidth); + var dataLabelsY = bcy - (this.barCtx.isRangeBar ? 0 : dataPointsDividedHeight) + barHeight / 2 + textRects.height / 2 + offY - 3; + var valIsNegative = this.barCtx.series[i][j] < 0; + var newX = x; + + if (this.barCtx.isReversed) { + newX = x + barWidth - (valIsNegative ? barWidth * 2 : 0); + x = w.globals.gridWidth - barWidth; + } + + switch (barDataLabelsConfig.position) { + case 'center': + if (valIsNegative) { + dataLabelsX = newX + barWidth / 2 - offX; + } else { + dataLabelsX = Math.max(textRects.width / 2, newX - barWidth / 2) + offX; + } + + break; + + case 'bottom': + if (valIsNegative) { + dataLabelsX = newX + barWidth - strokeWidth - Math.round(textRects.width / 2) - offX; + } else { + dataLabelsX = newX - barWidth + strokeWidth + Math.round(textRects.width / 2) + offX; + } + + break; + + case 'top': + if (valIsNegative) { + dataLabelsX = newX - strokeWidth + Math.round(textRects.width / 2) - offX; + } else { + dataLabelsX = newX - strokeWidth - Math.round(textRects.width / 2) + offX; + } + + break; + } + + if (!w.config.chart.stacked) { + if (dataLabelsX < 0) { + dataLabelsX = dataLabelsX + textRects.width + strokeWidth; + } else if (dataLabelsX + textRects.width / 2 > w.globals.gridWidth) { + dataLabelsX = w.globals.gridWidth - textRects.width - strokeWidth; + } + } + + return { + bcx: x, + bcy: bcy, + dataLabelsX: dataLabelsX, + dataLabelsY: dataLabelsY + }; + } + }, { + key: "drawCalculatedDataLabels", + value: function drawCalculatedDataLabels(_ref) { + var x = _ref.x, + y = _ref.y, + val = _ref.val, + i = _ref.i, + j = _ref.j, + textRects = _ref.textRects, + barHeight = _ref.barHeight, + barWidth = _ref.barWidth, + dataLabelsConfig = _ref.dataLabelsConfig; + var w = this.w; + var rotate = 'rotate(0)'; + if (w.config.plotOptions.bar.dataLabels.orientation === 'vertical') rotate = "rotate(-90, ".concat(x, ", ").concat(y, ")"); + var dataLabels = new DataLabels(this.barCtx.ctx); + var graphics = new Graphics(this.barCtx.ctx); + var formatter = dataLabelsConfig.formatter; + var elDataLabelsWrap = null; + var isSeriesNotCollapsed = w.globals.collapsedSeriesIndices.indexOf(i) > -1; + + if (dataLabelsConfig.enabled && !isSeriesNotCollapsed) { + elDataLabelsWrap = graphics.group({ + class: 'apexcharts-data-labels', + transform: rotate + }); + var text = ''; + + if (typeof val !== 'undefined') { + text = formatter(val, { + seriesIndex: i, + dataPointIndex: j, + w: w + }); + } + + var valIsNegative = w.globals.series[i][j] < 0; + var position = w.config.plotOptions.bar.dataLabels.position; + + if (w.config.plotOptions.bar.dataLabels.orientation === 'vertical') { + if (position === 'top') { + if (valIsNegative) dataLabelsConfig.textAnchor = 'end';else dataLabelsConfig.textAnchor = 'start'; + } + + if (position === 'center') { + dataLabelsConfig.textAnchor = 'middle'; + } + + if (position === 'bottom') { + if (valIsNegative) dataLabelsConfig.textAnchor = 'end';else dataLabelsConfig.textAnchor = 'start'; + } + } + + if (this.barCtx.isRangeBar && this.barCtx.barOptions.dataLabels.hideOverflowingLabels) { + // hide the datalabel if it cannot fit into the rect + var txRect = graphics.getTextRects(text, parseFloat(dataLabelsConfig.style.fontSize)); + + if (barWidth < txRect.width) { + text = ''; + } + } + + if (w.config.chart.stacked && this.barCtx.barOptions.dataLabels.hideOverflowingLabels) { + // if there is not enough space to draw the label in the bar/column rect, check hideOverflowingLabels property to prevent overflowing on wrong rect + // Note: This issue is only seen in stacked charts + if (this.barCtx.isHorizontal) { + if (textRects.width / 1.6 > Math.abs(barWidth)) { + text = ''; + } + } else { + if (textRects.height / 1.6 > Math.abs(barHeight)) { + text = ''; + } + } + } + + var modifiedDataLabelsConfig = _objectSpread2({}, dataLabelsConfig); + + if (this.barCtx.isHorizontal) { + if (val < 0) { + if (dataLabelsConfig.textAnchor === 'start') { + modifiedDataLabelsConfig.textAnchor = 'end'; + } else if (dataLabelsConfig.textAnchor === 'end') { + modifiedDataLabelsConfig.textAnchor = 'start'; + } + } + } + + dataLabels.plotDataLabelsText({ + x: x, + y: y, + text: text, + i: i, + j: j, + parent: elDataLabelsWrap, + dataLabelsConfig: modifiedDataLabelsConfig, + alwaysDrawDataLabel: true, + offsetCorrection: true + }); + } + + return elDataLabelsWrap; + } + }]); + + return BarDataLabels; + }(); + + /** + * ApexCharts Series Class for interaction with the Series of the chart. + * + * @module Series + **/ + + var Series = /*#__PURE__*/function () { + function Series(ctx) { + _classCallCheck(this, Series); + + this.ctx = ctx; + this.w = ctx.w; + this.legendInactiveClass = 'legend-mouseover-inactive'; + } + + _createClass(Series, [{ + key: "getAllSeriesEls", + value: function getAllSeriesEls() { + return this.w.globals.dom.baseEl.getElementsByClassName("apexcharts-series"); + } + }, { + key: "getSeriesByName", + value: function getSeriesByName(seriesName) { + return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner .apexcharts-series[seriesName='".concat(Utils$1.escapeString(seriesName), "']")); + } + }, { + key: "isSeriesHidden", + value: function isSeriesHidden(seriesName) { + var targetElement = this.getSeriesByName(seriesName); + var realIndex = parseInt(targetElement.getAttribute('data:realIndex'), 10); + var isHidden = targetElement.classList.contains('apexcharts-series-collapsed'); + return { + isHidden: isHidden, + realIndex: realIndex + }; + } + }, { + key: "addCollapsedClassToSeries", + value: function addCollapsedClassToSeries(elSeries, index) { + var w = this.w; + + function iterateOnAllCollapsedSeries(series) { + for (var cs = 0; cs < series.length; cs++) { + if (series[cs].index === index) { + elSeries.node.classList.add('apexcharts-series-collapsed'); + } + } + } + + iterateOnAllCollapsedSeries(w.globals.collapsedSeries); + iterateOnAllCollapsedSeries(w.globals.ancillaryCollapsedSeries); + } + }, { + key: "toggleSeries", + value: function toggleSeries(seriesName) { + var isSeriesHidden = this.isSeriesHidden(seriesName); + this.ctx.legend.legendHelpers.toggleDataSeries(isSeriesHidden.realIndex, isSeriesHidden.isHidden); + return isSeriesHidden.isHidden; + } + }, { + key: "showSeries", + value: function showSeries(seriesName) { + var isSeriesHidden = this.isSeriesHidden(seriesName); + + if (isSeriesHidden.isHidden) { + this.ctx.legend.legendHelpers.toggleDataSeries(isSeriesHidden.realIndex, true); + } + } + }, { + key: "hideSeries", + value: function hideSeries(seriesName) { + var isSeriesHidden = this.isSeriesHidden(seriesName); + + if (!isSeriesHidden.isHidden) { + this.ctx.legend.legendHelpers.toggleDataSeries(isSeriesHidden.realIndex, false); + } + } + }, { + key: "resetSeries", + value: function resetSeries() { + var shouldUpdateChart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var shouldResetZoom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var shouldResetCollapsed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var w = this.w; + var series = Utils$1.clone(w.globals.initialSeries); + w.globals.previousPaths = []; + + if (shouldResetCollapsed) { + w.globals.collapsedSeries = []; + w.globals.ancillaryCollapsedSeries = []; + w.globals.collapsedSeriesIndices = []; + w.globals.ancillaryCollapsedSeriesIndices = []; + } else { + series = this.emptyCollapsedSeries(series); + } + + w.config.series = series; + + if (shouldUpdateChart) { + if (shouldResetZoom) { + w.globals.zoomed = false; + this.ctx.updateHelpers.revertDefaultAxisMinMax(); + } + + this.ctx.updateHelpers._updateSeries(series, w.config.chart.animations.dynamicAnimation.enabled); + } + } + }, { + key: "emptyCollapsedSeries", + value: function emptyCollapsedSeries(series) { + var w = this.w; + + for (var i = 0; i < series.length; i++) { + if (w.globals.collapsedSeriesIndices.indexOf(i) > -1) { + series[i].data = []; + } + } + + return series; + } + }, { + key: "toggleSeriesOnHover", + value: function toggleSeriesOnHover(e, targetElement) { + var w = this.w; + if (!targetElement) targetElement = e.target; + var allSeriesEls = w.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels"); + + if (e.type === 'mousemove') { + var seriesCnt = parseInt(targetElement.getAttribute('rel'), 10) - 1; + var seriesEl = null; + var dataLabelEl = null; + + if (w.globals.axisCharts || w.config.chart.type === 'radialBar') { + if (w.globals.axisCharts) { + seriesEl = w.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(seriesCnt, "']")); + dataLabelEl = w.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(seriesCnt, "']")); + } else { + seriesEl = w.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(seriesCnt + 1, "']")); + } + } else { + seriesEl = w.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(seriesCnt + 1, "'] path")); + } + + for (var se = 0; se < allSeriesEls.length; se++) { + allSeriesEls[se].classList.add(this.legendInactiveClass); + } + + if (seriesEl !== null) { + if (!w.globals.axisCharts) { + seriesEl.parentNode.classList.remove(this.legendInactiveClass); + } + + seriesEl.classList.remove(this.legendInactiveClass); + + if (dataLabelEl !== null) { + dataLabelEl.classList.remove(this.legendInactiveClass); + } + } + } else if (e.type === 'mouseout') { + for (var _se = 0; _se < allSeriesEls.length; _se++) { + allSeriesEls[_se].classList.remove(this.legendInactiveClass); + } + } + } + }, { + key: "highlightRangeInSeries", + value: function highlightRangeInSeries(e, targetElement) { + var _this = this; + + var w = this.w; + var allHeatMapElements = w.globals.dom.baseEl.getElementsByClassName('apexcharts-heatmap-rect'); + + var activeInactive = function activeInactive(action) { + for (var i = 0; i < allHeatMapElements.length; i++) { + allHeatMapElements[i].classList[action](_this.legendInactiveClass); + } + }; + + var removeInactiveClassFromHoveredRange = function removeInactiveClassFromHoveredRange(range) { + for (var i = 0; i < allHeatMapElements.length; i++) { + var val = parseInt(allHeatMapElements[i].getAttribute('val'), 10); + + if (val >= range.from && val <= range.to) { + allHeatMapElements[i].classList.remove(_this.legendInactiveClass); + } + } + }; + + if (e.type === 'mousemove') { + var seriesCnt = parseInt(targetElement.getAttribute('rel'), 10) - 1; + activeInactive('add'); + var range = w.config.plotOptions.heatmap.colorScale.ranges[seriesCnt]; + removeInactiveClassFromHoveredRange(range); + } else if (e.type === 'mouseout') { + activeInactive('remove'); + } + } + }, { + key: "getActiveConfigSeriesIndex", + value: function getActiveConfigSeriesIndex() { + var ignoreBars = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var order = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'asc'; + var w = this.w; + var activeIndex = 0; + + if (w.config.series.length > 1) { + // active series flag is required to know if user has not deactivated via legend click + var activeSeriesIndex = w.config.series.map(function (s, index) { + var hasBars = false; + + if (ignoreBars) { + hasBars = w.config.series[index].type === 'bar' || w.config.series[index].type === 'column'; + } + + return s.data && s.data.length > 0 && !hasBars ? index : -1; + }); + + for (var a = order === 'asc' ? 0 : activeSeriesIndex.length - 1; order === 'asc' ? a < activeSeriesIndex.length : a >= 0; order === 'asc' ? a++ : a--) { + if (activeSeriesIndex[a] !== -1) { + activeIndex = activeSeriesIndex[a]; + break; + } + } + } + + return activeIndex; + } + }, { + key: "getPreviousPaths", + value: function getPreviousPaths() { + var w = this.w; + w.globals.previousPaths = []; + + function pushPaths(seriesEls, i, type) { + var paths = seriesEls[i].childNodes; + var dArr = { + type: type, + paths: [], + realIndex: seriesEls[i].getAttribute('data:realIndex') + }; + + for (var j = 0; j < paths.length; j++) { + if (paths[j].hasAttribute('pathTo')) { + var d = paths[j].getAttribute('pathTo'); + dArr.paths.push({ + d: d + }); + } + } + + w.globals.previousPaths.push(dArr); + } + + var getPaths = function getPaths(chartType) { + return w.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(chartType, "-series .apexcharts-series")); + }; + + var chartTypes = ['line', 'area', 'bar', 'rangebar', 'candlestick', 'radar']; + chartTypes.forEach(function (type) { + var paths = getPaths(type); + + for (var p = 0; p < paths.length; p++) { + pushPaths(paths, p, type); + } + }); + this.handlePrevBubbleScatterPaths('bubble'); + this.handlePrevBubbleScatterPaths('scatter'); + var heatTreeSeries = w.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(w.config.chart.type, " .apexcharts-series")); + + if (heatTreeSeries.length > 0) { + var _loop = function _loop(h) { + var seriesEls = w.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(w.config.chart.type, " .apexcharts-series[data\\:realIndex='").concat(h, "'] rect")); + var dArr = []; + + var _loop2 = function _loop2(i) { + var getAttr = function getAttr(x) { + return seriesEls[i].getAttribute(x); + }; + + var rect = { + x: parseFloat(getAttr('x')), + y: parseFloat(getAttr('y')), + width: parseFloat(getAttr('width')), + height: parseFloat(getAttr('height')) + }; + dArr.push({ + rect: rect, + color: seriesEls[i].getAttribute('color') + }); + }; + + for (var i = 0; i < seriesEls.length; i++) { + _loop2(i); + } + + w.globals.previousPaths.push(dArr); + }; + + for (var h = 0; h < heatTreeSeries.length; h++) { + _loop(h); + } + } + + if (!w.globals.axisCharts) { + // for non-axis charts (i.e., circular charts, pathFrom is not usable. We need whole series) + w.globals.previousPaths = w.globals.series; + } + } + }, { + key: "handlePrevBubbleScatterPaths", + value: function handlePrevBubbleScatterPaths(type) { + var w = this.w; + var paths = w.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(type, "-series .apexcharts-series")); + + if (paths.length > 0) { + for (var s = 0; s < paths.length; s++) { + var seriesEls = w.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(type, "-series .apexcharts-series[data\\:realIndex='").concat(s, "'] circle")); + var dArr = []; + + for (var i = 0; i < seriesEls.length; i++) { + dArr.push({ + x: seriesEls[i].getAttribute('cx'), + y: seriesEls[i].getAttribute('cy'), + r: seriesEls[i].getAttribute('r') + }); + } + + w.globals.previousPaths.push(dArr); + } + } + } + }, { + key: "clearPreviousPaths", + value: function clearPreviousPaths() { + var w = this.w; + w.globals.previousPaths = []; + w.globals.allSeriesCollapsed = false; + } + }, { + key: "handleNoData", + value: function handleNoData() { + var w = this.w; + var me = this; + var noDataOpts = w.config.noData; + var graphics = new Graphics(me.ctx); + var x = w.globals.svgWidth / 2; + var y = w.globals.svgHeight / 2; + var textAnchor = 'middle'; + w.globals.noData = true; + w.globals.animationEnded = true; + + if (noDataOpts.align === 'left') { + x = 10; + textAnchor = 'start'; + } else if (noDataOpts.align === 'right') { + x = w.globals.svgWidth - 10; + textAnchor = 'end'; + } + + if (noDataOpts.verticalAlign === 'top') { + y = 50; + } else if (noDataOpts.verticalAlign === 'bottom') { + y = w.globals.svgHeight - 50; + } + + x = x + noDataOpts.offsetX; + y = y + parseInt(noDataOpts.style.fontSize, 10) + 2 + noDataOpts.offsetY; + + if (noDataOpts.text !== undefined && noDataOpts.text !== '') { + var titleText = graphics.drawText({ + x: x, + y: y, + text: noDataOpts.text, + textAnchor: textAnchor, + fontSize: noDataOpts.style.fontSize, + fontFamily: noDataOpts.style.fontFamily, + foreColor: noDataOpts.style.color, + opacity: 1, + class: 'apexcharts-text-nodata' + }); + w.globals.dom.Paper.add(titleText); + } + } // When user clicks on legends, the collapsed series is filled with [0,0,0,...,0] + // This is because we don't want to alter the series' length as it is used at many places + + }, { + key: "setNullSeriesToZeroValues", + value: function setNullSeriesToZeroValues(series) { + var w = this.w; + + for (var sl = 0; sl < series.length; sl++) { + if (series[sl].length === 0) { + for (var j = 0; j < series[w.globals.maxValsInArrayIndex].length; j++) { + series[sl].push(0); + } + } + } + + return series; + } + }, { + key: "hasAllSeriesEqualX", + value: function hasAllSeriesEqualX() { + var equalLen = true; + var w = this.w; + var filteredSerX = this.filteredSeriesX(); + + for (var i = 0; i < filteredSerX.length - 1; i++) { + if (filteredSerX[i][0] !== filteredSerX[i + 1][0]) { + equalLen = false; + break; + } + } + + w.globals.allSeriesHasEqualX = equalLen; + return equalLen; + } + }, { + key: "filteredSeriesX", + value: function filteredSeriesX() { + var w = this.w; + var filteredSeriesX = w.globals.seriesX.map(function (ser) { + return ser.length > 0 ? ser : []; + }); + return filteredSeriesX; + } + }]); + + return Series; + }(); + + var Helpers$3 = /*#__PURE__*/function () { + function Helpers(barCtx) { + _classCallCheck(this, Helpers); + + this.w = barCtx.w; + this.barCtx = barCtx; + } + + _createClass(Helpers, [{ + key: "initVariables", + value: function initVariables(series) { + var w = this.w; + this.barCtx.series = series; + this.barCtx.totalItems = 0; + this.barCtx.seriesLen = 0; + this.barCtx.visibleI = -1; // visible Series + + this.barCtx.visibleItems = 1; // number of visible bars after user zoomed in/out + + for (var sl = 0; sl < series.length; sl++) { + if (series[sl].length > 0) { + this.barCtx.seriesLen = this.barCtx.seriesLen + 1; + this.barCtx.totalItems += series[sl].length; + } + + if (w.globals.isXNumeric) { + // get max visible items + for (var j = 0; j < series[sl].length; j++) { + if (w.globals.seriesX[sl][j] > w.globals.minX && w.globals.seriesX[sl][j] < w.globals.maxX) { + this.barCtx.visibleItems++; + } + } + } else { + this.barCtx.visibleItems = w.globals.dataPoints; + } + } + + if (this.barCtx.seriesLen === 0) { + // A small adjustment when combo charts are used + this.barCtx.seriesLen = 1; + } + + this.barCtx.zeroSerieses = []; + this.barCtx.radiusOnSeriesNumber = series.length - 1; // which series to draw ending shape on + + if (!w.globals.comboCharts) { + this.checkZeroSeries({ + series: series + }); + } + } + }, { + key: "initialPositions", + value: function initialPositions() { + var w = this.w; + var x, y, yDivision, xDivision, barHeight, barWidth, zeroH, zeroW; + var dataPoints = w.globals.dataPoints; + + if (this.barCtx.isRangeBar) { + // timeline rangebar chart + dataPoints = w.globals.labels.length; + } + + var seriesLen = this.barCtx.seriesLen; + + if (w.config.plotOptions.bar.rangeBarGroupRows) { + seriesLen = 1; + } + + if (this.barCtx.isHorizontal) { + // height divided into equal parts + yDivision = w.globals.gridHeight / dataPoints; + barHeight = yDivision / seriesLen; + + if (w.globals.isXNumeric) { + yDivision = w.globals.gridHeight / this.barCtx.totalItems; + barHeight = yDivision / this.barCtx.seriesLen; + } + + barHeight = barHeight * parseInt(this.barCtx.barOptions.barHeight, 10) / 100; + zeroW = this.barCtx.baseLineInvertedY + w.globals.padHorizontal + (this.barCtx.isReversed ? w.globals.gridWidth : 0) - (this.barCtx.isReversed ? this.barCtx.baseLineInvertedY * 2 : 0); + y = (yDivision - barHeight * this.barCtx.seriesLen) / 2; + } else { + // width divided into equal parts + xDivision = w.globals.gridWidth / this.barCtx.visibleItems; + + if (w.config.xaxis.convertedCatToNumeric) { + xDivision = w.globals.gridWidth / w.globals.dataPoints; + } + + barWidth = xDivision / this.barCtx.seriesLen * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100; + + if (w.globals.isXNumeric) { + // max barwidth should be equal to minXDiff to avoid overlap + var xRatio = this.barCtx.xRatio; + + if (w.config.xaxis.convertedCatToNumeric) { + xRatio = this.barCtx.initialXRatio; + } + + if (w.globals.minXDiff && w.globals.minXDiff !== 0.5 && w.globals.minXDiff / xRatio > 0) { + xDivision = w.globals.minXDiff / xRatio; + } + + barWidth = xDivision / this.barCtx.seriesLen * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100; + + if (barWidth < 1) { + barWidth = 1; + } + } + + zeroH = w.globals.gridHeight - this.barCtx.baseLineY[this.barCtx.yaxisIndex] - (this.barCtx.isReversed ? w.globals.gridHeight : 0) + (this.barCtx.isReversed ? this.barCtx.baseLineY[this.barCtx.yaxisIndex] * 2 : 0); + x = w.globals.padHorizontal + (xDivision - barWidth * this.barCtx.seriesLen) / 2; + } + + return { + x: x, + y: y, + yDivision: yDivision, + xDivision: xDivision, + barHeight: barHeight, + barWidth: barWidth, + zeroH: zeroH, + zeroW: zeroW + }; + } + }, { + key: "getPathFillColor", + value: function getPathFillColor(series, i, j, realIndex) { + var w = this.w; + var fill = new Fill(this.barCtx.ctx); + var fillColor = null; + var seriesNumber = this.barCtx.barOptions.distributed ? j : i; + + if (this.barCtx.barOptions.colors.ranges.length > 0) { + var colorRange = this.barCtx.barOptions.colors.ranges; + colorRange.map(function (range) { + if (series[i][j] >= range.from && series[i][j] <= range.to) { + fillColor = range.color; + } + }); + } + + if (w.config.series[i].data[j] && w.config.series[i].data[j].fillColor) { + fillColor = w.config.series[i].data[j].fillColor; + } + + var pathFill = fill.fillPath({ + seriesNumber: this.barCtx.barOptions.distributed ? seriesNumber : realIndex, + dataPointIndex: j, + color: fillColor, + value: series[i][j] + }); + return pathFill; + } + }, { + key: "getStrokeWidth", + value: function getStrokeWidth(i, j, realIndex) { + var strokeWidth = 0; + var w = this.w; + + if (typeof this.barCtx.series[i][j] === 'undefined' || this.barCtx.series[i][j] === null) { + this.barCtx.isNullValue = true; + } else { + this.barCtx.isNullValue = false; + } + + if (w.config.stroke.show) { + if (!this.barCtx.isNullValue) { + strokeWidth = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[realIndex] : this.barCtx.strokeWidth; + } + } + + return strokeWidth; + } + }, { + key: "barBackground", + value: function barBackground(_ref) { + var j = _ref.j, + i = _ref.i, + x1 = _ref.x1, + x2 = _ref.x2, + y1 = _ref.y1, + y2 = _ref.y2, + elSeries = _ref.elSeries; + var w = this.w; + var graphics = new Graphics(this.barCtx.ctx); + var sr = new Series(this.barCtx.ctx); + var activeSeriesIndex = sr.getActiveConfigSeriesIndex(); + + if (this.barCtx.barOptions.colors.backgroundBarColors.length > 0 && activeSeriesIndex === i) { + if (j >= this.barCtx.barOptions.colors.backgroundBarColors.length) { + j %= this.barCtx.barOptions.colors.backgroundBarColors.length; + } + + var bcolor = this.barCtx.barOptions.colors.backgroundBarColors[j]; + var rect = graphics.drawRect(typeof x1 !== 'undefined' ? x1 : 0, typeof y1 !== 'undefined' ? y1 : 0, typeof x2 !== 'undefined' ? x2 : w.globals.gridWidth, typeof y2 !== 'undefined' ? y2 : w.globals.gridHeight, this.barCtx.barOptions.colors.backgroundBarRadius, bcolor, this.barCtx.barOptions.colors.backgroundBarOpacity); + elSeries.add(rect); + rect.node.classList.add('apexcharts-backgroundBar'); + } + } + }, { + key: "getColumnPaths", + value: function getColumnPaths(_ref2) { + var barWidth = _ref2.barWidth, + barXPosition = _ref2.barXPosition, + yRatio = _ref2.yRatio, + y1 = _ref2.y1, + y2 = _ref2.y2, + strokeWidth = _ref2.strokeWidth, + series = _ref2.series, + realIndex = _ref2.realIndex, + i = _ref2.i, + j = _ref2.j, + w = _ref2.w; + var graphics = new Graphics(this.barCtx.ctx); + strokeWidth = Array.isArray(strokeWidth) ? strokeWidth[realIndex] : strokeWidth; + if (!strokeWidth) strokeWidth = 0; + var shapeOpts = { + barWidth: barWidth, + strokeWidth: strokeWidth, + yRatio: yRatio, + barXPosition: barXPosition, + y1: y1, + y2: y2 + }; + var newPath = this.getRoundedBars(w, shapeOpts, series, i, j); + var x1 = barXPosition; + var x2 = barXPosition + barWidth; + var pathTo = graphics.move(x1, y1); + var pathFrom = graphics.move(x1, y1); + var sl = graphics.line(x2 - strokeWidth, y1); + + if (w.globals.previousPaths.length > 0) { + pathFrom = this.barCtx.getPreviousPath(realIndex, j, false); + } + + pathTo = pathTo + graphics.line(x1, newPath.y2) + newPath.pathWithRadius + graphics.line(x2 - strokeWidth, newPath.y2) + sl + sl + 'z'; // the lines in pathFrom are repeated to equal it to the points of pathTo + // this is to avoid weird animation (bug in svg.js) + + pathFrom = pathFrom + graphics.line(x1, y1) + sl + sl + sl + sl + sl + graphics.line(x1, y1); + + if (w.config.chart.stacked) { + this.barCtx.yArrj.push(newPath.y2WithRadius); + this.barCtx.yArrjF.push(Math.abs(y1 - newPath.y2WithRadius)); + this.barCtx.yArrjVal.push(this.barCtx.series[i][j]); + } + + return { + pathTo: pathTo, + pathFrom: pathFrom + }; + } + }, { + key: "getBarpaths", + value: function getBarpaths(_ref3) { + var barYPosition = _ref3.barYPosition, + barHeight = _ref3.barHeight, + x1 = _ref3.x1, + x2 = _ref3.x2, + strokeWidth = _ref3.strokeWidth, + series = _ref3.series, + realIndex = _ref3.realIndex, + i = _ref3.i, + j = _ref3.j, + w = _ref3.w; + var graphics = new Graphics(this.barCtx.ctx); + strokeWidth = Array.isArray(strokeWidth) ? strokeWidth[realIndex] : strokeWidth; + if (!strokeWidth) strokeWidth = 0; + var shapeOpts = { + barHeight: barHeight, + strokeWidth: strokeWidth, + barYPosition: barYPosition, + x2: x2, + x1: x1 + }; + var newPath = this.getRoundedBars(w, shapeOpts, series, i, j); + var pathTo = graphics.move(x1, barYPosition); + var pathFrom = graphics.move(x1, barYPosition); + + if (w.globals.previousPaths.length > 0) { + pathFrom = this.barCtx.getPreviousPath(realIndex, j, false); + } + + var y1 = barYPosition; + var y2 = barYPosition + barHeight; + var sl = graphics.line(x1, y2 - strokeWidth); + pathTo = pathTo + graphics.line(newPath.x2, y1) + newPath.pathWithRadius + graphics.line(newPath.x2, y2 - strokeWidth) + sl + sl + 'z'; + pathFrom = pathFrom + graphics.line(x1, y1) + sl + sl + sl + sl + sl + graphics.line(x1, y1); + + if (w.config.chart.stacked) { + this.barCtx.xArrj.push(newPath.x2WithRadius); + this.barCtx.xArrjF.push(Math.abs(x1 - newPath.x2WithRadius)); + this.barCtx.xArrjVal.push(this.barCtx.series[i][j]); + } + + return { + pathTo: pathTo, + pathFrom: pathFrom + }; + } + /** getRoundedBars draws border radius for bars/columns + * @memberof Bar + * @param {object} w - chart context + * @param {object} opts - consists several properties like barHeight/barWidth + * @param {array} series - global primary series + * @param {int} i - current iterating series's index + * @param {int} j - series's j of i + * @return {object} pathWithRadius - ending shape path string + * newY/newX - which is calculated from existing x/y based on rounded border + **/ + + }, { + key: "getRoundedBars", + value: function getRoundedBars(w, opts, series, i, j) { + var graphics = new Graphics(this.barCtx.ctx); + var radius = 0; + var borderRadius = w.config.plotOptions.bar.borderRadius; + var borderRadiusIsArray = Array.isArray(borderRadius); + + if (borderRadiusIsArray) { + var radiusIndex = i > borderRadius.length - 1 ? borderRadius.length - 1 : i; + radius = borderRadius[radiusIndex]; + } else { + radius = borderRadius; + } + + if (w.config.chart.stacked && series.length > 1 && i !== this.barCtx.radiusOnSeriesNumber && !borderRadiusIsArray) { + radius = 0; + } + + if (this.barCtx.isHorizontal) { + var pathWithRadius = ''; + var x2 = opts.x2; + + if (Math.abs(opts.x1 - opts.x2) < radius) { + radius = Math.abs(opts.x1 - opts.x2); + } + + if (typeof series[i][j] !== 'undefined' || series[i][j] !== null) { + var inverse = this.barCtx.isReversed ? series[i][j] > 0 : series[i][j] < 0; + if (inverse) radius = radius * -1; + x2 = x2 - radius; + pathWithRadius = graphics.quadraticCurve(x2 + radius, opts.barYPosition, x2 + radius, opts.barYPosition + (!inverse ? radius : radius * -1)) + graphics.line(x2 + radius, opts.barYPosition + opts.barHeight - opts.strokeWidth - (!inverse ? radius : radius * -1)) + graphics.quadraticCurve(x2 + radius, opts.barYPosition + opts.barHeight - opts.strokeWidth, x2, opts.barYPosition + opts.barHeight - opts.strokeWidth); + } + + return { + pathWithRadius: pathWithRadius, + x2WithRadius: x2 + radius, + x2: x2 + }; + } else { + var _pathWithRadius = ''; + var y2 = opts.y2; + + if (Math.abs(opts.y1 - opts.y2) < radius) { + radius = Math.abs(opts.y1 - opts.y2); + } + + if (typeof series[i][j] !== 'undefined' || series[i][j] !== null) { + var _inverse = series[i][j] < 0; + + if (_inverse) radius = radius * -1; + y2 = y2 + radius; + _pathWithRadius = graphics.quadraticCurve(opts.barXPosition, y2 - radius, opts.barXPosition + (!_inverse ? radius : radius * -1), y2 - radius) + graphics.line(opts.barXPosition + opts.barWidth - opts.strokeWidth - (!_inverse ? radius : radius * -1), y2 - radius) + graphics.quadraticCurve(opts.barXPosition + opts.barWidth - opts.strokeWidth, y2 - radius, opts.barXPosition + opts.barWidth - opts.strokeWidth, y2); + } + + return { + pathWithRadius: _pathWithRadius, + y2WithRadius: y2 - radius, + y2: y2 + }; + } + } + }, { + key: "checkZeroSeries", + value: function checkZeroSeries(_ref4) { + var series = _ref4.series; + var w = this.w; + + for (var zs = 0; zs < series.length; zs++) { + var total = 0; + + for (var zsj = 0; zsj < series[w.globals.maxValsInArrayIndex].length; zsj++) { + total += series[zs][zsj]; + } + + if (total === 0) { + this.barCtx.zeroSerieses.push(zs); + } + } // After getting all zeroserieses, we need to ensure whether radiusOnSeriesNumber is not in that zeroseries array + + + for (var s = series.length - 1; s >= 0; s--) { + if (this.barCtx.zeroSerieses.indexOf(s) > -1 && s === this.radiusOnSeriesNumber) { + this.barCtx.radiusOnSeriesNumber -= 1; + } + } + + for (var _s = series.length - 1; _s >= 0; _s--) { + if (w.globals.collapsedSeriesIndices.indexOf(this.barCtx.radiusOnSeriesNumber) > -1) { + this.barCtx.radiusOnSeriesNumber -= 1; + } + } + } + }, { + key: "getXForValue", + value: function getXForValue(value, zeroW) { + var zeroPositionForNull = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var xForVal = zeroPositionForNull ? zeroW : null; + + if (typeof value !== 'undefined' && value !== null) { + xForVal = zeroW + value / this.barCtx.invertedYRatio - (this.barCtx.isReversed ? value / this.barCtx.invertedYRatio : 0) * 2; + } + + return xForVal; + } + }, { + key: "getYForValue", + value: function getYForValue(value, zeroH) { + var zeroPositionForNull = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var yForVal = zeroPositionForNull ? zeroH : null; + + if (typeof value !== 'undefined' && value !== null) { + yForVal = zeroH - value / this.barCtx.yRatio[this.barCtx.yaxisIndex] + (this.barCtx.isReversed ? value / this.barCtx.yRatio[this.barCtx.yaxisIndex] : 0) * 2; + } + + return yForVal; + } + }, { + key: "getGoalValues", + value: function getGoalValues(type, zeroW, zeroH, i, j) { + var _this = this; + + var w = this.w; + var goals = []; + + if (w.globals.seriesGoals[i] && w.globals.seriesGoals[i][j] && Array.isArray(w.globals.seriesGoals[i][j])) { + w.globals.seriesGoals[i][j].forEach(function (goal) { + var _goals$push; + + goals.push((_goals$push = {}, _defineProperty(_goals$push, type, type === 'x' ? _this.getXForValue(goal.value, zeroW, false) : _this.getYForValue(goal.value, zeroH, false)), _defineProperty(_goals$push, "attrs", goal), _goals$push)); + }); + } + + return goals; + } + }, { + key: "drawGoalLine", + value: function drawGoalLine(_ref5) { + var barXPosition = _ref5.barXPosition, + barYPosition = _ref5.barYPosition, + goalX = _ref5.goalX, + goalY = _ref5.goalY, + barWidth = _ref5.barWidth, + barHeight = _ref5.barHeight; + var graphics = new Graphics(this.barCtx.ctx); + var lineGroup = graphics.group({ + className: 'apexcharts-bar-goals-groups' + }); + var line = null; + + if (this.barCtx.isHorizontal) { + if (Array.isArray(goalX)) { + goalX.forEach(function (goal) { + var sHeight = typeof goal.attrs.strokeHeight !== 'undefined' ? goal.attrs.strokeHeight : barHeight / 2; + var y = barYPosition + sHeight + barHeight / 2; + line = graphics.drawLine(goal.x, y - sHeight * 2, goal.x, y, goal.attrs.strokeColor ? goal.attrs.strokeColor : undefined, goal.attrs.strokeDashArray, goal.attrs.strokeWidth ? goal.attrs.strokeWidth : 2, goal.attrs.strokeLineCap); + lineGroup.add(line); + }); + } + } else { + if (Array.isArray(goalY)) { + goalY.forEach(function (goal) { + var sWidth = typeof goal.attrs.strokeWidth !== 'undefined' ? goal.attrs.strokeWidth : barWidth / 2; + var x = barXPosition + sWidth + barWidth / 2; + line = graphics.drawLine(x - sWidth * 2, goal.y, x, goal.y, goal.attrs.strokeColor ? goal.attrs.strokeColor : undefined, goal.attrs.strokeDashArray, goal.attrs.strokeHeight ? goal.attrs.strokeHeight : 2, goal.attrs.strokeLineCap); + lineGroup.add(line); + }); + } + } + + return lineGroup; + } + }]); + + return Helpers; + }(); + + /** + * ApexCharts Bar Class responsible for drawing both Columns and Bars. + * + * @module Bar + **/ + + var Bar = /*#__PURE__*/function () { + function Bar(ctx, xyRatios) { + _classCallCheck(this, Bar); + + this.ctx = ctx; + this.w = ctx.w; + var w = this.w; + this.barOptions = w.config.plotOptions.bar; + this.isHorizontal = this.barOptions.horizontal; + this.strokeWidth = w.config.stroke.width; + this.isNullValue = false; + this.isRangeBar = w.globals.seriesRangeBar.length && this.isHorizontal; + this.xyRatios = xyRatios; + + if (this.xyRatios !== null) { + this.xRatio = xyRatios.xRatio; + this.initialXRatio = xyRatios.initialXRatio; + this.yRatio = xyRatios.yRatio; + this.invertedXRatio = xyRatios.invertedXRatio; + this.invertedYRatio = xyRatios.invertedYRatio; + this.baseLineY = xyRatios.baseLineY; + this.baseLineInvertedY = xyRatios.baseLineInvertedY; + } + + this.yaxisIndex = 0; + this.seriesLen = 0; + this.barHelpers = new Helpers$3(this); + } + /** primary draw method which is called on bar object + * @memberof Bar + * @param {array} series - user supplied series values + * @param {int} seriesIndex - the index by which series will be drawn on the svg + * @return {node} element which is supplied to parent chart draw method for appending + **/ + + + _createClass(Bar, [{ + key: "draw", + value: function draw(series, seriesIndex) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var coreUtils = new CoreUtils(this.ctx, w); + series = coreUtils.getLogSeries(series); + this.series = series; + this.yRatio = coreUtils.getLogYRatios(this.yRatio); + this.barHelpers.initVariables(series); + var ret = graphics.group({ + class: 'apexcharts-bar-series apexcharts-plot-series' + }); + + if (w.config.dataLabels.enabled) { + if (this.totalItems > this.barOptions.dataLabels.maxItems) { + console.warn('WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.'); + } + } + + for (var i = 0, bc = 0; i < series.length; i++, bc++) { + var x = void 0, + y = void 0, + xDivision = void 0, + // xDivision is the GRIDWIDTH divided by number of datapoints (columns) + yDivision = void 0, + // yDivision is the GRIDHEIGHT divided by number of datapoints (bars) + zeroH = void 0, + // zeroH is the baseline where 0 meets y axis + zeroW = void 0; // zeroW is the baseline where 0 meets x axis + + var yArrj = []; // hold y values of current iterating series + + var xArrj = []; // hold x values of current iterating series + + var realIndex = w.globals.comboCharts ? seriesIndex[i] : i; // el to which series will be drawn + + var elSeries = graphics.group({ + class: "apexcharts-series", + rel: i + 1, + seriesName: Utils$1.escapeString(w.globals.seriesNames[realIndex]), + 'data:realIndex': realIndex + }); + this.ctx.series.addCollapsedClassToSeries(elSeries, realIndex); + + if (series[i].length > 0) { + this.visibleI = this.visibleI + 1; + } + + var barHeight = 0; + var barWidth = 0; + + if (this.yRatio.length > 1) { + this.yaxisIndex = realIndex; + } + + this.isReversed = w.config.yaxis[this.yaxisIndex] && w.config.yaxis[this.yaxisIndex].reversed; + var initPositions = this.barHelpers.initialPositions(); + y = initPositions.y; + barHeight = initPositions.barHeight; + yDivision = initPositions.yDivision; + zeroW = initPositions.zeroW; + x = initPositions.x; + barWidth = initPositions.barWidth; + xDivision = initPositions.xDivision; + zeroH = initPositions.zeroH; + + if (!this.horizontal) { + xArrj.push(x + barWidth / 2); + } // eldatalabels + + + var elDataLabelsWrap = graphics.group({ + class: 'apexcharts-datalabels', + 'data:realIndex': realIndex + }); + var elGoalsMarkers = graphics.group({ + class: 'apexcharts-bar-goals-markers', + style: "pointer-events: none" + }); + + for (var j = 0; j < w.globals.dataPoints; j++) { + var strokeWidth = this.barHelpers.getStrokeWidth(i, j, realIndex); + var paths = null; + var pathsParams = { + indexes: { + i: i, + j: j, + realIndex: realIndex, + bc: bc + }, + x: x, + y: y, + strokeWidth: strokeWidth, + elSeries: elSeries + }; + + if (this.isHorizontal) { + paths = this.drawBarPaths(_objectSpread2(_objectSpread2({}, pathsParams), {}, { + barHeight: barHeight, + zeroW: zeroW, + yDivision: yDivision + })); + barWidth = this.series[i][j] / this.invertedYRatio; + } else { + paths = this.drawColumnPaths(_objectSpread2(_objectSpread2({}, pathsParams), {}, { + xDivision: xDivision, + barWidth: barWidth, + zeroH: zeroH + })); + barHeight = this.series[i][j] / this.yRatio[this.yaxisIndex]; + } + + var barGoalLine = this.barHelpers.drawGoalLine({ + barXPosition: paths.barXPosition, + barYPosition: paths.barYPosition, + goalX: paths.goalX, + goalY: paths.goalY, + barHeight: barHeight, + barWidth: barWidth + }); + + if (barGoalLine) { + elGoalsMarkers.add(barGoalLine); + } + + y = paths.y; + x = paths.x; // push current X + + if (j > 0) { + xArrj.push(x + barWidth / 2); + } + + yArrj.push(y); + var pathFill = this.barHelpers.getPathFillColor(series, i, j, realIndex); + this.renderSeries({ + realIndex: realIndex, + pathFill: pathFill, + j: j, + i: i, + pathFrom: paths.pathFrom, + pathTo: paths.pathTo, + strokeWidth: strokeWidth, + elSeries: elSeries, + x: x, + y: y, + series: series, + barHeight: barHeight, + barWidth: barWidth, + elDataLabelsWrap: elDataLabelsWrap, + elGoalsMarkers: elGoalsMarkers, + visibleSeries: this.visibleI, + type: 'bar' + }); + } // push all x val arrays into main xArr + + + w.globals.seriesXvalues[realIndex] = xArrj; + w.globals.seriesYvalues[realIndex] = yArrj; + ret.add(elSeries); + } + + return ret; + } + }, { + key: "renderSeries", + value: function renderSeries(_ref) { + var realIndex = _ref.realIndex, + pathFill = _ref.pathFill, + lineFill = _ref.lineFill, + j = _ref.j, + i = _ref.i, + pathFrom = _ref.pathFrom, + pathTo = _ref.pathTo, + strokeWidth = _ref.strokeWidth, + elSeries = _ref.elSeries, + x = _ref.x, + y = _ref.y, + y1 = _ref.y1, + y2 = _ref.y2, + series = _ref.series, + barHeight = _ref.barHeight, + barWidth = _ref.barWidth, + barYPosition = _ref.barYPosition, + elDataLabelsWrap = _ref.elDataLabelsWrap, + elGoalsMarkers = _ref.elGoalsMarkers, + visibleSeries = _ref.visibleSeries, + type = _ref.type; + var w = this.w; + var graphics = new Graphics(this.ctx); + + if (!lineFill) { + /* fix apexcharts#341 */ + lineFill = this.barOptions.distributed ? w.globals.stroke.colors[j] : w.globals.stroke.colors[realIndex]; + } + + if (w.config.series[i].data[j] && w.config.series[i].data[j].strokeColor) { + lineFill = w.config.series[i].data[j].strokeColor; + } + + if (this.isNullValue) { + pathFill = 'none'; + } + + var delay = j / w.config.chart.animations.animateGradually.delay * (w.config.chart.animations.speed / w.globals.dataPoints) / 2.4; + var renderedPath = graphics.renderPaths({ + i: i, + j: j, + realIndex: realIndex, + pathFrom: pathFrom, + pathTo: pathTo, + stroke: lineFill, + strokeWidth: strokeWidth, + strokeLineCap: w.config.stroke.lineCap, + fill: pathFill, + animationDelay: delay, + initialSpeed: w.config.chart.animations.speed, + dataChangeSpeed: w.config.chart.animations.dynamicAnimation.speed, + className: "apexcharts-".concat(type, "-area") + }); + renderedPath.attr('clip-path', "url(#gridRectMask".concat(w.globals.cuid, ")")); + var forecast = w.config.forecastDataPoints; + + if (forecast.count > 0) { + if (j >= w.globals.dataPoints - forecast.count) { + renderedPath.node.setAttribute('stroke-dasharray', forecast.dashArray); + renderedPath.node.setAttribute('stroke-width', forecast.strokeWidth); + renderedPath.node.setAttribute('fill-opacity', forecast.fillOpacity); + } + } + + if (typeof y1 !== 'undefined' && typeof y2 !== 'undefined') { + renderedPath.attr('data-range-y1', y1); + renderedPath.attr('data-range-y2', y2); + } + + var filters = new Filters(this.ctx); + filters.setSelectionFilter(renderedPath, realIndex, j); + elSeries.add(renderedPath); + var barDataLabels = new BarDataLabels(this); + var dataLabels = barDataLabels.handleBarDataLabels({ + x: x, + y: y, + y1: y1, + y2: y2, + i: i, + j: j, + series: series, + realIndex: realIndex, + barHeight: barHeight, + barWidth: barWidth, + barYPosition: barYPosition, + renderedPath: renderedPath, + visibleSeries: visibleSeries + }); + + if (dataLabels !== null) { + elDataLabelsWrap.add(dataLabels); + } + + elSeries.add(elDataLabelsWrap); + + if (elGoalsMarkers) { + elSeries.add(elGoalsMarkers); + } + + return elSeries; + } + }, { + key: "drawBarPaths", + value: function drawBarPaths(_ref2) { + var indexes = _ref2.indexes, + barHeight = _ref2.barHeight, + strokeWidth = _ref2.strokeWidth, + zeroW = _ref2.zeroW, + x = _ref2.x, + y = _ref2.y, + yDivision = _ref2.yDivision, + elSeries = _ref2.elSeries; + var w = this.w; + var i = indexes.i; + var j = indexes.j; + + if (w.globals.isXNumeric) { + y = (w.globals.seriesX[i][j] - w.globals.minX) / this.invertedXRatio - barHeight; + } + + var barYPosition = y + barHeight * this.visibleI; + x = this.barHelpers.getXForValue(this.series[i][j], zeroW); + var paths = this.barHelpers.getBarpaths({ + barYPosition: barYPosition, + barHeight: barHeight, + x1: zeroW, + x2: x, + strokeWidth: strokeWidth, + series: this.series, + realIndex: indexes.realIndex, + i: i, + j: j, + w: w + }); + + if (!w.globals.isXNumeric) { + y = y + yDivision; + } + + this.barHelpers.barBackground({ + j: j, + i: i, + y1: barYPosition - barHeight * this.visibleI, + y2: barHeight * this.seriesLen, + elSeries: elSeries + }); + return { + pathTo: paths.pathTo, + pathFrom: paths.pathFrom, + x: x, + y: y, + goalX: this.barHelpers.getGoalValues('x', zeroW, null, i, j), + barYPosition: barYPosition + }; + } + }, { + key: "drawColumnPaths", + value: function drawColumnPaths(_ref3) { + var indexes = _ref3.indexes, + x = _ref3.x, + y = _ref3.y, + xDivision = _ref3.xDivision, + barWidth = _ref3.barWidth, + zeroH = _ref3.zeroH, + strokeWidth = _ref3.strokeWidth, + elSeries = _ref3.elSeries; + var w = this.w; + var realIndex = indexes.realIndex; + var i = indexes.i; + var j = indexes.j; + var bc = indexes.bc; + + if (w.globals.isXNumeric) { + var sxI = realIndex; + + if (!w.globals.seriesX[realIndex].length) { + sxI = w.globals.maxValsInArrayIndex; + } + + x = (w.globals.seriesX[sxI][j] - w.globals.minX) / this.xRatio - barWidth * this.seriesLen / 2; + } + + var barXPosition = x + barWidth * this.visibleI; + y = this.barHelpers.getYForValue(this.series[i][j], zeroH); + var paths = this.barHelpers.getColumnPaths({ + barXPosition: barXPosition, + barWidth: barWidth, + y1: zeroH, + y2: y, + strokeWidth: strokeWidth, + series: this.series, + realIndex: indexes.realIndex, + i: i, + j: j, + w: w + }); + + if (!w.globals.isXNumeric) { + x = x + xDivision; + } + + this.barHelpers.barBackground({ + bc: bc, + j: j, + i: i, + x1: barXPosition - strokeWidth / 2 - barWidth * this.visibleI, + x2: barWidth * this.seriesLen + strokeWidth / 2, + elSeries: elSeries + }); + return { + pathTo: paths.pathTo, + pathFrom: paths.pathFrom, + x: x, + y: y, + goalY: this.barHelpers.getGoalValues('y', null, zeroH, i, j), + barXPosition: barXPosition + }; + } + /** getPreviousPath is a common function for bars/columns which is used to get previous paths when data changes. + * @memberof Bar + * @param {int} realIndex - current iterating i + * @param {int} j - current iterating series's j index + * @return {string} pathFrom is the string which will be appended in animations + **/ + + }, { + key: "getPreviousPath", + value: function getPreviousPath(realIndex, j) { + var w = this.w; + var pathFrom; + + for (var pp = 0; pp < w.globals.previousPaths.length; pp++) { + var gpp = w.globals.previousPaths[pp]; + + if (gpp.paths && gpp.paths.length > 0 && parseInt(gpp.realIndex, 10) === parseInt(realIndex, 10)) { + if (typeof w.globals.previousPaths[pp].paths[j] !== 'undefined') { + pathFrom = w.globals.previousPaths[pp].paths[j].d; + } + } + } + + return pathFrom; + } + }]); + + return Bar; + }(); + + /** + * DateTime Class to manipulate datetime values. + * + * @module DateTime + **/ + + var DateTime = /*#__PURE__*/function () { + function DateTime(ctx) { + _classCallCheck(this, DateTime); + + this.ctx = ctx; + this.w = ctx.w; + this.months31 = [1, 3, 5, 7, 8, 10, 12]; + this.months30 = [2, 4, 6, 9, 11]; + this.daysCntOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + } + + _createClass(DateTime, [{ + key: "isValidDate", + value: function isValidDate(date) { + return !isNaN(this.parseDate(date)); + } + }, { + key: "getTimeStamp", + value: function getTimeStamp(dateStr) { + if (!Date.parse(dateStr)) { + return dateStr; + } + + var utc = this.w.config.xaxis.labels.datetimeUTC; + return !utc ? new Date(dateStr).getTime() : new Date(new Date(dateStr).toISOString().substr(0, 25)).getTime(); + } + }, { + key: "getDate", + value: function getDate(timestamp) { + var utc = this.w.config.xaxis.labels.datetimeUTC; + return utc ? new Date(new Date(timestamp).toUTCString()) : new Date(timestamp); + } + }, { + key: "parseDate", + value: function parseDate(dateStr) { + var parsed = Date.parse(dateStr); + + if (!isNaN(parsed)) { + return this.getTimeStamp(dateStr); + } + + var output = Date.parse(dateStr.replace(/-/g, '/').replace(/[a-z]+/gi, ' ')); + output = this.getTimeStamp(output); + return output; + } // This fixes the difference of x-axis labels between chrome/safari + // Fixes #1726, #1544, #1485, #1255 + + }, { + key: "parseDateWithTimezone", + value: function parseDateWithTimezone(dateStr) { + return Date.parse(dateStr.replace(/-/g, '/').replace(/[a-z]+/gi, ' ')); + } // http://stackoverflow.com/questions/14638018/current-time-formatting-with-javascript#answer-14638191 + + }, { + key: "formatDate", + value: function formatDate(date, format) { + var locale = this.w.globals.locale; + var utc = this.w.config.xaxis.labels.datetimeUTC; + var MMMM = ['\x00'].concat(_toConsumableArray(locale.months)); + var MMM = ['\x01'].concat(_toConsumableArray(locale.shortMonths)); + var dddd = ['\x02'].concat(_toConsumableArray(locale.days)); + var ddd = ['\x03'].concat(_toConsumableArray(locale.shortDays)); + + function ii(i, len) { + var s = i + ''; + len = len || 2; + + while (s.length < len) { + s = '0' + s; + } + + return s; + } + + var y = utc ? date.getUTCFullYear() : date.getFullYear(); + format = format.replace(/(^|[^\\])yyyy+/g, '$1' + y); + format = format.replace(/(^|[^\\])yy/g, '$1' + y.toString().substr(2, 2)); + format = format.replace(/(^|[^\\])y/g, '$1' + y); + var M = (utc ? date.getUTCMonth() : date.getMonth()) + 1; + format = format.replace(/(^|[^\\])MMMM+/g, '$1' + MMMM[0]); + format = format.replace(/(^|[^\\])MMM/g, '$1' + MMM[0]); + format = format.replace(/(^|[^\\])MM/g, '$1' + ii(M)); + format = format.replace(/(^|[^\\])M/g, '$1' + M); + var d = utc ? date.getUTCDate() : date.getDate(); + format = format.replace(/(^|[^\\])dddd+/g, '$1' + dddd[0]); + format = format.replace(/(^|[^\\])ddd/g, '$1' + ddd[0]); + format = format.replace(/(^|[^\\])dd/g, '$1' + ii(d)); + format = format.replace(/(^|[^\\])d/g, '$1' + d); + var H = utc ? date.getUTCHours() : date.getHours(); + format = format.replace(/(^|[^\\])HH+/g, '$1' + ii(H)); + format = format.replace(/(^|[^\\])H/g, '$1' + H); + var h = H > 12 ? H - 12 : H === 0 ? 12 : H; + format = format.replace(/(^|[^\\])hh+/g, '$1' + ii(h)); + format = format.replace(/(^|[^\\])h/g, '$1' + h); + var m = utc ? date.getUTCMinutes() : date.getMinutes(); + format = format.replace(/(^|[^\\])mm+/g, '$1' + ii(m)); + format = format.replace(/(^|[^\\])m/g, '$1' + m); + var s = utc ? date.getUTCSeconds() : date.getSeconds(); + format = format.replace(/(^|[^\\])ss+/g, '$1' + ii(s)); + format = format.replace(/(^|[^\\])s/g, '$1' + s); + var f = utc ? date.getUTCMilliseconds() : date.getMilliseconds(); + format = format.replace(/(^|[^\\])fff+/g, '$1' + ii(f, 3)); + f = Math.round(f / 10); + format = format.replace(/(^|[^\\])ff/g, '$1' + ii(f)); + f = Math.round(f / 10); + format = format.replace(/(^|[^\\])f/g, '$1' + f); + var T = H < 12 ? 'AM' : 'PM'; + format = format.replace(/(^|[^\\])TT+/g, '$1' + T); + format = format.replace(/(^|[^\\])T/g, '$1' + T.charAt(0)); + var t = T.toLowerCase(); + format = format.replace(/(^|[^\\])tt+/g, '$1' + t); + format = format.replace(/(^|[^\\])t/g, '$1' + t.charAt(0)); + var tz = -date.getTimezoneOffset(); + var K = utc || !tz ? 'Z' : tz > 0 ? '+' : '-'; + + if (!utc) { + tz = Math.abs(tz); + var tzHrs = Math.floor(tz / 60); + var tzMin = tz % 60; + K += ii(tzHrs) + ':' + ii(tzMin); + } + + format = format.replace(/(^|[^\\])K/g, '$1' + K); + var day = (utc ? date.getUTCDay() : date.getDay()) + 1; + format = format.replace(new RegExp(dddd[0], 'g'), dddd[day]); + format = format.replace(new RegExp(ddd[0], 'g'), ddd[day]); + format = format.replace(new RegExp(MMMM[0], 'g'), MMMM[M]); + format = format.replace(new RegExp(MMM[0], 'g'), MMM[M]); + format = format.replace(/\\(.)/g, '$1'); + return format; + } + }, { + key: "getTimeUnitsfromTimestamp", + value: function getTimeUnitsfromTimestamp(minX, maxX, utc) { + var w = this.w; + + if (w.config.xaxis.min !== undefined) { + minX = w.config.xaxis.min; + } + + if (w.config.xaxis.max !== undefined) { + maxX = w.config.xaxis.max; + } + + var tsMin = this.getDate(minX); + var tsMax = this.getDate(maxX); + var minD = this.formatDate(tsMin, 'yyyy MM dd HH mm ss fff').split(' '); + var maxD = this.formatDate(tsMax, 'yyyy MM dd HH mm ss fff').split(' '); + return { + minMillisecond: parseInt(minD[6], 10), + maxMillisecond: parseInt(maxD[6], 10), + minSecond: parseInt(minD[5], 10), + maxSecond: parseInt(maxD[5], 10), + minMinute: parseInt(minD[4], 10), + maxMinute: parseInt(maxD[4], 10), + minHour: parseInt(minD[3], 10), + maxHour: parseInt(maxD[3], 10), + minDate: parseInt(minD[2], 10), + maxDate: parseInt(maxD[2], 10), + minMonth: parseInt(minD[1], 10) - 1, + maxMonth: parseInt(maxD[1], 10) - 1, + minYear: parseInt(minD[0], 10), + maxYear: parseInt(maxD[0], 10) + }; + } + }, { + key: "isLeapYear", + value: function isLeapYear(year) { + return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; + } + }, { + key: "calculcateLastDaysOfMonth", + value: function calculcateLastDaysOfMonth(month, year, subtract) { + var days = this.determineDaysOfMonths(month, year); // whatever days we get, subtract the number of days asked + + return days - subtract; + } + }, { + key: "determineDaysOfYear", + value: function determineDaysOfYear(year) { + var days = 365; + + if (this.isLeapYear(year)) { + days = 366; + } + + return days; + } + }, { + key: "determineRemainingDaysOfYear", + value: function determineRemainingDaysOfYear(year, month, date) { + var dayOfYear = this.daysCntOfYear[month] + date; + if (month > 1 && this.isLeapYear()) dayOfYear++; + return dayOfYear; + } + }, { + key: "determineDaysOfMonths", + value: function determineDaysOfMonths(month, year) { + var days = 30; + month = Utils$1.monthMod(month); + + switch (true) { + case this.months30.indexOf(month) > -1: + if (month === 2) { + if (this.isLeapYear(year)) { + days = 29; + } else { + days = 28; + } + } + + break; + + case this.months31.indexOf(month) > -1: + days = 31; + break; + + default: + days = 31; + break; + } + + return days; + } + }]); + + return DateTime; + }(); + + /** + * ApexCharts RangeBar Class responsible for drawing Range/Timeline Bars. + * + * @module RangeBar + **/ + + var RangeBar = /*#__PURE__*/function (_Bar) { + _inherits(RangeBar, _Bar); + + var _super = _createSuper(RangeBar); + + function RangeBar() { + _classCallCheck(this, RangeBar); + + return _super.apply(this, arguments); + } + + _createClass(RangeBar, [{ + key: "draw", + value: function draw(series, seriesIndex) { + var w = this.w; + var graphics = new Graphics(this.ctx); + this.rangeBarOptions = this.w.config.plotOptions.rangeBar; + this.series = series; + this.seriesRangeStart = w.globals.seriesRangeStart; + this.seriesRangeEnd = w.globals.seriesRangeEnd; + this.barHelpers.initVariables(series); + var ret = graphics.group({ + class: 'apexcharts-rangebar-series apexcharts-plot-series' + }); + + for (var i = 0; i < series.length; i++) { + var x = void 0, + y = void 0, + xDivision = void 0, + // xDivision is the GRIDWIDTH divided by number of datapoints (columns) + yDivision = void 0, + // yDivision is the GRIDHEIGHT divided by number of datapoints (bars) + zeroH = void 0, + // zeroH is the baseline where 0 meets y axis + zeroW = void 0; // zeroW is the baseline where 0 meets x axis + + var realIndex = w.globals.comboCharts ? seriesIndex[i] : i; // el to which series will be drawn + + var elSeries = graphics.group({ + class: "apexcharts-series", + seriesName: Utils$1.escapeString(w.globals.seriesNames[realIndex]), + rel: i + 1, + 'data:realIndex': realIndex + }); + this.ctx.series.addCollapsedClassToSeries(elSeries, realIndex); + + if (series[i].length > 0) { + this.visibleI = this.visibleI + 1; + } + + var barHeight = 0; + var barWidth = 0; + + if (this.yRatio.length > 1) { + this.yaxisIndex = realIndex; + } + + var initPositions = this.barHelpers.initialPositions(); + y = initPositions.y; + zeroW = initPositions.zeroW; + x = initPositions.x; + barWidth = initPositions.barWidth; + xDivision = initPositions.xDivision; + zeroH = initPositions.zeroH; // eldatalabels + + var elDataLabelsWrap = graphics.group({ + class: 'apexcharts-datalabels', + 'data:realIndex': realIndex + }); + var elGoalsMarkers = graphics.group({ + class: 'apexcharts-rangebar-goals-markers', + style: "pointer-events: none" + }); + + for (var j = 0; j < w.globals.dataPoints; j++) { + var strokeWidth = this.barHelpers.getStrokeWidth(i, j, realIndex); + var y1 = this.seriesRangeStart[i][j]; + var y2 = this.seriesRangeEnd[i][j]; + var paths = null; + var barYPosition = null; + var params = { + x: x, + y: y, + strokeWidth: strokeWidth, + elSeries: elSeries + }; + yDivision = initPositions.yDivision; + barHeight = initPositions.barHeight; + + if (this.isHorizontal) { + barYPosition = y + barHeight * this.visibleI; + var seriesLen = this.seriesLen; + + if (w.config.plotOptions.bar.rangeBarGroupRows) { + seriesLen = 1; + } + + var srty = (yDivision - barHeight * seriesLen) / 2; + + if (typeof w.config.series[i].data[j] === 'undefined') { + // no data exists for further indexes, hence we need to get out the innr loop. + // As we are iterating over total datapoints, there is a possiblity the series might not have data for j index + break; + } + + if (w.config.series[i].data[j].x) { + var positions = this.detectOverlappingBars({ + i: i, + j: j, + barYPosition: barYPosition, + srty: srty, + barHeight: barHeight, + yDivision: yDivision, + initPositions: initPositions + }); + barHeight = positions.barHeight; + barYPosition = positions.barYPosition; + } + + paths = this.drawRangeBarPaths(_objectSpread2({ + indexes: { + i: i, + j: j, + realIndex: realIndex + }, + barHeight: barHeight, + barYPosition: barYPosition, + zeroW: zeroW, + yDivision: yDivision, + y1: y1, + y2: y2 + }, params)); + barWidth = paths.barWidth; + } else { + paths = this.drawRangeColumnPaths(_objectSpread2({ + indexes: { + i: i, + j: j, + realIndex: realIndex + }, + zeroH: zeroH, + barWidth: barWidth, + xDivision: xDivision + }, params)); + barHeight = paths.barHeight; + } + + var barGoalLine = this.barHelpers.drawGoalLine({ + barXPosition: paths.barXPosition, + barYPosition: barYPosition, + goalX: paths.goalX, + goalY: paths.goalY, + barHeight: barHeight, + barWidth: barWidth + }); + + if (barGoalLine) { + elGoalsMarkers.add(barGoalLine); + } + + y = paths.y; + x = paths.x; + var pathFill = this.barHelpers.getPathFillColor(series, i, j, realIndex); + var lineFill = w.globals.stroke.colors[realIndex]; + this.renderSeries({ + realIndex: realIndex, + pathFill: pathFill, + lineFill: lineFill, + j: j, + i: i, + x: x, + y: y, + y1: y1, + y2: y2, + pathFrom: paths.pathFrom, + pathTo: paths.pathTo, + strokeWidth: strokeWidth, + elSeries: elSeries, + series: series, + barHeight: barHeight, + barYPosition: barYPosition, + barWidth: barWidth, + elDataLabelsWrap: elDataLabelsWrap, + elGoalsMarkers: elGoalsMarkers, + visibleSeries: this.visibleI, + type: 'rangebar' + }); + } + + ret.add(elSeries); + } + + return ret; + } + }, { + key: "detectOverlappingBars", + value: function detectOverlappingBars(_ref) { + var i = _ref.i, + j = _ref.j, + barYPosition = _ref.barYPosition, + srty = _ref.srty, + barHeight = _ref.barHeight, + yDivision = _ref.yDivision, + initPositions = _ref.initPositions; + var w = this.w; + var overlaps = []; + var rangeName = w.config.series[i].data[j].rangeName; + var labelX = w.config.series[i].data[j].x; + var rowIndex = w.globals.labels.indexOf(labelX); + var overlappedIndex = w.globals.seriesRangeBar[i].findIndex(function (tx) { + return tx.x === labelX && tx.overlaps.length > 0; + }); + + if (w.config.plotOptions.bar.rangeBarGroupRows) { + barYPosition = srty + yDivision * rowIndex; + } else { + barYPosition = srty + barHeight * this.visibleI + yDivision * rowIndex; + } + + if (overlappedIndex > -1 && !w.config.plotOptions.bar.rangeBarOverlap) { + overlaps = w.globals.seriesRangeBar[i][overlappedIndex].overlaps; + + if (overlaps.indexOf(rangeName) > -1) { + barHeight = initPositions.barHeight / overlaps.length; + barYPosition = barHeight * this.visibleI + yDivision * (100 - parseInt(this.barOptions.barHeight, 10)) / 100 / 2 + barHeight * (this.visibleI + overlaps.indexOf(rangeName)) + yDivision * rowIndex; + } + } + + return { + barYPosition: barYPosition, + barHeight: barHeight + }; + } + }, { + key: "drawRangeColumnPaths", + value: function drawRangeColumnPaths(_ref2) { + var indexes = _ref2.indexes, + x = _ref2.x; + _ref2.strokeWidth; + var xDivision = _ref2.xDivision, + barWidth = _ref2.barWidth, + zeroH = _ref2.zeroH; + var w = this.w; + var i = indexes.i; + var j = indexes.j; + var yRatio = this.yRatio[this.yaxisIndex]; + var realIndex = indexes.realIndex; + var range = this.getRangeValue(realIndex, j); + var y1 = Math.min(range.start, range.end); + var y2 = Math.max(range.start, range.end); + + if (w.globals.isXNumeric) { + x = (w.globals.seriesX[i][j] - w.globals.minX) / this.xRatio - barWidth / 2; + } + + var barXPosition = x + barWidth * this.visibleI; + + if (typeof this.series[i][j] === 'undefined' || this.series[i][j] === null) { + y1 = zeroH; + } else { + y1 = zeroH - y1 / yRatio; + y2 = zeroH - y2 / yRatio; + } + + var barHeight = Math.abs(y2 - y1); + var paths = this.barHelpers.getColumnPaths({ + barXPosition: barXPosition, + barWidth: barWidth, + y1: y1, + y2: y2, + strokeWidth: this.strokeWidth, + series: this.seriesRangeEnd, + realIndex: indexes.realIndex, + i: realIndex, + j: j, + w: w + }); + + if (!w.globals.isXNumeric) { + x = x + xDivision; + } + + return { + pathTo: paths.pathTo, + pathFrom: paths.pathFrom, + barHeight: barHeight, + x: x, + y: y2, + goalY: this.barHelpers.getGoalValues('y', null, zeroH, i, j), + barXPosition: barXPosition + }; + } + }, { + key: "drawRangeBarPaths", + value: function drawRangeBarPaths(_ref3) { + var indexes = _ref3.indexes, + y = _ref3.y, + y1 = _ref3.y1, + y2 = _ref3.y2, + yDivision = _ref3.yDivision, + barHeight = _ref3.barHeight, + barYPosition = _ref3.barYPosition, + zeroW = _ref3.zeroW; + var w = this.w; + var x1 = zeroW + y1 / this.invertedYRatio; + var x2 = zeroW + y2 / this.invertedYRatio; + var barWidth = Math.abs(x2 - x1); + var paths = this.barHelpers.getBarpaths({ + barYPosition: barYPosition, + barHeight: barHeight, + x1: x1, + x2: x2, + strokeWidth: this.strokeWidth, + series: this.seriesRangeEnd, + i: indexes.realIndex, + realIndex: indexes.realIndex, + j: indexes.j, + w: w + }); + + if (!w.globals.isXNumeric) { + y = y + yDivision; + } + + return { + pathTo: paths.pathTo, + pathFrom: paths.pathFrom, + barWidth: barWidth, + x: x2, + goalX: this.barHelpers.getGoalValues('x', zeroW, null, indexes.realIndex, indexes.j), + y: y + }; + } + }, { + key: "getRangeValue", + value: function getRangeValue(i, j) { + var w = this.w; + return { + start: w.globals.seriesRangeStart[i][j], + end: w.globals.seriesRangeEnd[i][j] + }; + } + }, { + key: "getTooltipValues", + value: function getTooltipValues(_ref4) { + var ctx = _ref4.ctx, + seriesIndex = _ref4.seriesIndex, + dataPointIndex = _ref4.dataPointIndex, + y1 = _ref4.y1, + y2 = _ref4.y2, + w = _ref4.w; + var start = w.globals.seriesRangeStart[seriesIndex][dataPointIndex]; + var end = w.globals.seriesRangeEnd[seriesIndex][dataPointIndex]; + var ylabel = w.globals.labels[dataPointIndex]; + var seriesName = w.config.series[seriesIndex].name ? w.config.series[seriesIndex].name : ''; + var yLbFormatter = w.config.tooltip.y.formatter; + var yLbTitleFormatter = w.config.tooltip.y.title.formatter; + var opts = { + w: w, + seriesIndex: seriesIndex, + dataPointIndex: dataPointIndex, + start: start, + end: end + }; + + if (typeof yLbTitleFormatter === 'function') { + seriesName = yLbTitleFormatter(seriesName, opts); + } + + if (Number.isFinite(y1) && Number.isFinite(y2)) { + start = y1; + end = y2; + + if (w.config.series[seriesIndex].data[dataPointIndex].x) { + ylabel = w.config.series[seriesIndex].data[dataPointIndex].x + ':'; + } + + if (typeof yLbFormatter === 'function') { + ylabel = yLbFormatter(ylabel, opts); + } + } + + var startVal = ''; + var endVal = ''; + var color = w.globals.colors[seriesIndex]; + + if (w.config.tooltip.x.formatter === undefined) { + if (w.config.xaxis.type === 'datetime') { + var datetimeObj = new DateTime(ctx); + startVal = datetimeObj.formatDate(datetimeObj.getDate(start), w.config.tooltip.x.format); + endVal = datetimeObj.formatDate(datetimeObj.getDate(end), w.config.tooltip.x.format); + } else { + startVal = start; + endVal = end; + } + } else { + startVal = w.config.tooltip.x.formatter(start); + endVal = w.config.tooltip.x.formatter(end); + } + + return { + start: start, + end: end, + startVal: startVal, + endVal: endVal, + ylabel: ylabel, + color: color, + seriesName: seriesName + }; + } + }, { + key: "buildCustomTooltipHTML", + value: function buildCustomTooltipHTML(_ref5) { + var color = _ref5.color, + seriesName = _ref5.seriesName, + ylabel = _ref5.ylabel, + start = _ref5.start, + end = _ref5.end; + return '
    ' + '
    ' + (seriesName ? seriesName : '') + '
    ' + '
    ' + ylabel + ' ' + start + ' - ' + end + '
    ' + '
    '; + } + }]); + + return RangeBar; + }(Bar); + + /** + * ApexCharts Default Class for setting default options for all chart types. + * + * @module Defaults + **/ + + var Defaults = /*#__PURE__*/function () { + function Defaults(opts) { + _classCallCheck(this, Defaults); + + this.opts = opts; + } + + _createClass(Defaults, [{ + key: "line", + value: function line() { + return { + chart: { + animations: { + easing: 'swing' + } + }, + dataLabels: { + enabled: false + }, + stroke: { + width: 5, + curve: 'straight' + }, + markers: { + size: 0, + hover: { + sizeOffset: 6 + } + }, + xaxis: { + crosshairs: { + width: 1 + } + } + }; + } + }, { + key: "sparkline", + value: function sparkline(defaults) { + this.opts.yaxis[0].show = false; + this.opts.yaxis[0].title.text = ''; + this.opts.yaxis[0].axisBorder.show = false; + this.opts.yaxis[0].axisTicks.show = false; + this.opts.yaxis[0].floating = true; + var ret = { + grid: { + show: false, + padding: { + left: 0, + right: 0, + top: 0, + bottom: 0 + } + }, + legend: { + show: false + }, + xaxis: { + labels: { + show: false + }, + tooltip: { + enabled: false + }, + axisBorder: { + show: false + }, + axisTicks: { + show: false + } + }, + chart: { + toolbar: { + show: false + }, + zoom: { + enabled: false + } + }, + dataLabels: { + enabled: false + } + }; + return Utils$1.extend(defaults, ret); + } + }, { + key: "bar", + value: function bar() { + return { + chart: { + stacked: false, + animations: { + easing: 'swing' + } + }, + plotOptions: { + bar: { + dataLabels: { + position: 'center' + } + } + }, + dataLabels: { + style: { + colors: ['#fff'] + }, + background: { + enabled: false + } + }, + stroke: { + width: 0, + lineCap: 'round' + }, + fill: { + opacity: 0.85 + }, + legend: { + markers: { + shape: 'square', + radius: 2, + size: 8 + } + }, + tooltip: { + shared: false, + intersect: true + }, + xaxis: { + tooltip: { + enabled: false + }, + tickPlacement: 'between', + crosshairs: { + width: 'barWidth', + position: 'back', + fill: { + type: 'gradient' + }, + dropShadow: { + enabled: false + }, + stroke: { + width: 0 + } + } + } + }; + } + }, { + key: "candlestick", + value: function candlestick() { + var _this = this; + + return { + stroke: { + width: 1, + colors: ['#333'] + }, + fill: { + opacity: 1 + }, + dataLabels: { + enabled: false + }, + tooltip: { + shared: true, + custom: function custom(_ref) { + var seriesIndex = _ref.seriesIndex, + dataPointIndex = _ref.dataPointIndex, + w = _ref.w; + return _this._getBoxTooltip(w, seriesIndex, dataPointIndex, ['Open', 'High', '', 'Low', 'Close'], 'candlestick'); + } + }, + states: { + active: { + filter: { + type: 'none' + } + } + }, + xaxis: { + crosshairs: { + width: 1 + } + } + }; + } + }, { + key: "boxPlot", + value: function boxPlot() { + var _this2 = this; + + return { + chart: { + animations: { + dynamicAnimation: { + enabled: false + } + } + }, + stroke: { + width: 1, + colors: ['#24292e'] + }, + dataLabels: { + enabled: false + }, + tooltip: { + shared: true, + custom: function custom(_ref2) { + var seriesIndex = _ref2.seriesIndex, + dataPointIndex = _ref2.dataPointIndex, + w = _ref2.w; + return _this2._getBoxTooltip(w, seriesIndex, dataPointIndex, ['Minimum', 'Q1', 'Median', 'Q3', 'Maximum'], 'boxPlot'); + } + }, + markers: { + size: 5, + strokeWidth: 1, + strokeColors: '#111' + }, + xaxis: { + crosshairs: { + width: 1 + } + } + }; + } + }, { + key: "rangeBar", + value: function rangeBar() { + var handleTimelineTooltip = function handleTimelineTooltip(opts) { + var rangeCtx = new RangeBar(opts.ctx, null); + + var _rangeCtx$getTooltipV = rangeCtx.getTooltipValues(opts), + color = _rangeCtx$getTooltipV.color, + seriesName = _rangeCtx$getTooltipV.seriesName, + ylabel = _rangeCtx$getTooltipV.ylabel, + startVal = _rangeCtx$getTooltipV.startVal, + endVal = _rangeCtx$getTooltipV.endVal; + + return rangeCtx.buildCustomTooltipHTML({ + color: color, + seriesName: seriesName, + ylabel: ylabel, + start: startVal, + end: endVal + }); + }; + + var handleRangeColumnTooltip = function handleRangeColumnTooltip(opts) { + var rangeCtx = new RangeBar(opts.ctx, null); + + var _rangeCtx$getTooltipV2 = rangeCtx.getTooltipValues(opts), + color = _rangeCtx$getTooltipV2.color, + seriesName = _rangeCtx$getTooltipV2.seriesName, + ylabel = _rangeCtx$getTooltipV2.ylabel, + start = _rangeCtx$getTooltipV2.start, + end = _rangeCtx$getTooltipV2.end; + + return rangeCtx.buildCustomTooltipHTML({ + color: color, + seriesName: seriesName, + ylabel: ylabel, + start: start, + end: end + }); + }; + + return { + stroke: { + width: 0, + lineCap: 'square' + }, + plotOptions: { + bar: { + borderRadius: 0, + dataLabels: { + position: 'center' + } + } + }, + dataLabels: { + enabled: false, + formatter: function formatter(val, _ref3) { + _ref3.ctx; + var seriesIndex = _ref3.seriesIndex, + dataPointIndex = _ref3.dataPointIndex, + w = _ref3.w; + var start = w.globals.seriesRangeStart[seriesIndex][dataPointIndex]; + var end = w.globals.seriesRangeEnd[seriesIndex][dataPointIndex]; + return end - start; + }, + background: { + enabled: false + }, + style: { + colors: ['#fff'] + } + }, + tooltip: { + shared: false, + followCursor: true, + custom: function custom(opts) { + if (opts.w.config.plotOptions && opts.w.config.plotOptions.bar && opts.w.config.plotOptions.bar.horizontal) { + return handleTimelineTooltip(opts); + } else { + return handleRangeColumnTooltip(opts); + } + } + }, + xaxis: { + tickPlacement: 'between', + tooltip: { + enabled: false + }, + crosshairs: { + stroke: { + width: 0 + } + } + } + }; + } + }, { + key: "area", + value: function area() { + return { + stroke: { + width: 4, + fill: { + type: 'solid', + gradient: { + inverseColors: false, + shade: 'light', + type: 'vertical', + opacityFrom: 0.65, + opacityTo: 0.5, + stops: [0, 100, 100] + } + } + }, + fill: { + type: 'gradient', + gradient: { + inverseColors: false, + shade: 'light', + type: 'vertical', + opacityFrom: 0.65, + opacityTo: 0.5, + stops: [0, 100, 100] + } + }, + markers: { + size: 0, + hover: { + sizeOffset: 6 + } + }, + tooltip: { + followCursor: false + } + }; + } + }, { + key: "brush", + value: function brush(defaults) { + var ret = { + chart: { + toolbar: { + autoSelected: 'selection', + show: false + }, + zoom: { + enabled: false + } + }, + dataLabels: { + enabled: false + }, + stroke: { + width: 1 + }, + tooltip: { + enabled: false + }, + xaxis: { + tooltip: { + enabled: false + } + } + }; + return Utils$1.extend(defaults, ret); + } + }, { + key: "stacked100", + value: function stacked100(opts) { + opts.dataLabels = opts.dataLabels || {}; + opts.dataLabels.formatter = opts.dataLabels.formatter || undefined; + var existingDataLabelFormatter = opts.dataLabels.formatter; + opts.yaxis.forEach(function (yaxe, index) { + opts.yaxis[index].min = 0; + opts.yaxis[index].max = 100; + }); + var isBar = opts.chart.type === 'bar'; + + if (isBar) { + opts.dataLabels.formatter = existingDataLabelFormatter || function (val) { + if (typeof val === 'number') { + return val ? val.toFixed(0) + '%' : val; + } + + return val; + }; + } + + return opts; + } // This function removes the left and right spacing in chart for line/area/scatter if xaxis type = category for those charts by converting xaxis = numeric. Numeric/Datetime xaxis prevents the unnecessary spacing in the left/right of the chart area + + }, { + key: "convertCatToNumeric", + value: function convertCatToNumeric(opts) { + opts.xaxis.convertedCatToNumeric = true; + return opts; + } + }, { + key: "convertCatToNumericXaxis", + value: function convertCatToNumericXaxis(opts, ctx, cats) { + opts.xaxis.type = 'numeric'; + opts.xaxis.labels = opts.xaxis.labels || {}; + + opts.xaxis.labels.formatter = opts.xaxis.labels.formatter || function (val) { + return Utils$1.isNumber(val) ? Math.floor(val) : val; + }; + + var defaultFormatter = opts.xaxis.labels.formatter; + var labels = opts.xaxis.categories && opts.xaxis.categories.length ? opts.xaxis.categories : opts.labels; + + if (cats && cats.length) { + labels = cats.map(function (c) { + return Array.isArray(c) ? c : String(c); + }); + } + + if (labels && labels.length) { + opts.xaxis.labels.formatter = function (val) { + return Utils$1.isNumber(val) ? defaultFormatter(labels[Math.floor(val) - 1]) : defaultFormatter(val); + }; + } + + opts.xaxis.categories = []; + opts.labels = []; + opts.xaxis.tickAmount = opts.xaxis.tickAmount || 'dataPoints'; + return opts; + } + }, { + key: "bubble", + value: function bubble() { + return { + dataLabels: { + style: { + colors: ['#fff'] + } + }, + tooltip: { + shared: false, + intersect: true + }, + xaxis: { + crosshairs: { + width: 0 + } + }, + fill: { + type: 'solid', + gradient: { + shade: 'light', + inverse: true, + shadeIntensity: 0.55, + opacityFrom: 0.4, + opacityTo: 0.8 + } + } + }; + } + }, { + key: "scatter", + value: function scatter() { + return { + dataLabels: { + enabled: false + }, + tooltip: { + shared: false, + intersect: true + }, + markers: { + size: 6, + strokeWidth: 1, + hover: { + sizeOffset: 2 + } + } + }; + } + }, { + key: "heatmap", + value: function heatmap() { + return { + chart: { + stacked: false + }, + fill: { + opacity: 1 + }, + dataLabels: { + style: { + colors: ['#fff'] + } + }, + stroke: { + colors: ['#fff'] + }, + tooltip: { + followCursor: true, + marker: { + show: false + }, + x: { + show: false + } + }, + legend: { + position: 'top', + markers: { + shape: 'square', + size: 10, + offsetY: 2 + } + }, + grid: { + padding: { + right: 20 + } + } + }; + } + }, { + key: "treemap", + value: function treemap() { + return { + chart: { + zoom: { + enabled: false + } + }, + dataLabels: { + style: { + fontSize: 14, + fontWeight: 600, + colors: ['#fff'] + } + }, + stroke: { + show: true, + width: 2, + colors: ['#fff'] + }, + legend: { + show: false + }, + fill: { + gradient: { + stops: [0, 100] + } + }, + tooltip: { + followCursor: true, + x: { + show: false + } + }, + grid: { + padding: { + left: 0, + right: 0 + } + }, + xaxis: { + crosshairs: { + show: false + }, + tooltip: { + enabled: false + } + } + }; + } + }, { + key: "pie", + value: function pie() { + return { + chart: { + toolbar: { + show: false + } + }, + plotOptions: { + pie: { + donut: { + labels: { + show: false + } + } + } + }, + dataLabels: { + formatter: function formatter(val) { + return val.toFixed(1) + '%'; + }, + style: { + colors: ['#fff'] + }, + background: { + enabled: false + }, + dropShadow: { + enabled: true + } + }, + stroke: { + colors: ['#fff'] + }, + fill: { + opacity: 1, + gradient: { + shade: 'light', + stops: [0, 100] + } + }, + tooltip: { + theme: 'dark', + fillSeriesColor: true + }, + legend: { + position: 'right' + } + }; + } + }, { + key: "donut", + value: function donut() { + return { + chart: { + toolbar: { + show: false + } + }, + dataLabels: { + formatter: function formatter(val) { + return val.toFixed(1) + '%'; + }, + style: { + colors: ['#fff'] + }, + background: { + enabled: false + }, + dropShadow: { + enabled: true + } + }, + stroke: { + colors: ['#fff'] + }, + fill: { + opacity: 1, + gradient: { + shade: 'light', + shadeIntensity: 0.35, + stops: [80, 100], + opacityFrom: 1, + opacityTo: 1 + } + }, + tooltip: { + theme: 'dark', + fillSeriesColor: true + }, + legend: { + position: 'right' + } + }; + } + }, { + key: "polarArea", + value: function polarArea() { + this.opts.yaxis[0].tickAmount = this.opts.yaxis[0].tickAmount ? this.opts.yaxis[0].tickAmount : 6; + return { + chart: { + toolbar: { + show: false + } + }, + dataLabels: { + formatter: function formatter(val) { + return val.toFixed(1) + '%'; + }, + enabled: false + }, + stroke: { + show: true, + width: 2 + }, + fill: { + opacity: 0.7 + }, + tooltip: { + theme: 'dark', + fillSeriesColor: true + }, + legend: { + position: 'right' + } + }; + } + }, { + key: "radar", + value: function radar() { + this.opts.yaxis[0].labels.offsetY = this.opts.yaxis[0].labels.offsetY ? this.opts.yaxis[0].labels.offsetY : 6; + return { + dataLabels: { + enabled: false, + style: { + fontSize: '11px' + } + }, + stroke: { + width: 2 + }, + markers: { + size: 3, + strokeWidth: 1, + strokeOpacity: 1 + }, + fill: { + opacity: 0.2 + }, + tooltip: { + shared: false, + intersect: true, + followCursor: true + }, + grid: { + show: false + }, + xaxis: { + labels: { + formatter: function formatter(val) { + return val; + }, + style: { + colors: ['#a8a8a8'], + fontSize: '11px' + } + }, + tooltip: { + enabled: false + }, + crosshairs: { + show: false + } + } + }; + } + }, { + key: "radialBar", + value: function radialBar() { + return { + chart: { + animations: { + dynamicAnimation: { + enabled: true, + speed: 800 + } + }, + toolbar: { + show: false + } + }, + fill: { + gradient: { + shade: 'dark', + shadeIntensity: 0.4, + inverseColors: false, + type: 'diagonal2', + opacityFrom: 1, + opacityTo: 1, + stops: [70, 98, 100] + } + }, + legend: { + show: false, + position: 'right' + }, + tooltip: { + enabled: false, + fillSeriesColor: true + } + }; + } + }, { + key: "_getBoxTooltip", + value: function _getBoxTooltip(w, seriesIndex, dataPointIndex, labels, chartType) { + var o = w.globals.seriesCandleO[seriesIndex][dataPointIndex]; + var h = w.globals.seriesCandleH[seriesIndex][dataPointIndex]; + var m = w.globals.seriesCandleM[seriesIndex][dataPointIndex]; + var l = w.globals.seriesCandleL[seriesIndex][dataPointIndex]; + var c = w.globals.seriesCandleC[seriesIndex][dataPointIndex]; + + if (w.config.series[seriesIndex].type && w.config.series[seriesIndex].type !== chartType) { + return "
    \n ".concat(w.config.series[seriesIndex].name ? w.config.series[seriesIndex].name : 'series-' + (seriesIndex + 1), ": ").concat(w.globals.series[seriesIndex][dataPointIndex], "\n
    "); + } else { + return "
    ") + "
    ".concat(labels[0], ": ") + o + '
    ' + "
    ".concat(labels[1], ": ") + h + '
    ' + (m ? "
    ".concat(labels[2], ": ") + m + '
    ' : '') + "
    ".concat(labels[3], ": ") + l + '
    ' + "
    ".concat(labels[4], ": ") + c + '
    ' + '
    '; + } + } + }]); + + return Defaults; + }(); + + /** + * ApexCharts Config Class for extending user options with pre-defined ApexCharts config. + * + * @module Config + **/ + + var Config = /*#__PURE__*/function () { + function Config(opts) { + _classCallCheck(this, Config); + + this.opts = opts; + } + + _createClass(Config, [{ + key: "init", + value: function init(_ref) { + var responsiveOverride = _ref.responsiveOverride; + var opts = this.opts; + var options = new Options(); + var defaults = new Defaults(opts); + this.chartType = opts.chart.type; + + if (this.chartType === 'histogram') { + // technically, a histogram can be drawn by a column chart with no spaces in between + opts.chart.type = 'bar'; + opts = Utils$1.extend({ + plotOptions: { + bar: { + columnWidth: '99.99%' + } + } + }, opts); + } + + opts = this.extendYAxis(opts); + opts = this.extendAnnotations(opts); + var config = options.init(); + var newDefaults = {}; + + if (opts && _typeof(opts) === 'object') { + var chartDefaults = {}; + var chartTypes = ['line', 'area', 'bar', 'candlestick', 'boxPlot', 'rangeBar', 'histogram', 'bubble', 'scatter', 'heatmap', 'treemap', 'pie', 'polarArea', 'donut', 'radar', 'radialBar']; + + if (chartTypes.indexOf(opts.chart.type) !== -1) { + chartDefaults = defaults[opts.chart.type](); + } else { + chartDefaults = defaults.line(); + } + + if (opts.chart.brush && opts.chart.brush.enabled) { + chartDefaults = defaults.brush(chartDefaults); + } + + if (opts.chart.stacked && opts.chart.stackType === '100%') { + opts = defaults.stacked100(opts); + } // If user has specified a dark theme, make the tooltip dark too + + + this.checkForDarkTheme(window.Apex); // check global window Apex options + + this.checkForDarkTheme(opts); // check locally passed options + + opts.xaxis = opts.xaxis || window.Apex.xaxis || {}; // an important boolean needs to be set here + // otherwise all the charts will have this flag set to true window.Apex.xaxis is set globally + + if (!responsiveOverride) { + opts.xaxis.convertedCatToNumeric = false; + } + + opts = this.checkForCatToNumericXAxis(this.chartType, chartDefaults, opts); + + if (opts.chart.sparkline && opts.chart.sparkline.enabled || window.Apex.chart && window.Apex.chart.sparkline && window.Apex.chart.sparkline.enabled) { + chartDefaults = defaults.sparkline(chartDefaults); + } + + newDefaults = Utils$1.extend(config, chartDefaults); + } // config should cascade in this fashion + // default-config < global-apex-variable-config < user-defined-config + // get GLOBALLY defined options and merge with the default config + + + var mergedWithDefaultConfig = Utils$1.extend(newDefaults, window.Apex); // get the merged config and extend with user defined config + + config = Utils$1.extend(mergedWithDefaultConfig, opts); // some features are not supported. those mismatches should be handled + + config = this.handleUserInputErrors(config); + return config; + } + }, { + key: "checkForCatToNumericXAxis", + value: function checkForCatToNumericXAxis(chartType, chartDefaults, opts) { + var defaults = new Defaults(opts); + var isBarHorizontal = (chartType === 'bar' || chartType === 'boxPlot') && opts.plotOptions && opts.plotOptions.bar && opts.plotOptions.bar.horizontal; + var unsupportedZoom = chartType === 'pie' || chartType === 'polarArea' || chartType === 'donut' || chartType === 'radar' || chartType === 'radialBar' || chartType === 'heatmap'; + var notNumericXAxis = opts.xaxis.type !== 'datetime' && opts.xaxis.type !== 'numeric'; + var tickPlacement = opts.xaxis.tickPlacement ? opts.xaxis.tickPlacement : chartDefaults.xaxis && chartDefaults.xaxis.tickPlacement; + + if (!isBarHorizontal && !unsupportedZoom && notNumericXAxis && tickPlacement !== 'between') { + opts = defaults.convertCatToNumeric(opts); + } + + return opts; + } + }, { + key: "extendYAxis", + value: function extendYAxis(opts, w) { + var options = new Options(); + + if (typeof opts.yaxis === 'undefined' || !opts.yaxis || Array.isArray(opts.yaxis) && opts.yaxis.length === 0) { + opts.yaxis = {}; + } // extend global yaxis config (only if object is provided / not an array) + + + if (opts.yaxis.constructor !== Array && window.Apex.yaxis && window.Apex.yaxis.constructor !== Array) { + opts.yaxis = Utils$1.extend(opts.yaxis, window.Apex.yaxis); + } // as we can't extend nested object's array with extend, we need to do it first + // user can provide either an array or object in yaxis config + + + if (opts.yaxis.constructor !== Array) { + // convert the yaxis to array if user supplied object + opts.yaxis = [Utils$1.extend(options.yAxis, opts.yaxis)]; + } else { + opts.yaxis = Utils$1.extendArray(opts.yaxis, options.yAxis); + } + + var isLogY = false; + opts.yaxis.forEach(function (y) { + if (y.logarithmic) { + isLogY = true; + } + }); + var series = opts.series; + + if (w && !series) { + series = w.config.series; + } // A logarithmic chart works correctly when each series has a corresponding y-axis + // If this is not the case, we manually create yaxis for multi-series log chart + + + if (isLogY && series.length !== opts.yaxis.length && series.length) { + opts.yaxis = series.map(function (s, i) { + if (!s.name) { + series[i].name = "series-".concat(i + 1); + } + + if (opts.yaxis[i]) { + opts.yaxis[i].seriesName = series[i].name; + return opts.yaxis[i]; + } else { + var newYaxis = Utils$1.extend(options.yAxis, opts.yaxis[0]); + newYaxis.show = false; + return newYaxis; + } + }); + } + + if (isLogY && series.length > 1 && series.length !== opts.yaxis.length) { + console.warn('A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both.'); + } + + return opts; + } // annotations also accepts array, so we need to extend them manually + + }, { + key: "extendAnnotations", + value: function extendAnnotations(opts) { + if (typeof opts.annotations === 'undefined') { + opts.annotations = {}; + opts.annotations.yaxis = []; + opts.annotations.xaxis = []; + opts.annotations.points = []; + } + + opts = this.extendYAxisAnnotations(opts); + opts = this.extendXAxisAnnotations(opts); + opts = this.extendPointAnnotations(opts); + return opts; + } + }, { + key: "extendYAxisAnnotations", + value: function extendYAxisAnnotations(opts) { + var options = new Options(); + opts.annotations.yaxis = Utils$1.extendArray(typeof opts.annotations.yaxis !== 'undefined' ? opts.annotations.yaxis : [], options.yAxisAnnotation); + return opts; + } + }, { + key: "extendXAxisAnnotations", + value: function extendXAxisAnnotations(opts) { + var options = new Options(); + opts.annotations.xaxis = Utils$1.extendArray(typeof opts.annotations.xaxis !== 'undefined' ? opts.annotations.xaxis : [], options.xAxisAnnotation); + return opts; + } + }, { + key: "extendPointAnnotations", + value: function extendPointAnnotations(opts) { + var options = new Options(); + opts.annotations.points = Utils$1.extendArray(typeof opts.annotations.points !== 'undefined' ? opts.annotations.points : [], options.pointAnnotation); + return opts; + } + }, { + key: "checkForDarkTheme", + value: function checkForDarkTheme(opts) { + if (opts.theme && opts.theme.mode === 'dark') { + if (!opts.tooltip) { + opts.tooltip = {}; + } + + if (opts.tooltip.theme !== 'light') { + opts.tooltip.theme = 'dark'; + } + + if (!opts.chart.foreColor) { + opts.chart.foreColor = '#f6f7f8'; + } + + if (!opts.chart.background) { + opts.chart.background = '#424242'; + } + + if (!opts.theme.palette) { + opts.theme.palette = 'palette4'; + } + } + } + }, { + key: "handleUserInputErrors", + value: function handleUserInputErrors(opts) { + var config = opts; // conflicting tooltip option. intersect makes sure to focus on 1 point at a time. Shared cannot be used along with it + + if (config.tooltip.shared && config.tooltip.intersect) { + throw new Error('tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.'); + } + + if (config.chart.type === 'bar' && config.plotOptions.bar.horizontal) { + // No multiple yaxis for bars + if (config.yaxis.length > 1) { + throw new Error('Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false'); + } // if yaxis is reversed in horizontal bar chart, you should draw the y-axis on right side + + + if (config.yaxis[0].reversed) { + config.yaxis[0].opposite = true; + } + + config.xaxis.tooltip.enabled = false; // no xaxis tooltip for horizontal bar + + config.yaxis[0].tooltip.enabled = false; // no xaxis tooltip for horizontal bar + + config.chart.zoom.enabled = false; // no zooming for horz bars + } + + if (config.chart.type === 'bar' || config.chart.type === 'rangeBar') { + if (config.tooltip.shared) { + if (config.xaxis.crosshairs.width === 'barWidth' && config.series.length > 1) { + config.xaxis.crosshairs.width = 'tickWidth'; + } + } + } + + if (config.chart.type === 'candlestick' || config.chart.type === 'boxPlot') { + if (config.yaxis[0].reversed) { + console.warn("Reversed y-axis in ".concat(config.chart.type, " chart is not supported.")); + config.yaxis[0].reversed = false; + } + } + + return config; + } + }]); + + return Config; + }(); + + var Globals = /*#__PURE__*/function () { + function Globals() { + _classCallCheck(this, Globals); + } + + _createClass(Globals, [{ + key: "initGlobalVars", + value: function initGlobalVars(gl) { + gl.series = []; // the MAIN series array (y values) + + gl.seriesCandleO = []; + gl.seriesCandleH = []; + gl.seriesCandleM = []; + gl.seriesCandleL = []; + gl.seriesCandleC = []; + gl.seriesRangeStart = []; + gl.seriesRangeEnd = []; + gl.seriesRangeBar = []; + gl.seriesPercent = []; + gl.seriesGoals = []; + gl.seriesX = []; + gl.seriesZ = []; + gl.seriesNames = []; + gl.seriesTotals = []; + gl.seriesLog = []; + gl.seriesColors = []; + gl.stackedSeriesTotals = []; + gl.seriesXvalues = []; // we will need this in tooltip (it's x position) + // when we will have unequal x values, we will need + // some way to get x value depending on mouse pointer + + gl.seriesYvalues = []; // we will need this when deciding which series + // user hovered on + + gl.labels = []; + gl.hasGroups = false; + gl.groups = []; + gl.categoryLabels = []; + gl.timescaleLabels = []; + gl.noLabelsProvided = false; + gl.resizeTimer = null; + gl.selectionResizeTimer = null; + gl.delayedElements = []; + gl.pointsArray = []; + gl.dataLabelsRects = []; + gl.isXNumeric = false; + gl.xaxisLabelsCount = 0; + gl.skipLastTimelinelabel = false; + gl.skipFirstTimelinelabel = false; + gl.isDataXYZ = false; + gl.isMultiLineX = false; + gl.isMultipleYAxis = false; + gl.maxY = -Number.MAX_VALUE; + gl.minY = Number.MIN_VALUE; + gl.minYArr = []; + gl.maxYArr = []; + gl.maxX = -Number.MAX_VALUE; + gl.minX = Number.MAX_VALUE; + gl.initialMaxX = -Number.MAX_VALUE; + gl.initialMinX = Number.MAX_VALUE; + gl.maxDate = 0; + gl.minDate = Number.MAX_VALUE; + gl.minZ = Number.MAX_VALUE; + gl.maxZ = -Number.MAX_VALUE; + gl.minXDiff = Number.MAX_VALUE; + gl.yAxisScale = []; + gl.xAxisScale = null; + gl.xAxisTicksPositions = []; + gl.yLabelsCoords = []; + gl.yTitleCoords = []; + gl.barPadForNumericAxis = 0; + gl.padHorizontal = 0; + gl.xRange = 0; + gl.yRange = []; + gl.zRange = 0; + gl.dataPoints = 0; + gl.xTickAmount = 0; + } + }, { + key: "globalVars", + value: function globalVars(config) { + return { + chartID: null, + // chart ID - apexcharts-cuid + cuid: null, + // chart ID - random numbers excluding "apexcharts" part + events: { + beforeMount: [], + mounted: [], + updated: [], + clicked: [], + selection: [], + dataPointSelection: [], + zoomed: [], + scrolled: [] + }, + colors: [], + clientX: null, + clientY: null, + fill: { + colors: [] + }, + stroke: { + colors: [] + }, + dataLabels: { + style: { + colors: [] + } + }, + radarPolygons: { + fill: { + colors: [] + } + }, + markers: { + colors: [], + size: config.markers.size, + largestSize: 0 + }, + animationEnded: false, + isTouchDevice: 'ontouchstart' in window || navigator.msMaxTouchPoints, + isDirty: false, + // chart has been updated after the initial render. This is different than dataChanged property. isDirty means user manually called some method to update + isExecCalled: false, + // whether user updated the chart through the exec method + initialConfig: null, + // we will store the first config user has set to go back when user finishes interactions like zooming and come out of it + initialSeries: [], + lastXAxis: [], + lastYAxis: [], + columnSeries: null, + labels: [], + // store the text to draw on x axis + // Don't mutate the labels, many things including tooltips depends on it! + timescaleLabels: [], + // store the timescaleLabels Labels in another variable + noLabelsProvided: false, + // if user didn't provide any categories/labels or x values, fallback to 1,2,3,4... + allSeriesCollapsed: false, + collapsedSeries: [], + // when user collapses a series, it goes into this array + collapsedSeriesIndices: [], + // this stores the index of the collapsedSeries instead of whole object for quick access + ancillaryCollapsedSeries: [], + // when user collapses an "alwaysVisible" series, it goes into this array + ancillaryCollapsedSeriesIndices: [], + // this stores the index of the ancillaryCollapsedSeries whose y-axis is always visible + risingSeries: [], + // when user re-opens a collapsed series, it goes here + dataFormatXNumeric: false, + // boolean value to indicate user has passed numeric x values + capturedSeriesIndex: -1, + capturedDataPointIndex: -1, + selectedDataPoints: [], + goldenPadding: 35, + // this value is used at a lot of places for spacing purpose + invalidLogScale: false, + // if a user enabled log scale but the data provided is not valid to generate a log scale, turn on this flag + ignoreYAxisIndexes: [], + // when series are being collapsed in multiple y axes, ignore certain index + yAxisSameScaleIndices: [], + maxValsInArrayIndex: 0, + radialSize: 0, + selection: undefined, + zoomEnabled: config.chart.toolbar.autoSelected === 'zoom' && config.chart.toolbar.tools.zoom && config.chart.zoom.enabled, + panEnabled: config.chart.toolbar.autoSelected === 'pan' && config.chart.toolbar.tools.pan, + selectionEnabled: config.chart.toolbar.autoSelected === 'selection' && config.chart.toolbar.tools.selection, + yaxis: null, + mousedown: false, + lastClientPosition: {}, + // don't reset this variable this the chart is destroyed. It is used to detect right or left mousemove in panning + visibleXRange: undefined, + yValueDecimal: 0, + // are there floating numbers in the series. If yes, this represent the len of the decimals + total: 0, + SVGNS: 'http://www.w3.org/2000/svg', + // svg namespace + svgWidth: 0, + // the whole svg width + svgHeight: 0, + // the whole svg height + noData: false, + // whether there is any data to display or not + locale: {}, + // the current locale values will be preserved here for global access + dom: {}, + // for storing all dom nodes in this particular property + memory: { + methodsToExec: [] + }, + shouldAnimate: true, + skipLastTimelinelabel: false, + // when last label is cropped, skip drawing it + skipFirstTimelinelabel: false, + // when first label is cropped, skip drawing it + delayedElements: [], + // element which appear after animation has finished + axisCharts: true, + // chart type = line or area or bar + // (refer them also as plot charts in the code) + isDataXYZ: false, + // bool: data was provided in a {[x,y,z]} pattern + resized: false, + // bool: user has resized + resizeTimer: null, + // timeout function to make a small delay before + // drawing when user resized + comboCharts: false, + // bool: whether it's a combination of line/column + dataChanged: false, + // bool: has data changed dynamically + previousPaths: [], + // array: when data is changed, it will animate from + // previous paths + allSeriesHasEqualX: true, + pointsArray: [], + // store the points positions here to draw later on hover + // format is - [[x,y],[x,y]... [x,y]] + dataLabelsRects: [], + // store the positions of datalabels to prevent collision + lastDrawnDataLabelsIndexes: [], + hasNullValues: false, + // bool: whether series contains null values + easing: null, + // function: animation effect to apply + zoomed: false, + // whether user has zoomed or not + gridWidth: 0, + // drawable width of actual graphs (series paths) + gridHeight: 0, + // drawable height of actual graphs (series paths) + rotateXLabels: false, + defaultLabels: false, + xLabelFormatter: undefined, + // formatter for x axis labels + yLabelFormatters: [], + xaxisTooltipFormatter: undefined, + // formatter for x axis tooltip + ttKeyFormatter: undefined, + ttVal: undefined, + ttZFormatter: undefined, + LINE_HEIGHT_RATIO: 1.618, + xAxisLabelsHeight: 0, + xAxisGroupLabelsHeight: 0, + xAxisLabelsWidth: 0, + yAxisLabelsWidth: 0, + scaleX: 1, + scaleY: 1, + translateX: 0, + translateY: 0, + translateYAxisX: [], + yAxisWidths: [], + translateXAxisY: 0, + translateXAxisX: 0, + tooltip: null + }; + } + }, { + key: "init", + value: function init(config) { + var globals = this.globalVars(config); + this.initGlobalVars(globals); + globals.initialConfig = Utils$1.extend({}, config); + globals.initialSeries = Utils$1.clone(config.series); + globals.lastXAxis = Utils$1.clone(globals.initialConfig.xaxis); + globals.lastYAxis = Utils$1.clone(globals.initialConfig.yaxis); + return globals; + } + }]); + + return Globals; + }(); + + /** + * ApexCharts Base Class for extending user options with pre-defined ApexCharts config. + * + * @module Base + **/ + + var Base = /*#__PURE__*/function () { + function Base(opts) { + _classCallCheck(this, Base); + + this.opts = opts; + } + + _createClass(Base, [{ + key: "init", + value: function init() { + var config = new Config(this.opts).init({ + responsiveOverride: false + }); + var globals = new Globals().init(config); + var w = { + config: config, + globals: globals + }; + return w; + } + }]); + + return Base; + }(); + + var Data = /*#__PURE__*/function () { + function Data(ctx) { + _classCallCheck(this, Data); + + this.ctx = ctx; + this.w = ctx.w; + this.twoDSeries = []; + this.threeDSeries = []; + this.twoDSeriesX = []; + this.seriesGoals = []; + this.coreUtils = new CoreUtils(this.ctx); + } + + _createClass(Data, [{ + key: "isMultiFormat", + value: function isMultiFormat() { + return this.isFormatXY() || this.isFormat2DArray(); + } // given format is [{x, y}, {x, y}] + + }, { + key: "isFormatXY", + value: function isFormatXY() { + var series = this.w.config.series.slice(); + var sr = new Series(this.ctx); + this.activeSeriesIndex = sr.getActiveConfigSeriesIndex(); + + if (typeof series[this.activeSeriesIndex].data !== 'undefined' && series[this.activeSeriesIndex].data.length > 0 && series[this.activeSeriesIndex].data[0] !== null && typeof series[this.activeSeriesIndex].data[0].x !== 'undefined' && series[this.activeSeriesIndex].data[0] !== null) { + return true; + } + } // given format is [[x, y], [x, y]] + + }, { + key: "isFormat2DArray", + value: function isFormat2DArray() { + var series = this.w.config.series.slice(); + var sr = new Series(this.ctx); + this.activeSeriesIndex = sr.getActiveConfigSeriesIndex(); + + if (typeof series[this.activeSeriesIndex].data !== 'undefined' && series[this.activeSeriesIndex].data.length > 0 && typeof series[this.activeSeriesIndex].data[0] !== 'undefined' && series[this.activeSeriesIndex].data[0] !== null && series[this.activeSeriesIndex].data[0].constructor === Array) { + return true; + } + } + }, { + key: "handleFormat2DArray", + value: function handleFormat2DArray(ser, i) { + var cnf = this.w.config; + var gl = this.w.globals; + var isBoxPlot = cnf.chart.type === 'boxPlot' || cnf.series[i].type === 'boxPlot'; + + for (var j = 0; j < ser[i].data.length; j++) { + if (typeof ser[i].data[j][1] !== 'undefined') { + if (Array.isArray(ser[i].data[j][1]) && ser[i].data[j][1].length === 4 && !isBoxPlot) { + // candlestick nested ohlc format + this.twoDSeries.push(Utils$1.parseNumber(ser[i].data[j][1][3])); + } else if (ser[i].data[j].length >= 5) { + // candlestick non-nested ohlc format + this.twoDSeries.push(Utils$1.parseNumber(ser[i].data[j][4])); + } else { + this.twoDSeries.push(Utils$1.parseNumber(ser[i].data[j][1])); + } + + gl.dataFormatXNumeric = true; + } + + if (cnf.xaxis.type === 'datetime') { + // if timestamps are provided and xaxis type is datetime, + var ts = new Date(ser[i].data[j][0]); + ts = new Date(ts).getTime(); + this.twoDSeriesX.push(ts); + } else { + this.twoDSeriesX.push(ser[i].data[j][0]); + } + } + + for (var _j = 0; _j < ser[i].data.length; _j++) { + if (typeof ser[i].data[_j][2] !== 'undefined') { + this.threeDSeries.push(ser[i].data[_j][2]); + gl.isDataXYZ = true; + } + } + } + }, { + key: "handleFormatXY", + value: function handleFormatXY(ser, i) { + var cnf = this.w.config; + var gl = this.w.globals; + var dt = new DateTime(this.ctx); + var activeI = i; + + if (gl.collapsedSeriesIndices.indexOf(i) > -1) { + // fix #368 + activeI = this.activeSeriesIndex; + } // get series + + + for (var j = 0; j < ser[i].data.length; j++) { + if (typeof ser[i].data[j].y !== 'undefined') { + if (Array.isArray(ser[i].data[j].y)) { + this.twoDSeries.push(Utils$1.parseNumber(ser[i].data[j].y[ser[i].data[j].y.length - 1])); + } else { + this.twoDSeries.push(Utils$1.parseNumber(ser[i].data[j].y)); + } + } + + if (typeof ser[i].data[j].goals !== 'undefined' && Array.isArray(ser[i].data[j].goals)) { + if (typeof this.seriesGoals[i] === 'undefined') { + this.seriesGoals[i] = []; + } + + this.seriesGoals[i].push(ser[i].data[j].goals); + } else { + if (typeof this.seriesGoals[i] === 'undefined') { + this.seriesGoals[i] = []; + } + + this.seriesGoals[i].push(null); + } + } // get seriesX + + + for (var _j2 = 0; _j2 < ser[activeI].data.length; _j2++) { + var isXString = typeof ser[activeI].data[_j2].x === 'string'; + var isXArr = Array.isArray(ser[activeI].data[_j2].x); + var isXDate = !isXArr && !!dt.isValidDate(ser[activeI].data[_j2].x.toString()); + + if (isXString || isXDate) { + // user supplied '01/01/2017' or a date string (a JS date object is not supported) + if (isXString || cnf.xaxis.convertedCatToNumeric) { + var isRangeColumn = gl.isBarHorizontal && gl.isRangeData; + + if (cnf.xaxis.type === 'datetime' && !isRangeColumn) { + this.twoDSeriesX.push(dt.parseDate(ser[activeI].data[_j2].x)); + } else { + // a category and not a numeric x value + this.fallbackToCategory = true; + this.twoDSeriesX.push(ser[activeI].data[_j2].x); + } + } else { + if (cnf.xaxis.type === 'datetime') { + this.twoDSeriesX.push(dt.parseDate(ser[activeI].data[_j2].x.toString())); + } else { + gl.dataFormatXNumeric = true; + gl.isXNumeric = true; + this.twoDSeriesX.push(parseFloat(ser[activeI].data[_j2].x)); + } + } + } else if (isXArr) { + // a multiline label described in array format + this.fallbackToCategory = true; + this.twoDSeriesX.push(ser[activeI].data[_j2].x); + } else { + // a numeric value in x property + gl.isXNumeric = true; + gl.dataFormatXNumeric = true; + this.twoDSeriesX.push(ser[activeI].data[_j2].x); + } + } + + if (ser[i].data[0] && typeof ser[i].data[0].z !== 'undefined') { + for (var t = 0; t < ser[i].data.length; t++) { + this.threeDSeries.push(ser[i].data[t].z); + } + + gl.isDataXYZ = true; + } + } + }, { + key: "handleRangeData", + value: function handleRangeData(ser, i) { + var gl = this.w.globals; + var range = {}; + + if (this.isFormat2DArray()) { + range = this.handleRangeDataFormat('array', ser, i); + } else if (this.isFormatXY()) { + range = this.handleRangeDataFormat('xy', ser, i); + } + + gl.seriesRangeStart.push(range.start); + gl.seriesRangeEnd.push(range.end); + gl.seriesRangeBar.push(range.rangeUniques); // check for overlaps to avoid clashes in a timeline chart + + gl.seriesRangeBar.forEach(function (sr, si) { + if (sr) { + sr.forEach(function (sarr, sarri) { + sarr.y.forEach(function (arr, arri) { + for (var sri = 0; sri < sarr.y.length; sri++) { + if (arri !== sri) { + var range1y1 = arr.y1; + var range1y2 = arr.y2; + var range2y1 = sarr.y[sri].y1; + var range2y2 = sarr.y[sri].y2; + + if (range1y1 <= range2y2 && range2y1 <= range1y2) { + if (sarr.overlaps.indexOf(arr.rangeName) < 0) { + sarr.overlaps.push(arr.rangeName); + } + + if (sarr.overlaps.indexOf(sarr.y[sri].rangeName) < 0) { + sarr.overlaps.push(sarr.y[sri].rangeName); + } + } + } + } + }); + }); + } + }); + return range; + } + }, { + key: "handleCandleStickBoxData", + value: function handleCandleStickBoxData(ser, i) { + var gl = this.w.globals; + var ohlc = {}; + + if (this.isFormat2DArray()) { + ohlc = this.handleCandleStickBoxDataFormat('array', ser, i); + } else if (this.isFormatXY()) { + ohlc = this.handleCandleStickBoxDataFormat('xy', ser, i); + } + + gl.seriesCandleO[i] = ohlc.o; + gl.seriesCandleH[i] = ohlc.h; + gl.seriesCandleM[i] = ohlc.m; + gl.seriesCandleL[i] = ohlc.l; + gl.seriesCandleC[i] = ohlc.c; + return ohlc; + } + }, { + key: "handleRangeDataFormat", + value: function handleRangeDataFormat(format, ser, i) { + var rangeStart = []; + var rangeEnd = []; + var uniqueKeys = ser[i].data.filter(function (thing, index, self) { + return index === self.findIndex(function (t) { + return t.x === thing.x; + }); + }).map(function (r, index) { + return { + x: r.x, + overlaps: [], + y: [] + }; + }); + var err = 'Please provide [Start, End] values in valid format. Read more https://apexcharts.com/docs/series/#rangecharts'; + var serObj = new Series(this.ctx); + var activeIndex = serObj.getActiveConfigSeriesIndex(); + + if (format === 'array') { + if (ser[activeIndex].data[0][1].length !== 2) { + throw new Error(err); + } + + for (var j = 0; j < ser[i].data.length; j++) { + rangeStart.push(ser[i].data[j][1][0]); + rangeEnd.push(ser[i].data[j][1][1]); + } + } else if (format === 'xy') { + if (ser[activeIndex].data[0].y.length !== 2) { + throw new Error(err); + } + + var _loop = function _loop(_j3) { + var id = Utils$1.randomId(); + var x = ser[i].data[_j3].x; + var y = { + y1: ser[i].data[_j3].y[0], + y2: ser[i].data[_j3].y[1], + rangeName: id + }; // mutating config object by adding a new property + // TODO: As this is specifically for timeline rangebar charts, update the docs mentioning the series only supports xy format + + ser[i].data[_j3].rangeName = id; + var uI = uniqueKeys.findIndex(function (t) { + return t.x === x; + }); + uniqueKeys[uI].y.push(y); + rangeStart.push(y.y1); + rangeEnd.push(y.y2); + }; + + for (var _j3 = 0; _j3 < ser[i].data.length; _j3++) { + _loop(_j3); + } + } + + return { + start: rangeStart, + end: rangeEnd, + rangeUniques: uniqueKeys + }; + } + }, { + key: "handleCandleStickBoxDataFormat", + value: function handleCandleStickBoxDataFormat(format, ser, i) { + var w = this.w; + var isBoxPlot = w.config.chart.type === 'boxPlot' || w.config.series[i].type === 'boxPlot'; + var serO = []; + var serH = []; + var serM = []; + var serL = []; + var serC = []; + + if (format === 'array') { + if (isBoxPlot && ser[i].data[0].length === 6 || !isBoxPlot && ser[i].data[0].length === 5) { + for (var j = 0; j < ser[i].data.length; j++) { + serO.push(ser[i].data[j][1]); + serH.push(ser[i].data[j][2]); + + if (isBoxPlot) { + serM.push(ser[i].data[j][3]); + serL.push(ser[i].data[j][4]); + serC.push(ser[i].data[j][5]); + } else { + serL.push(ser[i].data[j][3]); + serC.push(ser[i].data[j][4]); + } + } + } else { + for (var _j4 = 0; _j4 < ser[i].data.length; _j4++) { + if (Array.isArray(ser[i].data[_j4][1])) { + serO.push(ser[i].data[_j4][1][0]); + serH.push(ser[i].data[_j4][1][1]); + + if (isBoxPlot) { + serM.push(ser[i].data[_j4][1][2]); + serL.push(ser[i].data[_j4][1][3]); + serC.push(ser[i].data[_j4][1][4]); + } else { + serL.push(ser[i].data[_j4][1][2]); + serC.push(ser[i].data[_j4][1][3]); + } + } + } + } + } else if (format === 'xy') { + for (var _j5 = 0; _j5 < ser[i].data.length; _j5++) { + if (Array.isArray(ser[i].data[_j5].y)) { + serO.push(ser[i].data[_j5].y[0]); + serH.push(ser[i].data[_j5].y[1]); + + if (isBoxPlot) { + serM.push(ser[i].data[_j5].y[2]); + serL.push(ser[i].data[_j5].y[3]); + serC.push(ser[i].data[_j5].y[4]); + } else { + serL.push(ser[i].data[_j5].y[2]); + serC.push(ser[i].data[_j5].y[3]); + } + } + } + } + + return { + o: serO, + h: serH, + m: serM, + l: serL, + c: serC + }; + } + }, { + key: "parseDataAxisCharts", + value: function parseDataAxisCharts(ser) { + var _this = this; + + var ctx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.ctx; + var cnf = this.w.config; + var gl = this.w.globals; + var dt = new DateTime(ctx); + var xlabels = cnf.labels.length > 0 ? cnf.labels.slice() : cnf.xaxis.categories.slice(); + gl.isRangeBar = cnf.chart.type === 'rangeBar' && gl.isBarHorizontal; + gl.hasGroups = cnf.xaxis.type === 'category' && cnf.xaxis.group.groups.length > 0; + + if (gl.hasGroups) { + gl.groups = cnf.xaxis.group.groups; + } + + var handleDates = function handleDates() { + for (var j = 0; j < xlabels.length; j++) { + if (typeof xlabels[j] === 'string') { + // user provided date strings + var isDate = dt.isValidDate(xlabels[j]); + + if (isDate) { + _this.twoDSeriesX.push(dt.parseDate(xlabels[j])); + } else { + throw new Error('You have provided invalid Date format. Please provide a valid JavaScript Date'); + } + } else { + // user provided timestamps + _this.twoDSeriesX.push(xlabels[j]); + } + } + }; + + for (var i = 0; i < ser.length; i++) { + this.twoDSeries = []; + this.twoDSeriesX = []; + this.threeDSeries = []; + + if (typeof ser[i].data === 'undefined') { + console.error("It is a possibility that you may have not included 'data' property in series."); + return; + } + + if (cnf.chart.type === 'rangeBar' || cnf.chart.type === 'rangeArea' || ser[i].type === 'rangeBar' || ser[i].type === 'rangeArea') { + gl.isRangeData = true; + this.handleRangeData(ser, i); + } + + if (this.isMultiFormat()) { + if (this.isFormat2DArray()) { + this.handleFormat2DArray(ser, i); + } else if (this.isFormatXY()) { + this.handleFormatXY(ser, i); + } + + if (cnf.chart.type === 'candlestick' || ser[i].type === 'candlestick' || cnf.chart.type === 'boxPlot' || ser[i].type === 'boxPlot') { + this.handleCandleStickBoxData(ser, i); + } + + gl.series.push(this.twoDSeries); + gl.labels.push(this.twoDSeriesX); + gl.seriesX.push(this.twoDSeriesX); + gl.seriesGoals = this.seriesGoals; + + if (i === this.activeSeriesIndex && !this.fallbackToCategory) { + gl.isXNumeric = true; + } + } else { + if (cnf.xaxis.type === 'datetime') { + // user didn't supplied [{x,y}] or [[x,y]], but single array in data. + // Also labels/categories were supplied differently + gl.isXNumeric = true; + handleDates(); + gl.seriesX.push(this.twoDSeriesX); + } else if (cnf.xaxis.type === 'numeric') { + gl.isXNumeric = true; + + if (xlabels.length > 0) { + this.twoDSeriesX = xlabels; + gl.seriesX.push(this.twoDSeriesX); + } + } + + gl.labels.push(this.twoDSeriesX); + var singleArray = ser[i].data.map(function (d) { + return Utils$1.parseNumber(d); + }); + gl.series.push(singleArray); + } + + gl.seriesZ.push(this.threeDSeries); + + if (ser[i].name !== undefined) { + gl.seriesNames.push(ser[i].name); + } else { + gl.seriesNames.push('series-' + parseInt(i + 1, 10)); + } // overrided default color if user inputs color with series data + + + if (ser[i].color !== undefined) { + gl.seriesColors.push(ser[i].color); + } else { + gl.seriesColors.push(undefined); + } + } + + return this.w; + } + }, { + key: "parseDataNonAxisCharts", + value: function parseDataNonAxisCharts(ser) { + var gl = this.w.globals; + var cnf = this.w.config; + gl.series = ser.slice(); + gl.seriesNames = cnf.labels.slice(); + + for (var i = 0; i < gl.series.length; i++) { + if (gl.seriesNames[i] === undefined) { + gl.seriesNames.push('series-' + (i + 1)); + } + } + + return this.w; + } + /** User possibly set string categories in xaxis.categories or labels prop + * Or didn't set xaxis labels at all - in which case we manually do it. + * If user passed series data as [[3, 2], [4, 5]] or [{ x: 3, y: 55 }], + * this shouldn't be called + * @param {array} ser - the series which user passed to the config + */ + + }, { + key: "handleExternalLabelsData", + value: function handleExternalLabelsData(ser) { + var cnf = this.w.config; + var gl = this.w.globals; + + if (cnf.xaxis.categories.length > 0) { + // user provided labels in xaxis.category prop + gl.labels = cnf.xaxis.categories; + } else if (cnf.labels.length > 0) { + // user provided labels in labels props + gl.labels = cnf.labels.slice(); + } else if (this.fallbackToCategory) { + // user provided labels in x prop in [{ x: 3, y: 55 }] data, and those labels are already stored in gl.labels[0], so just re-arrange the gl.labels array + gl.labels = gl.labels[0]; + + if (gl.seriesRangeBar.length) { + gl.seriesRangeBar.map(function (srt) { + srt.forEach(function (sr) { + if (gl.labels.indexOf(sr.x) < 0 && sr.x) { + gl.labels.push(sr.x); + } + }); + }); + gl.labels = gl.labels.filter(function (elem, pos, arr) { + return arr.indexOf(elem) === pos; + }); + } + + if (cnf.xaxis.convertedCatToNumeric) { + var defaults = new Defaults(cnf); + defaults.convertCatToNumericXaxis(cnf, this.ctx, gl.seriesX[0]); + + this._generateExternalLabels(ser); + } + } else { + this._generateExternalLabels(ser); + } + } + }, { + key: "_generateExternalLabels", + value: function _generateExternalLabels(ser) { + var gl = this.w.globals; + var cnf = this.w.config; // user didn't provided any labels, fallback to 1-2-3-4-5 + + var labelArr = []; + + if (gl.axisCharts) { + if (gl.series.length > 0) { + if (this.isFormatXY()) { + // in case there is a combo chart (boxplot/scatter) + // and there are duplicated x values, we need to eliminate duplicates + var seriesDataFiltered = cnf.series.map(function (serie, s) { + return serie.data.filter(function (v, i, a) { + return a.findIndex(function (t) { + return t.x === v.x; + }) === i; + }); + }); + var len = seriesDataFiltered.reduce(function (p, c, i, a) { + return a[p].length > c.length ? p : i; + }, 0); + + for (var i = 0; i < seriesDataFiltered[len].length; i++) { + labelArr.push(i + 1); + } + } else { + for (var _i = 0; _i < gl.series[gl.maxValsInArrayIndex].length; _i++) { + labelArr.push(_i + 1); + } + } + } + + gl.seriesX = []; // create gl.seriesX as it will be used in calculations of x positions + + for (var _i2 = 0; _i2 < ser.length; _i2++) { + gl.seriesX.push(labelArr); + } // turn on the isXNumeric flag to allow minX and maxX to function properly + + + gl.isXNumeric = true; + } // no series to pull labels from, put a 0-10 series + // possibly, user collapsed all series. Hence we can't work with above calc + + + if (labelArr.length === 0) { + labelArr = gl.axisCharts ? [] : gl.series.map(function (gls, glsi) { + return glsi + 1; + }); + + for (var _i3 = 0; _i3 < ser.length; _i3++) { + gl.seriesX.push(labelArr); + } + } // Finally, pass the labelArr in gl.labels which will be printed on x-axis + + + gl.labels = labelArr; + + if (cnf.xaxis.convertedCatToNumeric) { + gl.categoryLabels = labelArr.map(function (l) { + return cnf.xaxis.labels.formatter(l); + }); + } // Turn on this global flag to indicate no labels were provided by user + + + gl.noLabelsProvided = true; + } // Segregate user provided data into appropriate vars + + }, { + key: "parseData", + value: function parseData(ser) { + var w = this.w; + var cnf = w.config; + var gl = w.globals; + this.excludeCollapsedSeriesInYAxis(); // If we detected string in X prop of series, we fallback to category x-axis + + this.fallbackToCategory = false; + this.ctx.core.resetGlobals(); + this.ctx.core.isMultipleY(); + + if (gl.axisCharts) { + // axisCharts includes line / area / column / scatter + this.parseDataAxisCharts(ser); + } else { + // non-axis charts are pie / donut + this.parseDataNonAxisCharts(ser); + } + + this.coreUtils.getLargestSeries(); // set Null values to 0 in all series when user hides/shows some series + + if (cnf.chart.type === 'bar' && cnf.chart.stacked) { + var series = new Series(this.ctx); + gl.series = series.setNullSeriesToZeroValues(gl.series); + } + + this.coreUtils.getSeriesTotals(); + + if (gl.axisCharts) { + this.coreUtils.getStackedSeriesTotals(); + } + + this.coreUtils.getPercentSeries(); + + if (!gl.dataFormatXNumeric && (!gl.isXNumeric || cnf.xaxis.type === 'numeric' && cnf.labels.length === 0 && cnf.xaxis.categories.length === 0)) { + // x-axis labels couldn't be detected; hence try searching every option in config + this.handleExternalLabelsData(ser); + } // check for multiline xaxis + + + var catLabels = this.coreUtils.getCategoryLabels(gl.labels); + + for (var l = 0; l < catLabels.length; l++) { + if (Array.isArray(catLabels[l])) { + gl.isMultiLineX = true; + break; + } + } + } + }, { + key: "excludeCollapsedSeriesInYAxis", + value: function excludeCollapsedSeriesInYAxis() { + var _this2 = this; + + var w = this.w; + w.globals.ignoreYAxisIndexes = w.globals.collapsedSeries.map(function (collapsed, i) { + // fix issue #1215 + // if stacked, not returning collapsed.index to preserve yaxis + if (_this2.w.globals.isMultipleYAxis && !w.config.chart.stacked) { + return collapsed.index; + } + }); + } + }]); + + return Data; + }(); + + /** + * ApexCharts Formatter Class for setting value formatters for axes as well as tooltips. + * + * @module Formatters + **/ + + var Formatters = /*#__PURE__*/function () { + function Formatters(ctx) { + _classCallCheck(this, Formatters); + + this.ctx = ctx; + this.w = ctx.w; + this.tooltipKeyFormat = 'dd MMM'; + } + + _createClass(Formatters, [{ + key: "xLabelFormat", + value: function xLabelFormat(fn, val, timestamp, opts) { + var w = this.w; + + if (w.config.xaxis.type === 'datetime') { + if (w.config.xaxis.labels.formatter === undefined) { + // if user has not specified a custom formatter, use the default tooltip.x.format + if (w.config.tooltip.x.formatter === undefined) { + var datetimeObj = new DateTime(this.ctx); + return datetimeObj.formatDate(datetimeObj.getDate(val), w.config.tooltip.x.format); + } + } + } + + return fn(val, timestamp, opts); + } + }, { + key: "defaultGeneralFormatter", + value: function defaultGeneralFormatter(val) { + if (Array.isArray(val)) { + return val.map(function (v) { + return v; + }); + } else { + return val; + } + } + }, { + key: "defaultYFormatter", + value: function defaultYFormatter(v, yaxe, i) { + var w = this.w; + + if (Utils$1.isNumber(v)) { + if (w.globals.yValueDecimal !== 0) { + v = v.toFixed(yaxe.decimalsInFloat !== undefined ? yaxe.decimalsInFloat : w.globals.yValueDecimal); + } else if (w.globals.maxYArr[i] - w.globals.minYArr[i] < 5) { + v = v.toFixed(1); + } else { + v = v.toFixed(0); + } + } + + return v; + } + }, { + key: "setLabelFormatters", + value: function setLabelFormatters() { + var _this = this; + + var w = this.w; + + w.globals.xaxisTooltipFormatter = function (val) { + return _this.defaultGeneralFormatter(val); + }; + + w.globals.ttKeyFormatter = function (val) { + return _this.defaultGeneralFormatter(val); + }; + + w.globals.ttZFormatter = function (val) { + return val; + }; + + w.globals.legendFormatter = function (val) { + return _this.defaultGeneralFormatter(val); + }; // formatter function will always overwrite format property + + + if (w.config.xaxis.labels.formatter !== undefined) { + w.globals.xLabelFormatter = w.config.xaxis.labels.formatter; + } else { + w.globals.xLabelFormatter = function (val) { + if (Utils$1.isNumber(val)) { + if (!w.config.xaxis.convertedCatToNumeric && w.config.xaxis.type === 'numeric') { + if (Utils$1.isNumber(w.config.xaxis.decimalsInFloat)) { + return val.toFixed(w.config.xaxis.decimalsInFloat); + } else { + var diff = w.globals.maxX - w.globals.minX; + + if (diff > 0 && diff < 100) { + return val.toFixed(1); + } + + return val.toFixed(0); + } + } + + if (w.globals.isBarHorizontal) { + var range = w.globals.maxY - w.globals.minYArr; + + if (range < 4) { + return val.toFixed(1); + } + } + + return val.toFixed(0); + } + + return val; + }; + } + + if (typeof w.config.tooltip.x.formatter === 'function') { + w.globals.ttKeyFormatter = w.config.tooltip.x.formatter; + } else { + w.globals.ttKeyFormatter = w.globals.xLabelFormatter; + } + + if (typeof w.config.xaxis.tooltip.formatter === 'function') { + w.globals.xaxisTooltipFormatter = w.config.xaxis.tooltip.formatter; + } + + if (Array.isArray(w.config.tooltip.y)) { + w.globals.ttVal = w.config.tooltip.y; + } else { + if (w.config.tooltip.y.formatter !== undefined) { + w.globals.ttVal = w.config.tooltip.y; + } + } + + if (w.config.tooltip.z.formatter !== undefined) { + w.globals.ttZFormatter = w.config.tooltip.z.formatter; + } // legend formatter - if user wants to append any global values of series to legend text + + + if (w.config.legend.formatter !== undefined) { + w.globals.legendFormatter = w.config.legend.formatter; + } // formatter function will always overwrite format property + + + w.config.yaxis.forEach(function (yaxe, i) { + if (yaxe.labels.formatter !== undefined) { + w.globals.yLabelFormatters[i] = yaxe.labels.formatter; + } else { + w.globals.yLabelFormatters[i] = function (val) { + if (!w.globals.xyCharts) return val; + + if (Array.isArray(val)) { + return val.map(function (v) { + return _this.defaultYFormatter(v, yaxe, i); + }); + } else { + return _this.defaultYFormatter(val, yaxe, i); + } + }; + } + }); + return w.globals; + } + }, { + key: "heatmapLabelFormatters", + value: function heatmapLabelFormatters() { + var w = this.w; + + if (w.config.chart.type === 'heatmap') { + w.globals.yAxisScale[0].result = w.globals.seriesNames.slice(); // get the longest string from the labels array and also apply label formatter to it + + var longest = w.globals.seriesNames.reduce(function (a, b) { + return a.length > b.length ? a : b; + }, 0); + w.globals.yAxisScale[0].niceMax = longest; + w.globals.yAxisScale[0].niceMin = longest; + } + } + }]); + + return Formatters; + }(); + + var AxesUtils = /*#__PURE__*/function () { + function AxesUtils(ctx) { + _classCallCheck(this, AxesUtils); + + this.ctx = ctx; + this.w = ctx.w; + } // Based on the formatter function, get the label text and position + + + _createClass(AxesUtils, [{ + key: "getLabel", + value: function getLabel(labels, timescaleLabels, x, i) { + var drawnLabels = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : []; + var fontSize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '12px'; + var isLeafGroup = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : true; + var w = this.w; + var rawLabel = typeof labels[i] === 'undefined' ? '' : labels[i]; + var label = rawLabel; + var xlbFormatter = w.globals.xLabelFormatter; + var customFormatter = w.config.xaxis.labels.formatter; + var isBold = false; + var xFormat = new Formatters(this.ctx); + var timestamp = rawLabel; + + if (isLeafGroup) { + label = xFormat.xLabelFormat(xlbFormatter, rawLabel, timestamp, { + i: i, + dateFormatter: new DateTime(this.ctx).formatDate, + w: w + }); + + if (customFormatter !== undefined) { + label = customFormatter(rawLabel, labels[i], { + i: i, + dateFormatter: new DateTime(this.ctx).formatDate, + w: w + }); + } + } + + var determineHighestUnit = function determineHighestUnit(unit) { + var highestUnit = null; + timescaleLabels.forEach(function (t) { + if (t.unit === 'month') { + highestUnit = 'year'; + } else if (t.unit === 'day') { + highestUnit = 'month'; + } else if (t.unit === 'hour') { + highestUnit = 'day'; + } else if (t.unit === 'minute') { + highestUnit = 'hour'; + } + }); + return highestUnit === unit; + }; + + if (timescaleLabels.length > 0) { + isBold = determineHighestUnit(timescaleLabels[i].unit); + x = timescaleLabels[i].position; + label = timescaleLabels[i].value; + } else { + if (w.config.xaxis.type === 'datetime' && customFormatter === undefined) { + label = ''; + } + } + + if (typeof label === 'undefined') label = ''; + label = Array.isArray(label) ? label : label.toString(); + var graphics = new Graphics(this.ctx); + var textRect = {}; + + if (w.globals.rotateXLabels && isLeafGroup) { + textRect = graphics.getTextRects(label, parseInt(fontSize, 10), null, "rotate(".concat(w.config.xaxis.labels.rotate, " 0 0)"), false); + } else { + textRect = graphics.getTextRects(label, parseInt(fontSize, 10)); + } + + var allowDuplicatesInTimeScale = !w.config.xaxis.labels.showDuplicates && this.ctx.timeScale; + + if (!Array.isArray(label) && (label.indexOf('NaN') === 0 || label.toLowerCase().indexOf('invalid') === 0 || label.toLowerCase().indexOf('infinity') >= 0 || drawnLabels.indexOf(label) >= 0 && allowDuplicatesInTimeScale)) { + label = ''; + } + + return { + x: x, + text: label, + textRect: textRect, + isBold: isBold + }; + } + }, { + key: "checkLabelBasedOnTickamount", + value: function checkLabelBasedOnTickamount(i, label, labelsLen) { + var w = this.w; + var ticks = w.config.xaxis.tickAmount; + if (ticks === 'dataPoints') ticks = Math.round(w.globals.gridWidth / 120); + if (ticks > labelsLen) return label; + var tickMultiple = Math.round(labelsLen / (ticks + 1)); + + if (i % tickMultiple === 0) { + return label; + } else { + label.text = ''; + } + + return label; + } + }, { + key: "checkForOverflowingLabels", + value: function checkForOverflowingLabels(i, label, labelsLen, drawnLabels, drawnLabelsRects) { + var w = this.w; + + if (i === 0) { + // check if first label is being truncated + if (w.globals.skipFirstTimelinelabel) { + label.text = ''; + } + } + + if (i === labelsLen - 1) { + // check if last label is being truncated + if (w.globals.skipLastTimelinelabel) { + label.text = ''; + } + } + + if (w.config.xaxis.labels.hideOverlappingLabels && drawnLabels.length > 0) { + var prev = drawnLabelsRects[drawnLabelsRects.length - 1]; + + if (label.x < prev.textRect.width / (w.globals.rotateXLabels ? Math.abs(w.config.xaxis.labels.rotate) / 12 : 1.01) + prev.x) { + label.text = ''; + } + } + + return label; + } + }, { + key: "checkForReversedLabels", + value: function checkForReversedLabels(i, labels) { + var w = this.w; + + if (w.config.yaxis[i] && w.config.yaxis[i].reversed) { + labels.reverse(); + } + + return labels; + } + }, { + key: "isYAxisHidden", + value: function isYAxisHidden(index) { + var w = this.w; + var coreUtils = new CoreUtils(this.ctx); + return !w.config.yaxis[index].show || !w.config.yaxis[index].showForNullSeries && coreUtils.isSeriesNull(index) && w.globals.collapsedSeriesIndices.indexOf(index) === -1; + } // get the label color for y-axis + // realIndex is the actual series index, while i is the tick Index + + }, { + key: "getYAxisForeColor", + value: function getYAxisForeColor(yColors, realIndex) { + var w = this.w; + + if (Array.isArray(yColors) && w.globals.yAxisScale[realIndex]) { + this.ctx.theme.pushExtraColors(yColors, w.globals.yAxisScale[realIndex].result.length, false); + } + + return yColors; + } + }, { + key: "drawYAxisTicks", + value: function drawYAxisTicks(x, tickAmount, axisBorder, axisTicks, realIndex, labelsDivider, elYaxis) { + var w = this.w; + var graphics = new Graphics(this.ctx); // initial label position = 0; + + var t = w.globals.translateY; + + if (axisTicks.show && tickAmount > 0) { + if (w.config.yaxis[realIndex].opposite === true) x = x + axisTicks.width; + + for (var i = tickAmount; i >= 0; i--) { + var tY = t + tickAmount / 10 + w.config.yaxis[realIndex].labels.offsetY - 1; + + if (w.globals.isBarHorizontal) { + tY = labelsDivider * i; + } + + if (w.config.chart.type === 'heatmap') { + tY = tY + labelsDivider / 2; + } + + var elTick = graphics.drawLine(x + axisBorder.offsetX - axisTicks.width + axisTicks.offsetX, tY + axisTicks.offsetY, x + axisBorder.offsetX + axisTicks.offsetX, tY + axisTicks.offsetY, axisTicks.color); + elYaxis.add(elTick); + t = t + labelsDivider; + } + } + } + }]); + + return AxesUtils; + }(); + + var Exports = /*#__PURE__*/function () { + function Exports(ctx) { + _classCallCheck(this, Exports); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(Exports, [{ + key: "scaleSvgNode", + value: function scaleSvgNode(svg, scale) { + // get current both width and height of the svg + var svgWidth = parseFloat(svg.getAttributeNS(null, 'width')); + var svgHeight = parseFloat(svg.getAttributeNS(null, 'height')); // set new width and height based on the scale + + svg.setAttributeNS(null, 'width', svgWidth * scale); + svg.setAttributeNS(null, 'height', svgHeight * scale); + svg.setAttributeNS(null, 'viewBox', '0 0 ' + svgWidth + ' ' + svgHeight); + } + }, { + key: "fixSvgStringForIe11", + value: function fixSvgStringForIe11(svgData) { + // IE11 generates broken SVG that we have to fix by using regex + if (!Utils$1.isIE11()) { + // not IE11 - noop + return svgData.replace(/ /g, ' '); + } // replace second occurrence of "xmlns" attribute with "xmlns:xlink" with correct url + add xmlns:svgjs + + + var nXmlnsSeen = 0; + var result = svgData.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g, function (match) { + nXmlnsSeen++; + return nXmlnsSeen === 2 ? 'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"' : match; + }); // remove the invalid empty namespace declarations + + result = result.replace(/xmlns:NS\d+=""/g, ''); // remove these broken namespaces from attributes + + result = result.replace(/NS\d+:(\w+:\w+=")/g, '$1'); + return result; + } + }, { + key: "getSvgString", + value: function getSvgString(scale) { + if (scale == undefined) { + scale = 1; // if no scale is specified, don't scale... + } + + var svgString = this.w.globals.dom.Paper.svg(); // in case the scale is different than 1, the svg needs to be rescaled + + if (scale !== 1) { + // clone the svg node so it remains intact in the UI + var svgNode = this.w.globals.dom.Paper.node.cloneNode(true); // scale the image + + this.scaleSvgNode(svgNode, scale); // get the string representation of the svgNode + + svgString = new XMLSerializer().serializeToString(svgNode); + } + + return this.fixSvgStringForIe11(svgString); + } + }, { + key: "cleanup", + value: function cleanup() { + var w = this.w; // hide some elements to avoid printing them on exported svg + + var xcrosshairs = w.globals.dom.baseEl.getElementsByClassName('apexcharts-xcrosshairs'); + var ycrosshairs = w.globals.dom.baseEl.getElementsByClassName('apexcharts-ycrosshairs'); + var zoomSelectionRects = w.globals.dom.baseEl.querySelectorAll('.apexcharts-zoom-rect, .apexcharts-selection-rect'); + Array.prototype.forEach.call(zoomSelectionRects, function (z) { + z.setAttribute('width', 0); + }); + + if (xcrosshairs && xcrosshairs[0]) { + xcrosshairs[0].setAttribute('x', -500); + xcrosshairs[0].setAttribute('x1', -500); + xcrosshairs[0].setAttribute('x2', -500); + } + + if (ycrosshairs && ycrosshairs[0]) { + ycrosshairs[0].setAttribute('y', -100); + ycrosshairs[0].setAttribute('y1', -100); + ycrosshairs[0].setAttribute('y2', -100); + } + } + }, { + key: "svgUrl", + value: function svgUrl() { + this.cleanup(); + var svgData = this.getSvgString(); + var svgBlob = new Blob([svgData], { + type: 'image/svg+xml;charset=utf-8' + }); + return URL.createObjectURL(svgBlob); + } + }, { + key: "dataURI", + value: function dataURI(options) { + var _this = this; + + return new Promise(function (resolve) { + var w = _this.w; + var scale = options ? options.scale || options.width / w.globals.svgWidth : 1; + + _this.cleanup(); + + var canvas = document.createElement('canvas'); + canvas.width = w.globals.svgWidth * scale; + canvas.height = parseInt(w.globals.dom.elWrap.style.height, 10) * scale; // because of resizeNonAxisCharts + + var canvasBg = w.config.chart.background === 'transparent' ? '#fff' : w.config.chart.background; + var ctx = canvas.getContext('2d'); + ctx.fillStyle = canvasBg; + ctx.fillRect(0, 0, canvas.width * scale, canvas.height * scale); + + var svgData = _this.getSvgString(scale); + + if (window.canvg && Utils$1.isIE11()) { + // use canvg as a polyfill to workaround ie11 considering a canvas with loaded svg 'unsafe' + // without ignoreClear we lose our background color; without ignoreDimensions some grid lines become invisible + var v = window.canvg.Canvg.fromString(ctx, svgData, { + ignoreClear: true, + ignoreDimensions: true + }); // render the svg to canvas + + v.start(); + var blob = canvas.msToBlob(); // dispose - missing this will cause a memory leak + + v.stop(); + resolve({ + blob: blob + }); + } else { + var svgUrl = 'data:image/svg+xml,' + encodeURIComponent(svgData); + var img = new Image(); + img.crossOrigin = 'anonymous'; + + img.onload = function () { + ctx.drawImage(img, 0, 0); + + if (canvas.msToBlob) { + // IE and Edge can't navigate to data urls, so we return the blob instead + var _blob = canvas.msToBlob(); + + resolve({ + blob: _blob + }); + } else { + var imgURI = canvas.toDataURL('image/png'); + resolve({ + imgURI: imgURI + }); + } + }; + + img.src = svgUrl; + } + }); + } + }, { + key: "exportToSVG", + value: function exportToSVG() { + this.triggerDownload(this.svgUrl(), this.w.config.chart.toolbar.export.svg.filename, '.svg'); + } + }, { + key: "exportToPng", + value: function exportToPng() { + var _this2 = this; + + this.dataURI().then(function (_ref) { + var imgURI = _ref.imgURI, + blob = _ref.blob; + + if (blob) { + navigator.msSaveOrOpenBlob(blob, _this2.w.globals.chartID + '.png'); + } else { + _this2.triggerDownload(imgURI, _this2.w.config.chart.toolbar.export.png.filename, '.png'); + } + }); + } + }, { + key: "exportToCSV", + value: function exportToCSV(_ref2) { + var _this3 = this; + + var series = _ref2.series, + _ref2$columnDelimiter = _ref2.columnDelimiter, + columnDelimiter = _ref2$columnDelimiter === void 0 ? ',' : _ref2$columnDelimiter, + _ref2$lineDelimiter = _ref2.lineDelimiter, + lineDelimiter = _ref2$lineDelimiter === void 0 ? '\n' : _ref2$lineDelimiter; + var w = this.w; + if (!series) series = w.config.series; + var columns = []; + var rows = []; + var result = ''; + var universalBOM = "\uFEFF"; + + var isTimeStamp = function isTimeStamp(num) { + return w.config.xaxis.type === 'datetime' && String(num).length >= 10; + }; + + var dataFormat = new Data(this.ctx); + var axesUtils = new AxesUtils(this.ctx); + + var getCat = function getCat(i) { + var cat = ''; // pie / donut/ radial + + if (!w.globals.axisCharts) { + cat = w.config.labels[i]; + } else { + // xy charts + // non datetime + if (w.config.xaxis.type === 'category' || w.config.xaxis.convertedCatToNumeric) { + if (w.globals.isBarHorizontal) { + var lbFormatter = w.globals.yLabelFormatters[0]; + var sr = new Series(_this3.ctx); + var activeSeries = sr.getActiveConfigSeriesIndex(); + cat = lbFormatter(w.globals.labels[i], { + seriesIndex: activeSeries, + dataPointIndex: i, + w: w + }); + } else { + cat = axesUtils.getLabel(w.globals.labels, w.globals.timescaleLabels, 0, i).text; + } + } // datetime, but labels specified in categories or labels + + + if (w.config.xaxis.type === 'datetime') { + if (w.config.xaxis.categories.length) { + cat = w.config.xaxis.categories[i]; + } else if (w.config.labels.length) { + cat = w.config.labels[i]; + } + } + } + + if (Array.isArray(cat)) { + cat = cat.join(' '); + } + + return Utils$1.isNumber(cat) ? cat : cat.split(columnDelimiter).join(''); + }; + + var handleAxisRowsColumns = function handleAxisRowsColumns(s, sI) { + if (columns.length && sI === 0) { + rows.push(columns.join(columnDelimiter)); + } + + if (s.data && s.data.length) { + for (var i = 0; i < s.data.length; i++) { + columns = []; + var cat = getCat(i); + + if (!cat) { + if (dataFormat.isFormatXY()) { + cat = series[sI].data[i].x; + } else if (dataFormat.isFormat2DArray()) { + cat = series[sI].data[i] ? series[sI].data[i][0] : ''; + } + } + + if (sI === 0) { + columns.push(isTimeStamp(cat) ? w.config.chart.toolbar.export.csv.dateFormatter(cat) : Utils$1.isNumber(cat) ? cat : cat.split(columnDelimiter).join('')); + + for (var ci = 0; ci < w.globals.series.length; ci++) { + if (dataFormat.isFormatXY()) { + columns.push(series[ci].data[i].y); + } else { + columns.push(w.globals.series[ci][i]); + } + } + } + + if (w.config.chart.type === 'candlestick' || s.type && s.type === 'candlestick') { + columns.pop(); + columns.push(w.globals.seriesCandleO[sI][i]); + columns.push(w.globals.seriesCandleH[sI][i]); + columns.push(w.globals.seriesCandleL[sI][i]); + columns.push(w.globals.seriesCandleC[sI][i]); + } + + if (w.config.chart.type === 'boxPlot' || s.type && s.type === 'boxPlot') { + columns.pop(); + columns.push(w.globals.seriesCandleO[sI][i]); + columns.push(w.globals.seriesCandleH[sI][i]); + columns.push(w.globals.seriesCandleM[sI][i]); + columns.push(w.globals.seriesCandleL[sI][i]); + columns.push(w.globals.seriesCandleC[sI][i]); + } + + if (w.config.chart.type === 'rangeBar') { + columns.pop(); + columns.push(w.globals.seriesRangeStart[sI][i]); + columns.push(w.globals.seriesRangeEnd[sI][i]); + } + + if (columns.length) { + rows.push(columns.join(columnDelimiter)); + } + } + } + }; + + columns.push(w.config.chart.toolbar.export.csv.headerCategory); + series.map(function (s, sI) { + var sname = s.name ? s.name : "series-".concat(sI); + + if (w.globals.axisCharts) { + columns.push(sname.split(columnDelimiter).join('') ? sname.split(columnDelimiter).join('') : "series-".concat(sI)); + } + }); + + if (!w.globals.axisCharts) { + columns.push(w.config.chart.toolbar.export.csv.headerValue); + rows.push(columns.join(columnDelimiter)); + } + + series.map(function (s, sI) { + if (w.globals.axisCharts) { + handleAxisRowsColumns(s, sI); + } else { + columns = []; + columns.push(w.globals.labels[sI].split(columnDelimiter).join('')); + columns.push(w.globals.series[sI]); + rows.push(columns.join(columnDelimiter)); + } + }); + result += rows.join(lineDelimiter); + this.triggerDownload('data:text/csv; charset=utf-8,' + encodeURIComponent(universalBOM + result), w.config.chart.toolbar.export.csv.filename, '.csv'); + } + }, { + key: "triggerDownload", + value: function triggerDownload(href, filename, ext) { + var downloadLink = document.createElement('a'); + downloadLink.href = href; + downloadLink.download = (filename ? filename : this.w.globals.chartID) + ext; + document.body.appendChild(downloadLink); + downloadLink.click(); + document.body.removeChild(downloadLink); + } + }]); + + return Exports; + }(); + + /** + * ApexCharts XAxis Class for drawing X-Axis. + * + * @module XAxis + **/ + + var XAxis = /*#__PURE__*/function () { + function XAxis(ctx) { + _classCallCheck(this, XAxis); + + this.ctx = ctx; + this.w = ctx.w; + var w = this.w; + this.axesUtils = new AxesUtils(ctx); + this.xaxisLabels = w.globals.labels.slice(); + + if (w.globals.timescaleLabels.length > 0 && !w.globals.isBarHorizontal) { + // timeline labels are there and chart is not rangeabr timeline + this.xaxisLabels = w.globals.timescaleLabels.slice(); + } + + if (w.config.xaxis.overwriteCategories) { + this.xaxisLabels = w.config.xaxis.overwriteCategories; + } + + this.drawnLabels = []; + this.drawnLabelsRects = []; + + if (w.config.xaxis.position === 'top') { + this.offY = 0; + } else { + this.offY = w.globals.gridHeight + 1; + } + + this.offY = this.offY + w.config.xaxis.axisBorder.offsetY; + this.isCategoryBarHorizontal = w.config.chart.type === 'bar' && w.config.plotOptions.bar.horizontal; + this.xaxisFontSize = w.config.xaxis.labels.style.fontSize; + this.xaxisFontFamily = w.config.xaxis.labels.style.fontFamily; + this.xaxisForeColors = w.config.xaxis.labels.style.colors; + this.xaxisBorderWidth = w.config.xaxis.axisBorder.width; + + if (this.isCategoryBarHorizontal) { + this.xaxisBorderWidth = w.config.yaxis[0].axisBorder.width.toString(); + } + + if (this.xaxisBorderWidth.indexOf('%') > -1) { + this.xaxisBorderWidth = w.globals.gridWidth * parseInt(this.xaxisBorderWidth, 10) / 100; + } else { + this.xaxisBorderWidth = parseInt(this.xaxisBorderWidth, 10); + } + + this.xaxisBorderHeight = w.config.xaxis.axisBorder.height; // For bars, we will only consider single y xais, + // as we are not providing multiple yaxis for bar charts + + this.yaxis = w.config.yaxis[0]; + } + + _createClass(XAxis, [{ + key: "drawXaxis", + value: function drawXaxis() { + var w = this.w; + var graphics = new Graphics(this.ctx); + var elXaxis = graphics.group({ + class: 'apexcharts-xaxis', + transform: "translate(".concat(w.config.xaxis.offsetX, ", ").concat(w.config.xaxis.offsetY, ")") + }); + var elXaxisTexts = graphics.group({ + class: 'apexcharts-xaxis-texts-g', + transform: "translate(".concat(w.globals.translateXAxisX, ", ").concat(w.globals.translateXAxisY, ")") + }); + elXaxis.add(elXaxisTexts); + var labels = []; + + for (var i = 0; i < this.xaxisLabels.length; i++) { + labels.push(this.xaxisLabels[i]); + } + + this.drawXAxisLabelAndGroup(true, graphics, elXaxisTexts, labels, w.globals.isXNumeric, function (i, colWidth) { + return colWidth; + }); + + if (w.globals.hasGroups) { + var labelsGroup = w.globals.groups; + labels = []; + + for (var _i = 0; _i < labelsGroup.length; _i++) { + labels.push(labelsGroup[_i].title); + } + + var overwriteStyles = {}; + + if (w.config.xaxis.group.style) { + overwriteStyles.xaxisFontSize = w.config.xaxis.group.style.fontSize; + overwriteStyles.xaxisFontFamily = w.config.xaxis.group.style.fontFamily; + overwriteStyles.xaxisForeColors = w.config.xaxis.group.style.colors; + overwriteStyles.fontWeight = w.config.xaxis.group.style.fontWeight; + overwriteStyles.cssClass = w.config.xaxis.group.style.cssClass; + } + + this.drawXAxisLabelAndGroup(false, graphics, elXaxisTexts, labels, false, function (i, colWidth) { + return labelsGroup[i].cols * colWidth; + }, overwriteStyles); + } + + if (w.config.xaxis.title.text !== undefined) { + var elXaxisTitle = graphics.group({ + class: 'apexcharts-xaxis-title' + }); + var elXAxisTitleText = graphics.drawText({ + x: w.globals.gridWidth / 2 + w.config.xaxis.title.offsetX, + y: this.offY + parseFloat(this.xaxisFontSize) + w.globals.xAxisLabelsHeight + w.config.xaxis.title.offsetY, + text: w.config.xaxis.title.text, + textAnchor: 'middle', + fontSize: w.config.xaxis.title.style.fontSize, + fontFamily: w.config.xaxis.title.style.fontFamily, + fontWeight: w.config.xaxis.title.style.fontWeight, + foreColor: w.config.xaxis.title.style.color, + cssClass: 'apexcharts-xaxis-title-text ' + w.config.xaxis.title.style.cssClass + }); + elXaxisTitle.add(elXAxisTitleText); + elXaxis.add(elXaxisTitle); + } + + if (w.config.xaxis.axisBorder.show) { + var offX = w.globals.barPadForNumericAxis; + var elHorzLine = graphics.drawLine(w.globals.padHorizontal + w.config.xaxis.axisBorder.offsetX - offX, this.offY, this.xaxisBorderWidth + offX, this.offY, w.config.xaxis.axisBorder.color, 0, this.xaxisBorderHeight); + elXaxis.add(elHorzLine); + } + + return elXaxis; + } + }, { + key: "drawXAxisLabelAndGroup", + value: function drawXAxisLabelAndGroup(isLeafGroup, graphics, elXaxisTexts, labels, isXNumeric, colWidthCb) { + var _this = this; + + var overwriteStyles = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {}; + var drawnLabels = []; + var drawnLabelsRects = []; + var w = this.w; + var xaxisFontSize = overwriteStyles.xaxisFontSize || this.xaxisFontSize; + var xaxisFontFamily = overwriteStyles.xaxisFontFamily || this.xaxisFontFamily; + var xaxisForeColors = overwriteStyles.xaxisForeColors || this.xaxisForeColors; + var fontWeight = overwriteStyles.fontWeight || w.config.xaxis.labels.style.fontWeight; + var cssClass = overwriteStyles.cssClass || w.config.xaxis.labels.style.cssClass; + var colWidth; // initial x Position (keep adding column width in the loop) + + var xPos = w.globals.padHorizontal; + var labelsLen = labels.length; + /** + * labelsLen can be different (whether you are drawing x-axis labels or x-axis group labels) + * hence, we introduce dataPoints to be consistent. + * Also, in datetime/numeric xaxis, dataPoints can be misleading, so we resort to labelsLen for such xaxis type + */ + + var dataPoints = w.config.xaxis.type === 'category' ? w.globals.dataPoints : labelsLen; + + if (isXNumeric) { + var len = dataPoints > 1 ? dataPoints - 1 : dataPoints; + colWidth = w.globals.gridWidth / len; + xPos = xPos + colWidthCb(0, colWidth) / 2 + w.config.xaxis.labels.offsetX; + } else { + colWidth = w.globals.gridWidth / dataPoints; + xPos = xPos + colWidthCb(0, colWidth) + w.config.xaxis.labels.offsetX; + } + + var _loop = function _loop(i) { + var x = xPos - colWidthCb(i, colWidth) / 2 + w.config.xaxis.labels.offsetX; + + if (i === 0 && labelsLen === 1 && colWidth / 2 === xPos && dataPoints === 1) { + // single datapoint + x = w.globals.gridWidth / 2; + } + + var label = _this.axesUtils.getLabel(labels, w.globals.timescaleLabels, x, i, drawnLabels, xaxisFontSize, isLeafGroup); + + var offsetYCorrection = 28; + + if (w.globals.rotateXLabels && isLeafGroup) { + offsetYCorrection = 22; + } + + if (!isLeafGroup) { + offsetYCorrection = offsetYCorrection + parseFloat(xaxisFontSize) + (w.globals.xAxisLabelsHeight - w.globals.xAxisGroupLabelsHeight) + (w.globals.rotateXLabels ? 10 : 0); + } + + var isCategoryTickAmounts = typeof w.config.xaxis.tickAmount !== 'undefined' && w.config.xaxis.tickAmount !== 'dataPoints' && w.config.xaxis.type !== 'datetime'; + + if (isCategoryTickAmounts) { + label = _this.axesUtils.checkLabelBasedOnTickamount(i, label, labelsLen); + } else { + label = _this.axesUtils.checkForOverflowingLabels(i, label, labelsLen, drawnLabels, drawnLabelsRects); + } + + var getCatForeColor = function getCatForeColor() { + return isLeafGroup && w.config.xaxis.convertedCatToNumeric ? xaxisForeColors[w.globals.minX + i - 1] : xaxisForeColors[i]; + }; + + if (isLeafGroup && label.text) { + w.globals.xaxisLabelsCount++; + } + + if (w.config.xaxis.labels.show) { + var elText = graphics.drawText({ + x: label.x, + y: _this.offY + w.config.xaxis.labels.offsetY + offsetYCorrection - (w.config.xaxis.position === 'top' ? w.globals.xAxisHeight + w.config.xaxis.axisTicks.height - 2 : 0), + text: label.text, + textAnchor: 'middle', + fontWeight: label.isBold ? 600 : fontWeight, + fontSize: xaxisFontSize, + fontFamily: xaxisFontFamily, + foreColor: Array.isArray(xaxisForeColors) ? getCatForeColor() : xaxisForeColors, + isPlainText: false, + cssClass: (isLeafGroup ? 'apexcharts-xaxis-label ' : 'apexcharts-xaxis-group-label ') + cssClass + }); + elXaxisTexts.add(elText); + + if (isLeafGroup) { + var elTooltipTitle = document.createElementNS(w.globals.SVGNS, 'title'); + elTooltipTitle.textContent = Array.isArray(label.text) ? label.text.join(' ') : label.text; + elText.node.appendChild(elTooltipTitle); + + if (label.text !== '') { + drawnLabels.push(label.text); + drawnLabelsRects.push(label); + } + } + } + + if (i < labelsLen - 1) { + xPos = xPos + colWidthCb(i + 1, colWidth); + } + }; + + for (var i = 0; i <= labelsLen - 1; i++) { + _loop(i); + } + } // this actually becomes the vertical axis (for bar charts) + + }, { + key: "drawXaxisInversed", + value: function drawXaxisInversed(realIndex) { + var _this2 = this; + + var w = this.w; + var graphics = new Graphics(this.ctx); + var translateYAxisX = w.config.yaxis[0].opposite ? w.globals.translateYAxisX[realIndex] : 0; + var elYaxis = graphics.group({ + class: 'apexcharts-yaxis apexcharts-xaxis-inversed', + rel: realIndex + }); + var elYaxisTexts = graphics.group({ + class: 'apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g', + transform: 'translate(' + translateYAxisX + ', 0)' + }); + elYaxis.add(elYaxisTexts); + var colHeight; // initial x Position (keep adding column width in the loop) + + var yPos; + var labels = []; + + if (w.config.yaxis[realIndex].show) { + for (var i = 0; i < this.xaxisLabels.length; i++) { + labels.push(this.xaxisLabels[i]); + } + } + + colHeight = w.globals.gridHeight / labels.length; + yPos = -(colHeight / 2.2); + var lbFormatter = w.globals.yLabelFormatters[0]; + var ylabels = w.config.yaxis[0].labels; + + if (ylabels.show) { + var _loop2 = function _loop2(_i2) { + var label = typeof labels[_i2] === 'undefined' ? '' : labels[_i2]; + label = lbFormatter(label, { + seriesIndex: realIndex, + dataPointIndex: _i2, + w: w + }); + + var yColors = _this2.axesUtils.getYAxisForeColor(ylabels.style.colors, realIndex); + + var getForeColor = function getForeColor() { + return Array.isArray(yColors) ? yColors[_i2] : yColors; + }; + + var multiY = 0; + + if (Array.isArray(label)) { + multiY = label.length / 2 * parseInt(ylabels.style.fontSize, 10); + } + + var elLabel = graphics.drawText({ + x: ylabels.offsetX - 15, + y: yPos + colHeight + ylabels.offsetY - multiY, + text: label, + textAnchor: _this2.yaxis.opposite ? 'start' : 'end', + foreColor: getForeColor(), + fontSize: ylabels.style.fontSize, + fontFamily: ylabels.style.fontFamily, + fontWeight: ylabels.style.fontWeight, + isPlainText: false, + cssClass: 'apexcharts-yaxis-label ' + ylabels.style.cssClass, + maxWidth: ylabels.maxWidth + }); + elYaxisTexts.add(elLabel); + var elTooltipTitle = document.createElementNS(w.globals.SVGNS, 'title'); + elTooltipTitle.textContent = Array.isArray(label) ? label.join(' ') : label; + elLabel.node.appendChild(elTooltipTitle); + + if (w.config.yaxis[realIndex].labels.rotate !== 0) { + var labelRotatingCenter = graphics.rotateAroundCenter(elLabel.node); + elLabel.node.setAttribute('transform', "rotate(".concat(w.config.yaxis[realIndex].labels.rotate, " 0 ").concat(labelRotatingCenter.y, ")")); + } + + yPos = yPos + colHeight; + }; + + for (var _i2 = 0; _i2 <= labels.length - 1; _i2++) { + _loop2(_i2); + } + } + + if (w.config.yaxis[0].title.text !== undefined) { + var elXaxisTitle = graphics.group({ + class: 'apexcharts-yaxis-title apexcharts-xaxis-title-inversed', + transform: 'translate(' + translateYAxisX + ', 0)' + }); + var elXAxisTitleText = graphics.drawText({ + x: 0, + y: w.globals.gridHeight / 2, + text: w.config.yaxis[0].title.text, + textAnchor: 'middle', + foreColor: w.config.yaxis[0].title.style.color, + fontSize: w.config.yaxis[0].title.style.fontSize, + fontWeight: w.config.yaxis[0].title.style.fontWeight, + fontFamily: w.config.yaxis[0].title.style.fontFamily, + cssClass: 'apexcharts-yaxis-title-text ' + w.config.yaxis[0].title.style.cssClass + }); + elXaxisTitle.add(elXAxisTitleText); + elYaxis.add(elXaxisTitle); + } + + var offX = 0; + + if (this.isCategoryBarHorizontal && w.config.yaxis[0].opposite) { + offX = w.globals.gridWidth; + } + + var axisBorder = w.config.xaxis.axisBorder; + + if (axisBorder.show) { + var elVerticalLine = graphics.drawLine(w.globals.padHorizontal + axisBorder.offsetX + offX, 1 + axisBorder.offsetY, w.globals.padHorizontal + axisBorder.offsetX + offX, w.globals.gridHeight + axisBorder.offsetY, axisBorder.color, 0); + elYaxis.add(elVerticalLine); + } + + if (w.config.yaxis[0].axisTicks.show) { + this.axesUtils.drawYAxisTicks(offX, labels.length, w.config.yaxis[0].axisBorder, w.config.yaxis[0].axisTicks, 0, colHeight, elYaxis); + } + + return elYaxis; + } + }, { + key: "drawXaxisTicks", + value: function drawXaxisTicks(x1, y2, appendToElement) { + var w = this.w; + var x2 = x1; + if (x1 < 0 || x1 - 2 > w.globals.gridWidth) return; + var y1 = this.offY + w.config.xaxis.axisTicks.offsetY; + y2 = y2 + y1 + w.config.xaxis.axisTicks.height; + + if (w.config.xaxis.position === 'top') { + y2 = y1 - w.config.xaxis.axisTicks.height; + } + + if (w.config.xaxis.axisTicks.show) { + var graphics = new Graphics(this.ctx); + var line = graphics.drawLine(x1 + w.config.xaxis.axisTicks.offsetX, y1 + w.config.xaxis.offsetY, x2 + w.config.xaxis.axisTicks.offsetX, y2 + w.config.xaxis.offsetY, w.config.xaxis.axisTicks.color); // we are not returning anything, but appending directly to the element passed in param + + appendToElement.add(line); + line.node.classList.add('apexcharts-xaxis-tick'); + } + } + }, { + key: "getXAxisTicksPositions", + value: function getXAxisTicksPositions() { + var w = this.w; + var xAxisTicksPositions = []; + var xCount = this.xaxisLabels.length; + var x1 = w.globals.padHorizontal; + + if (w.globals.timescaleLabels.length > 0) { + for (var i = 0; i < xCount; i++) { + x1 = this.xaxisLabels[i].position; + xAxisTicksPositions.push(x1); + } + } else { + var xCountForCategoryCharts = xCount; + + for (var _i3 = 0; _i3 < xCountForCategoryCharts; _i3++) { + var x1Count = xCountForCategoryCharts; + + if (w.globals.isXNumeric && w.config.chart.type !== 'bar') { + x1Count -= 1; + } + + x1 = x1 + w.globals.gridWidth / x1Count; + xAxisTicksPositions.push(x1); + } + } + + return xAxisTicksPositions; + } // to rotate x-axis labels or to put ... for longer text in xaxis + + }, { + key: "xAxisLabelCorrections", + value: function xAxisLabelCorrections() { + var w = this.w; + var graphics = new Graphics(this.ctx); + var xAxis = w.globals.dom.baseEl.querySelector('.apexcharts-xaxis-texts-g'); + var xAxisTexts = w.globals.dom.baseEl.querySelectorAll('.apexcharts-xaxis-texts-g text:not(.apexcharts-xaxis-group-label)'); + var yAxisTextsInversed = w.globals.dom.baseEl.querySelectorAll('.apexcharts-yaxis-inversed text'); + var xAxisTextsInversed = w.globals.dom.baseEl.querySelectorAll('.apexcharts-xaxis-inversed-texts-g text tspan'); + + if (w.globals.rotateXLabels || w.config.xaxis.labels.rotateAlways) { + for (var xat = 0; xat < xAxisTexts.length; xat++) { + var textRotatingCenter = graphics.rotateAroundCenter(xAxisTexts[xat]); + textRotatingCenter.y = textRotatingCenter.y - 1; // + tickWidth/4; + + textRotatingCenter.x = textRotatingCenter.x + 1; + xAxisTexts[xat].setAttribute('transform', "rotate(".concat(w.config.xaxis.labels.rotate, " ").concat(textRotatingCenter.x, " ").concat(textRotatingCenter.y, ")")); + xAxisTexts[xat].setAttribute('text-anchor', "end"); + var offsetHeight = 10; + xAxis.setAttribute('transform', "translate(0, ".concat(-offsetHeight, ")")); + var tSpan = xAxisTexts[xat].childNodes; + + if (w.config.xaxis.labels.trim) { + Array.prototype.forEach.call(tSpan, function (ts) { + graphics.placeTextWithEllipsis(ts, ts.textContent, w.globals.xAxisLabelsHeight - (w.config.legend.position === 'bottom' ? 20 : 10)); + }); + } + } + } else { + (function () { + var width = w.globals.gridWidth / (w.globals.labels.length + 1); + + for (var _xat = 0; _xat < xAxisTexts.length; _xat++) { + var _tSpan = xAxisTexts[_xat].childNodes; + + if (w.config.xaxis.labels.trim && w.config.xaxis.type !== 'datetime') { + Array.prototype.forEach.call(_tSpan, function (ts) { + graphics.placeTextWithEllipsis(ts, ts.textContent, width); + }); + } + } + })(); + } + + if (yAxisTextsInversed.length > 0) { + // truncate rotated y axis in bar chart (x axis) + var firstLabelPosX = yAxisTextsInversed[yAxisTextsInversed.length - 1].getBBox(); + var lastLabelPosX = yAxisTextsInversed[0].getBBox(); + + if (firstLabelPosX.x < -20) { + yAxisTextsInversed[yAxisTextsInversed.length - 1].parentNode.removeChild(yAxisTextsInversed[yAxisTextsInversed.length - 1]); + } + + if (lastLabelPosX.x + lastLabelPosX.width > w.globals.gridWidth && !w.globals.isBarHorizontal) { + yAxisTextsInversed[0].parentNode.removeChild(yAxisTextsInversed[0]); + } // truncate rotated x axis in bar chart (y axis) + + + for (var _xat2 = 0; _xat2 < xAxisTextsInversed.length; _xat2++) { + graphics.placeTextWithEllipsis(xAxisTextsInversed[_xat2], xAxisTextsInversed[_xat2].textContent, w.config.yaxis[0].labels.maxWidth - (w.config.yaxis[0].title.text ? parseFloat(w.config.yaxis[0].title.style.fontSize) * 2 : 0) - 15); + } + } + } // renderXAxisBands() { + // let w = this.w; + // let plotBand = document.createElementNS(w.globals.SVGNS, 'rect') + // w.globals.dom.elGraphical.add(plotBand) + // } + + }]); + + return XAxis; + }(); + + /** + * ApexCharts Grid Class for drawing Cartesian Grid. + * + * @module Grid + **/ + + var Grid = /*#__PURE__*/function () { + function Grid(ctx) { + _classCallCheck(this, Grid); + + this.ctx = ctx; + this.w = ctx.w; + var w = this.w; + this.xaxisLabels = w.globals.labels.slice(); + this.axesUtils = new AxesUtils(ctx); + this.isRangeBar = w.globals.seriesRangeBar.length; + + if (w.globals.timescaleLabels.length > 0) { + // timescaleLabels labels are there + this.xaxisLabels = w.globals.timescaleLabels.slice(); + } + } // when using sparklines or when showing no grid, we need to have a grid area which is reused at many places for other calculations as well + + + _createClass(Grid, [{ + key: "drawGridArea", + value: function drawGridArea() { + var elGrid = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var w = this.w; + var graphics = new Graphics(this.ctx); + + if (elGrid === null) { + elGrid = graphics.group({ + class: 'apexcharts-grid' + }); + } + + var elVerticalLine = graphics.drawLine(w.globals.padHorizontal, 1, w.globals.padHorizontal, w.globals.gridHeight, 'transparent'); + var elHorzLine = graphics.drawLine(w.globals.padHorizontal, w.globals.gridHeight, w.globals.gridWidth, w.globals.gridHeight, 'transparent'); + elGrid.add(elHorzLine); + elGrid.add(elVerticalLine); + return elGrid; + } + }, { + key: "drawGrid", + value: function drawGrid() { + var gl = this.w.globals; + var elgrid = null; + + if (gl.axisCharts) { + // grid is drawn after xaxis and yaxis are drawn + elgrid = this.renderGrid(); + this.drawGridArea(elgrid.el); + } + + return elgrid; + } // This mask will clip off overflowing graphics from the drawable area + + }, { + key: "createGridMask", + value: function createGridMask() { + var w = this.w; + var gl = w.globals; + var graphics = new Graphics(this.ctx); + var strokeSize = Array.isArray(w.config.stroke.width) ? 0 : w.config.stroke.width; + + if (Array.isArray(w.config.stroke.width)) { + var strokeMaxSize = 0; + w.config.stroke.width.forEach(function (m) { + strokeMaxSize = Math.max(strokeMaxSize, m); + }); + strokeSize = strokeMaxSize; + } + + gl.dom.elGridRectMask = document.createElementNS(gl.SVGNS, 'clipPath'); + gl.dom.elGridRectMask.setAttribute('id', "gridRectMask".concat(gl.cuid)); + gl.dom.elGridRectMarkerMask = document.createElementNS(gl.SVGNS, 'clipPath'); + gl.dom.elGridRectMarkerMask.setAttribute('id', "gridRectMarkerMask".concat(gl.cuid)); + gl.dom.elForecastMask = document.createElementNS(gl.SVGNS, 'clipPath'); + gl.dom.elForecastMask.setAttribute('id', "forecastMask".concat(gl.cuid)); + gl.dom.elNonForecastMask = document.createElementNS(gl.SVGNS, 'clipPath'); + gl.dom.elNonForecastMask.setAttribute('id', "nonForecastMask".concat(gl.cuid)); // let barHalfWidth = 0 + + var type = w.config.chart.type; + var hasBar = type === 'bar' || type === 'rangeBar' || type === 'candlestick' || type === 'boxPlot' || w.globals.comboBarCount > 0; + var barWidthLeft = 0; + var barWidthRight = 0; + + if (hasBar && w.globals.isXNumeric && !w.globals.isBarHorizontal) { + barWidthLeft = w.config.grid.padding.left; + barWidthRight = w.config.grid.padding.right; + + if (gl.barPadForNumericAxis > barWidthLeft) { + barWidthLeft = gl.barPadForNumericAxis; + barWidthRight = gl.barPadForNumericAxis; + } + } + + gl.dom.elGridRect = graphics.drawRect(-strokeSize / 2 - barWidthLeft - 2, -strokeSize / 2, gl.gridWidth + strokeSize + barWidthRight + barWidthLeft + 4, gl.gridHeight + strokeSize, 0, '#fff'); + var markerSize = w.globals.markers.largestSize + 1; + gl.dom.elGridRectMarker = graphics.drawRect(-markerSize * 2, -markerSize * 2, gl.gridWidth + markerSize * 4, gl.gridHeight + markerSize * 4, 0, '#fff'); + gl.dom.elGridRectMask.appendChild(gl.dom.elGridRect.node); + gl.dom.elGridRectMarkerMask.appendChild(gl.dom.elGridRectMarker.node); + var defs = gl.dom.baseEl.querySelector('defs'); + defs.appendChild(gl.dom.elGridRectMask); + defs.appendChild(gl.dom.elForecastMask); + defs.appendChild(gl.dom.elNonForecastMask); + defs.appendChild(gl.dom.elGridRectMarkerMask); + } + }, { + key: "_drawGridLines", + value: function _drawGridLines(_ref) { + var i = _ref.i, + x1 = _ref.x1, + y1 = _ref.y1, + x2 = _ref.x2, + y2 = _ref.y2, + xCount = _ref.xCount, + parent = _ref.parent; + var w = this.w; + + var shouldDraw = function shouldDraw() { + if (i === 0 && w.globals.skipFirstTimelinelabel) { + return false; + } + + if (i === xCount - 1 && w.globals.skipLastTimelinelabel && !w.config.xaxis.labels.formatter) { + return false; + } + + if (w.config.chart.type === 'radar') { + return false; + } + + return true; + }; + + if (shouldDraw()) { + if (w.config.grid.xaxis.lines.show) { + this._drawGridLine({ + x1: x1, + y1: y1, + x2: x2, + y2: y2, + parent: parent + }); + } + + var y_2 = 0; + + if (w.globals.hasGroups && w.config.xaxis.tickPlacement === 'between') { + var groups = w.globals.groups; + + if (groups) { + var gacc = 0; + + for (var gi = 0; gacc < i && gi < groups.length; gi++) { + gacc += groups[gi].cols; + } + + if (gacc === i) { + y_2 = w.globals.xAxisLabelsHeight * 0.6; + } + } + } + + var xAxis = new XAxis(this.ctx); + xAxis.drawXaxisTicks(x1, y_2, this.elg); + } + } + }, { + key: "_drawGridLine", + value: function _drawGridLine(_ref2) { + var x1 = _ref2.x1, + y1 = _ref2.y1, + x2 = _ref2.x2, + y2 = _ref2.y2, + parent = _ref2.parent; + var w = this.w; + var isHorzLine = parent.node.classList.contains('apexcharts-gridlines-horizontal'); + var strokeDashArray = w.config.grid.strokeDashArray; + var offX = w.globals.barPadForNumericAxis; + var graphics = new Graphics(this); + var line = graphics.drawLine(x1 - (isHorzLine ? offX : 0), y1, x2 + (isHorzLine ? offX : 0), y2, w.config.grid.borderColor, strokeDashArray); + line.node.classList.add('apexcharts-gridline'); + parent.add(line); + } + }, { + key: "_drawGridBandRect", + value: function _drawGridBandRect(_ref3) { + var c = _ref3.c, + x1 = _ref3.x1, + y1 = _ref3.y1, + x2 = _ref3.x2, + y2 = _ref3.y2, + type = _ref3.type; + var w = this.w; + var graphics = new Graphics(this.ctx); + var offX = w.globals.barPadForNumericAxis; + if (type === 'column' && w.config.xaxis.type === 'datetime') return; + var color = w.config.grid[type].colors[c]; + var rect = graphics.drawRect(x1 - (type === 'row' ? offX : 0), y1, x2 + (type === 'row' ? offX * 2 : 0), y2, 0, color, w.config.grid[type].opacity); + this.elg.add(rect); + rect.attr('clip-path', "url(#gridRectMask".concat(w.globals.cuid, ")")); + rect.node.classList.add("apexcharts-grid-".concat(type)); + } + }, { + key: "_drawXYLines", + value: function _drawXYLines(_ref4) { + var _this = this; + + var xCount = _ref4.xCount, + tickAmount = _ref4.tickAmount; + var w = this.w; + + var datetimeLines = function datetimeLines(_ref5) { + var xC = _ref5.xC, + x1 = _ref5.x1, + y1 = _ref5.y1, + x2 = _ref5.x2, + y2 = _ref5.y2; + + for (var i = 0; i < xC; i++) { + x1 = _this.xaxisLabels[i].position; + x2 = _this.xaxisLabels[i].position; + + _this._drawGridLines({ + i: i, + x1: x1, + y1: y1, + x2: x2, + y2: y2, + xCount: xCount, + parent: _this.elgridLinesV + }); + } + }; + + var categoryLines = function categoryLines(_ref6) { + var xC = _ref6.xC, + x1 = _ref6.x1, + y1 = _ref6.y1, + x2 = _ref6.x2, + y2 = _ref6.y2; + + if (typeof w.config.xaxis.tickAmount !== 'undefined' && w.config.xaxis.tickAmount !== 'dataPoints' && w.config.xaxis.tickPlacement === 'on') { + // user has specified tickamount in a category x-axis chart + var visibleLabels = w.globals.dom.baseEl.querySelectorAll('.apexcharts-text.apexcharts-xaxis-label tspan:not(:empty)'); + visibleLabels.forEach(function (d, i) { + var textRect = d.getBBox(); + + _this._drawGridLines({ + i: i, + x1: textRect.x + textRect.width / 2, + y1: y1, + x2: textRect.x + textRect.width / 2, + y2: y2, + xCount: xCount, + parent: _this.elgridLinesV + }); + }); + } else { + for (var i = 0; i < xC + (w.globals.isXNumeric ? 0 : 1); i++) { + if (i === 0 && xC === 1 && w.globals.dataPoints === 1) { + // single datapoint + x1 = w.globals.gridWidth / 2; + x2 = x1; + } + + _this._drawGridLines({ + i: i, + x1: x1, + y1: y1, + x2: x2, + y2: y2, + xCount: xCount, + parent: _this.elgridLinesV + }); + + x1 = x1 + w.globals.gridWidth / (w.globals.isXNumeric ? xC - 1 : xC); + x2 = x1; + } + } + }; // draw vertical lines + + + if (w.config.grid.xaxis.lines.show || w.config.xaxis.axisTicks.show) { + var x1 = w.globals.padHorizontal; + var y1 = 0; + var x2; + var y2 = w.globals.gridHeight; + + if (w.globals.timescaleLabels.length) { + datetimeLines({ + xC: xCount, + x1: x1, + y1: y1, + x2: x2, + y2: y2 + }); + } else { + if (w.globals.isXNumeric) { + xCount = w.globals.xAxisScale.result.length; + } + + if (w.config.xaxis.convertedCatToNumeric) { + // in case of a convertedCatToNumeric, some labels might be skipped due to hideOverLapping labels, hence use this var to get the visible ticks + xCount = w.globals.xaxisLabelsCount; + } + + categoryLines({ + xC: xCount, + x1: x1, + y1: y1, + x2: x2, + y2: y2 + }); + } + } // draw horizontal lines + + + if (w.config.grid.yaxis.lines.show) { + var _x = 0; + var _y = 0; + var _y2 = 0; + var _x2 = w.globals.gridWidth; + var tA = tickAmount + 1; + + if (this.isRangeBar) { + tA = w.globals.labels.length; + } + + for (var i = 0; i < tA + (this.isRangeBar ? 1 : 0); i++) { + this._drawGridLine({ + x1: _x, + y1: _y, + x2: _x2, + y2: _y2, + parent: this.elgridLinesH + }); + + _y = _y + w.globals.gridHeight / (this.isRangeBar ? tA : tickAmount); + _y2 = _y; + } + } + } + }, { + key: "_drawInvertedXYLines", + value: function _drawInvertedXYLines(_ref7) { + var xCount = _ref7.xCount; + var w = this.w; // draw vertical lines + + if (w.config.grid.xaxis.lines.show || w.config.xaxis.axisTicks.show) { + var x1 = w.globals.padHorizontal; + var y1 = 0; + var x2; + var y2 = w.globals.gridHeight; + + for (var i = 0; i < xCount + 1; i++) { + if (w.config.grid.xaxis.lines.show) { + this._drawGridLine({ + x1: x1, + y1: y1, + x2: x2, + y2: y2, + parent: this.elgridLinesV + }); + } + + var xAxis = new XAxis(this.ctx); + xAxis.drawXaxisTicks(x1, 0, this.elg); + x1 = x1 + w.globals.gridWidth / xCount + 0.3; + x2 = x1; + } + } // draw horizontal lines + + + if (w.config.grid.yaxis.lines.show) { + var _x3 = 0; + var _y3 = 0; + var _y4 = 0; + var _x4 = w.globals.gridWidth; + + for (var _i = 0; _i < w.globals.dataPoints + 1; _i++) { + this._drawGridLine({ + x1: _x3, + y1: _y3, + x2: _x4, + y2: _y4, + parent: this.elgridLinesH + }); + + _y3 = _y3 + w.globals.gridHeight / w.globals.dataPoints; + _y4 = _y3; + } + } + } // actual grid rendering + + }, { + key: "renderGrid", + value: function renderGrid() { + var w = this.w; + var graphics = new Graphics(this.ctx); + this.elg = graphics.group({ + class: 'apexcharts-grid' + }); + this.elgridLinesH = graphics.group({ + class: 'apexcharts-gridlines-horizontal' + }); + this.elgridLinesV = graphics.group({ + class: 'apexcharts-gridlines-vertical' + }); + this.elg.add(this.elgridLinesH); + this.elg.add(this.elgridLinesV); + + if (!w.config.grid.show) { + this.elgridLinesV.hide(); + this.elgridLinesH.hide(); + } + + var yTickAmount = w.globals.yAxisScale.length ? w.globals.yAxisScale[0].result.length - 1 : 5; + + for (var i = 0; i < w.globals.series.length; i++) { + if (typeof w.globals.yAxisScale[i] !== 'undefined') { + yTickAmount = w.globals.yAxisScale[i].result.length - 1; + } + + if (yTickAmount > 2) break; + } + + var xCount; + + if (!w.globals.isBarHorizontal || this.isRangeBar) { + xCount = this.xaxisLabels.length; + + if (this.isRangeBar) { + yTickAmount = w.globals.labels.length; + + if (w.config.xaxis.tickAmount && w.config.xaxis.labels.formatter) { + xCount = w.config.xaxis.tickAmount; + } + } + + this._drawXYLines({ + xCount: xCount, + tickAmount: yTickAmount + }); + } else { + xCount = yTickAmount; // for horizontal bar chart, get the xaxis tickamount + + yTickAmount = w.globals.xTickAmount; + + this._drawInvertedXYLines({ + xCount: xCount, + tickAmount: yTickAmount + }); + } + + this.drawGridBands(xCount, yTickAmount); + return { + el: this.elg, + xAxisTickWidth: w.globals.gridWidth / xCount + }; + } + }, { + key: "drawGridBands", + value: function drawGridBands(xCount, tickAmount) { + var w = this.w; // rows background bands + + if (w.config.grid.row.colors !== undefined && w.config.grid.row.colors.length > 0) { + var x1 = 0; + var y1 = 0; + var y2 = w.globals.gridHeight / tickAmount; + var x2 = w.globals.gridWidth; + + for (var i = 0, c = 0; i < tickAmount; i++, c++) { + if (c >= w.config.grid.row.colors.length) { + c = 0; + } + + this._drawGridBandRect({ + c: c, + x1: x1, + y1: y1, + x2: x2, + y2: y2, + type: 'row' + }); + + y1 = y1 + w.globals.gridHeight / tickAmount; + } + } // columns background bands + + + if (w.config.grid.column.colors !== undefined && w.config.grid.column.colors.length > 0) { + var xc = !w.globals.isBarHorizontal && (w.config.xaxis.type === 'category' || w.config.xaxis.convertedCatToNumeric) ? xCount - 1 : xCount; + var _x5 = w.globals.padHorizontal; + var _y5 = 0; + + var _x6 = w.globals.padHorizontal + w.globals.gridWidth / xc; + + var _y6 = w.globals.gridHeight; + + for (var _i2 = 0, _c = 0; _i2 < xCount; _i2++, _c++) { + if (_c >= w.config.grid.column.colors.length) { + _c = 0; + } + + this._drawGridBandRect({ + c: _c, + x1: _x5, + y1: _y5, + x2: _x6, + y2: _y6, + type: 'column' + }); + + _x5 = _x5 + w.globals.gridWidth / xc; + } + } + } + }]); + + return Grid; + }(); + + var Range$1 = /*#__PURE__*/function () { + function Range(ctx) { + _classCallCheck(this, Range); + + this.ctx = ctx; + this.w = ctx.w; + } // http://stackoverflow.com/questions/326679/choosing-an-attractive-linear-scale-for-a-graphs-y-axiss + // This routine creates the Y axis values for a graph. + + + _createClass(Range, [{ + key: "niceScale", + value: function niceScale(yMin, yMax) { + var ticks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; + var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + var NO_MIN_MAX_PROVIDED = arguments.length > 4 ? arguments[4] : undefined; + var w = this.w; // Determine Range + + var range = Math.abs(yMax - yMin); + ticks = this._adjustTicksForSmallRange(ticks, index, range); + + if (ticks === 'dataPoints') { + ticks = w.globals.dataPoints - 1; + } + + if (yMin === Number.MIN_VALUE && yMax === 0 || !Utils$1.isNumber(yMin) && !Utils$1.isNumber(yMax) || yMin === Number.MIN_VALUE && yMax === -Number.MAX_VALUE) { + // when all values are 0 + yMin = 0; + yMax = ticks; + var linearScale = this.linearScale(yMin, yMax, ticks); + return linearScale; + } + + if (yMin > yMax) { + // if somehow due to some wrong config, user sent max less than min, + // adjust the min/max again + console.warn('axis.min cannot be greater than axis.max'); + yMax = yMin + 0.1; + } else if (yMin === yMax) { + // If yMin and yMax are identical, then + // adjust the yMin and yMax values to actually + // make a graph. Also avoids division by zero errors. + yMin = yMin === 0 ? 0 : yMin - 0.5; // some small value + + yMax = yMax === 0 ? 2 : yMax + 0.5; // some small value + } // Calculate Min amd Max graphical labels and graph + // increments. The number of ticks defaults to + // 10 which is the SUGGESTED value. Any tick value + // entered is used as a suggested value which is + // adjusted to be a 'pretty' value. + // + // Output will be an array of the Y axis values that + // encompass the Y values. + + + var result = []; + + if (range < 1 && NO_MIN_MAX_PROVIDED && (w.config.chart.type === 'candlestick' || w.config.series[index].type === 'candlestick' || w.config.chart.type === 'boxPlot' || w.config.series[index].type === 'boxPlot' || w.globals.isRangeData)) { + /* fix https://github.com/apexcharts/apexcharts.js/issues/430 */ + yMax = yMax * 1.01; + } + + var tiks = ticks + 1; // Adjust ticks if needed + + if (tiks < 2) { + tiks = 2; + } else if (tiks > 2) { + tiks -= 2; + } // Get raw step value + + + var tempStep = range / tiks; // Calculate pretty step value + + var mag = Math.floor(Utils$1.log10(tempStep)); + var magPow = Math.pow(10, mag); + var magMsd = Math.round(tempStep / magPow); + + if (magMsd < 1) { + magMsd = 1; + } + + var stepSize = magMsd * magPow; // build Y label array. + // Lower and upper bounds calculations + + var lb = stepSize * Math.floor(yMin / stepSize); + var ub = stepSize * Math.ceil(yMax / stepSize); // Build array + + var val = lb; + + if (NO_MIN_MAX_PROVIDED && range > 2) { + while (1) { + result.push(val); + val += stepSize; + + if (val > ub) { + break; + } + } + + return { + result: result, + niceMin: result[0], + niceMax: result[result.length - 1] + }; + } else { + result = []; + var v = yMin; + result.push(v); + var valuesDivider = Math.abs(yMax - yMin) / ticks; + + for (var i = 0; i <= ticks; i++) { + v = v + valuesDivider; + result.push(v); + } + + if (result[result.length - 2] >= yMax) { + result.pop(); + } + + return { + result: result, + niceMin: result[0], + niceMax: result[result.length - 1] + }; + } + } + }, { + key: "linearScale", + value: function linearScale(yMin, yMax) { + var ticks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; + var index = arguments.length > 3 ? arguments[3] : undefined; + var range = Math.abs(yMax - yMin); + ticks = this._adjustTicksForSmallRange(ticks, index, range); + + if (ticks === 'dataPoints') { + ticks = this.w.globals.dataPoints - 1; + } + + var step = range / ticks; + + if (ticks === Number.MAX_VALUE) { + ticks = 10; + step = 1; + } + + var result = []; + var v = yMin; + + while (ticks >= 0) { + result.push(v); + v = v + step; + ticks -= 1; + } + + return { + result: result, + niceMin: result[0], + niceMax: result[result.length - 1] + }; + } + }, { + key: "logarithmicScaleNice", + value: function logarithmicScaleNice(yMin, yMax, base) { + // Basic validation to avoid for loop starting at -inf. + if (yMax <= 0) yMax = Math.max(yMin, base); + if (yMin <= 0) yMin = Math.min(yMax, base); + var logs = []; + var logMax = Math.ceil(Math.log(yMax) / Math.log(base) + 1); // Get powers of base for our max and min + + var logMin = Math.floor(Math.log(yMin) / Math.log(base)); + + for (var i = logMin; i < logMax; i++) { + logs.push(Math.pow(base, i)); + } + + return { + result: logs, + niceMin: logs[0], + niceMax: logs[logs.length - 1] + }; + } + }, { + key: "logarithmicScale", + value: function logarithmicScale(yMin, yMax, base) { + // Basic validation to avoid for loop starting at -inf. + if (yMax <= 0) yMax = Math.max(yMin, base); + if (yMin <= 0) yMin = Math.min(yMax, base); + var logs = []; // Get the logarithmic range. + + var logMax = Math.log(yMax) / Math.log(base); + var logMin = Math.log(yMin) / Math.log(base); // Get the exact logarithmic range. + // (This is the exact number of multiples of the base there are between yMin and yMax). + + var logRange = logMax - logMin; // Round the logarithmic range to get the number of ticks we will create. + // If the chosen min/max values are multiples of each other WRT the base, this will be neat. + // If the chosen min/max aren't, we will at least still provide USEFUL ticks. + + var ticks = Math.round(logRange); // Get the logarithmic spacing between ticks. + + var logTickSpacing = logRange / ticks; // Create as many ticks as there is range in the logs. + + for (var i = 0, logTick = logMin; i < ticks; i++, logTick += logTickSpacing) { + logs.push(Math.pow(base, logTick)); + } // Add a final tick at the yMax. + + + logs.push(Math.pow(base, logMax)); + return { + result: logs, + niceMin: yMin, + niceMax: yMax + }; + } + }, { + key: "_adjustTicksForSmallRange", + value: function _adjustTicksForSmallRange(ticks, index, range) { + var newTicks = ticks; + + if (typeof index !== 'undefined' && this.w.config.yaxis[index].labels.formatter && this.w.config.yaxis[index].tickAmount === undefined) { + var formattedVal = this.w.config.yaxis[index].labels.formatter(1); + + if (Utils$1.isNumber(Number(formattedVal)) && !Utils$1.isFloat(formattedVal)) { + newTicks = Math.ceil(range); + } + } + + return newTicks < ticks ? newTicks : ticks; + } + }, { + key: "setYScaleForIndex", + value: function setYScaleForIndex(index, minY, maxY) { + var gl = this.w.globals; + var cnf = this.w.config; + var y = gl.isBarHorizontal ? cnf.xaxis : cnf.yaxis[index]; + + if (typeof gl.yAxisScale[index] === 'undefined') { + gl.yAxisScale[index] = []; + } + + var diff = Math.abs(maxY - minY); + + if (y.logarithmic && diff <= 5) { + gl.invalidLogScale = true; + } + + if (y.logarithmic && diff > 5) { + gl.allSeriesCollapsed = false; + gl.yAxisScale[index] = this.logarithmicScale(minY, maxY, y.logBase); + gl.yAxisScale[index] = y.forceNiceScale ? this.logarithmicScaleNice(minY, maxY, y.logBase) : this.logarithmicScale(minY, maxY, y.logBase); + } else { + if (maxY === -Number.MAX_VALUE || !Utils$1.isNumber(maxY)) { + // no data in the chart. Either all series collapsed or user passed a blank array + gl.yAxisScale[index] = this.linearScale(0, 5, 5); + } else { + // there is some data. Turn off the allSeriesCollapsed flag + gl.allSeriesCollapsed = false; + + if ((y.min !== undefined || y.max !== undefined) && !y.forceNiceScale) { + // fix https://github.com/apexcharts/apexcharts.js/issues/492 + gl.yAxisScale[index] = this.linearScale(minY, maxY, y.tickAmount, index); + } else { + var noMinMaxProvided = cnf.yaxis[index].max === undefined && cnf.yaxis[index].min === undefined || cnf.yaxis[index].forceNiceScale; + gl.yAxisScale[index] = this.niceScale(minY, maxY, y.tickAmount ? y.tickAmount : diff < 5 && diff > 1 ? diff + 1 : 5, index, // fix https://github.com/apexcharts/apexcharts.js/issues/397 + noMinMaxProvided); + } + } + } + } + }, { + key: "setXScale", + value: function setXScale(minX, maxX) { + var w = this.w; + var gl = w.globals; + var x = w.config.xaxis; + var diff = Math.abs(maxX - minX); + + if (maxX === -Number.MAX_VALUE || !Utils$1.isNumber(maxX)) { + // no data in the chart. Either all series collapsed or user passed a blank array + gl.xAxisScale = this.linearScale(0, 5, 5); + } else { + gl.xAxisScale = this.linearScale(minX, maxX, x.tickAmount ? x.tickAmount : diff < 5 && diff > 1 ? diff + 1 : 5, 0); + } + + return gl.xAxisScale; + } + }, { + key: "setMultipleYScales", + value: function setMultipleYScales() { + var _this = this; + + var gl = this.w.globals; + var cnf = this.w.config; + var minYArr = gl.minYArr.concat([]); + var maxYArr = gl.maxYArr.concat([]); + var scalesIndices = []; // here, we loop through the yaxis array and find the item which has "seriesName" property + + cnf.yaxis.forEach(function (yaxe, i) { + var index = i; + cnf.series.forEach(function (s, si) { + // if seriesName matches and that series is not collapsed, we use that scale + // fix issue #1215 + // proceed even if si is in gl.collapsedSeriesIndices + if (s.name === yaxe.seriesName) { + index = si; + + if (i !== si) { + scalesIndices.push({ + index: si, + similarIndex: i, + alreadyExists: true + }); + } else { + scalesIndices.push({ + index: si + }); + } + } + }); + var minY = minYArr[index]; + var maxY = maxYArr[index]; + + _this.setYScaleForIndex(i, minY, maxY); + }); + this.sameScaleInMultipleAxes(minYArr, maxYArr, scalesIndices); + } + }, { + key: "sameScaleInMultipleAxes", + value: function sameScaleInMultipleAxes(minYArr, maxYArr, scalesIndices) { + var _this2 = this; + + var cnf = this.w.config; + var gl = this.w.globals; // we got the scalesIndices array in the above code, but we need to filter out the items which doesn't have same scales + + var similarIndices = []; + scalesIndices.forEach(function (scale) { + if (scale.alreadyExists) { + if (typeof similarIndices[scale.index] === 'undefined') { + similarIndices[scale.index] = []; + } + + similarIndices[scale.index].push(scale.index); + similarIndices[scale.index].push(scale.similarIndex); + } + }); + + function intersect(a, b) { + return a.filter(function (value) { + return b.indexOf(value) !== -1; + }); + } + + gl.yAxisSameScaleIndices = similarIndices; + similarIndices.forEach(function (si, i) { + similarIndices.forEach(function (sj, j) { + if (i !== j) { + if (intersect(si, sj).length > 0) { + similarIndices[i] = similarIndices[i].concat(similarIndices[j]); + } + } + }); + }); // then, we remove duplicates from the similarScale array + + var uniqueSimilarIndices = similarIndices.map(function (item) { + return item.filter(function (i, pos) { + return item.indexOf(i) === pos; + }); + }); // sort further to remove whole duplicate arrays later + + var sortedIndices = uniqueSimilarIndices.map(function (s) { + return s.sort(); + }); // remove undefined items + + similarIndices = similarIndices.filter(function (s) { + return !!s; + }); + var indices = sortedIndices.slice(); + var stringIndices = indices.map(function (ind) { + return JSON.stringify(ind); + }); + indices = indices.filter(function (ind, p) { + return stringIndices.indexOf(JSON.stringify(ind)) === p; + }); + var sameScaleMinYArr = []; + var sameScaleMaxYArr = []; + minYArr.forEach(function (minYValue, yi) { + indices.forEach(function (scale, i) { + // we compare only the yIndex which exists in the indices array + if (scale.indexOf(yi) > -1) { + if (typeof sameScaleMinYArr[i] === 'undefined') { + sameScaleMinYArr[i] = []; + sameScaleMaxYArr[i] = []; + } + + sameScaleMinYArr[i].push({ + key: yi, + value: minYValue + }); + sameScaleMaxYArr[i].push({ + key: yi, + value: maxYArr[yi] + }); + } + }); + }); + var sameScaleMin = Array.apply(null, Array(indices.length)).map(Number.prototype.valueOf, Number.MIN_VALUE); + var sameScaleMax = Array.apply(null, Array(indices.length)).map(Number.prototype.valueOf, -Number.MAX_VALUE); + sameScaleMinYArr.forEach(function (s, i) { + s.forEach(function (sc, j) { + sameScaleMin[i] = Math.min(sc.value, sameScaleMin[i]); + }); + }); + sameScaleMaxYArr.forEach(function (s, i) { + s.forEach(function (sc, j) { + sameScaleMax[i] = Math.max(sc.value, sameScaleMax[i]); + }); + }); + minYArr.forEach(function (min, i) { + sameScaleMaxYArr.forEach(function (s, si) { + var minY = sameScaleMin[si]; + var maxY = sameScaleMax[si]; + + if (cnf.chart.stacked) { + // for stacked charts, we need to add the values + maxY = 0; + s.forEach(function (ind, k) { + // fix incorrectly adjust y scale issue #1215 + if (ind.value !== -Number.MAX_VALUE) { + maxY += ind.value; + } + + if (minY !== Number.MIN_VALUE) { + minY += sameScaleMinYArr[si][k].value; + } + }); + } + + s.forEach(function (ind, k) { + if (s[k].key === i) { + if (cnf.yaxis[i].min !== undefined) { + if (typeof cnf.yaxis[i].min === 'function') { + minY = cnf.yaxis[i].min(gl.minY); + } else { + minY = cnf.yaxis[i].min; + } + } + + if (cnf.yaxis[i].max !== undefined) { + if (typeof cnf.yaxis[i].max === 'function') { + maxY = cnf.yaxis[i].max(gl.maxY); + } else { + maxY = cnf.yaxis[i].max; + } + } + + _this2.setYScaleForIndex(i, minY, maxY); + } + }); + }); + }); + } // experimental feature which scales the y-axis to a min/max based on x-axis range + + }, { + key: "autoScaleY", + value: function autoScaleY(ctx, yaxis, e) { + if (!ctx) { + ctx = this; + } + + var w = ctx.w; + + if (w.globals.isMultipleYAxis || w.globals.collapsedSeries.length) { + // The autoScale option for multiple y-axis is turned off as it leads to buggy behavior. + // Also, when a series is collapsed, it results in incorrect behavior. Hence turned it off for that too - fixes apexcharts.js#795 + console.warn('autoScaleYaxis is not supported in a multi-yaxis chart.'); + return yaxis; + } + + var seriesX = w.globals.seriesX[0]; + var isStacked = w.config.chart.stacked; + yaxis.forEach(function (yaxe, yi) { + var firstXIndex = 0; + + for (var xi = 0; xi < seriesX.length; xi++) { + if (seriesX[xi] >= e.xaxis.min) { + firstXIndex = xi; + break; + } + } + + var initialMin = w.globals.minYArr[yi]; + var initialMax = w.globals.maxYArr[yi]; + var min, max; + var stackedSer = w.globals.stackedSeriesTotals; + w.globals.series.forEach(function (serie, sI) { + var firstValue = serie[firstXIndex]; + + if (isStacked) { + firstValue = stackedSer[firstXIndex]; + min = max = firstValue; + stackedSer.forEach(function (y, yI) { + if (seriesX[yI] <= e.xaxis.max && seriesX[yI] >= e.xaxis.min) { + if (y > max && y !== null) max = y; + if (serie[yI] < min && serie[yI] !== null) min = serie[yI]; + } + }); + } else { + min = max = firstValue; + serie.forEach(function (y, yI) { + if (seriesX[yI] <= e.xaxis.max && seriesX[yI] >= e.xaxis.min) { + var valMin = y; + var valMax = y; + w.globals.series.forEach(function (wS, wSI) { + if (y !== null) { + valMin = Math.min(wS[yI], valMin); + valMax = Math.max(wS[yI], valMax); + } + }); + if (valMax > max && valMax !== null) max = valMax; + if (valMin < min && valMin !== null) min = valMin; + } + }); + } + + if (min === undefined && max === undefined) { + min = initialMin; + max = initialMax; + } + + min *= min < 0 ? 1.1 : 0.9; + max *= max < 0 ? 0.9 : 1.1; + + if (min === 0 && max === 0) { + min = -1; + max = 1; + } + + if (max < 0 && max < initialMax) { + max = initialMax; + } + + if (min < 0 && min > initialMin) { + min = initialMin; + } + + if (yaxis.length > 1) { + yaxis[sI].min = yaxe.min === undefined ? min : yaxe.min; + yaxis[sI].max = yaxe.max === undefined ? max : yaxe.max; + } else { + yaxis[0].min = yaxe.min === undefined ? min : yaxe.min; + yaxis[0].max = yaxe.max === undefined ? max : yaxe.max; + } + }); + }); + return yaxis; + } + }]); + + return Range; + }(); + + /** + * Range is used to generates values between min and max. + * + * @module Range + **/ + + var Range = /*#__PURE__*/function () { + function Range(ctx) { + _classCallCheck(this, Range); + + this.ctx = ctx; + this.w = ctx.w; + this.scales = new Range$1(ctx); + } + + _createClass(Range, [{ + key: "init", + value: function init() { + this.setYRange(); + this.setXRange(); + this.setZRange(); + } + }, { + key: "getMinYMaxY", + value: function getMinYMaxY(startingIndex) { + var lowestY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE; + var highestY = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -Number.MAX_VALUE; + var len = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var cnf = this.w.config; + var gl = this.w.globals; + var maxY = -Number.MAX_VALUE; + var minY = Number.MIN_VALUE; + + if (len === null) { + len = startingIndex + 1; + } + + var series = gl.series; + var seriesMin = series; + var seriesMax = series; + + if (cnf.chart.type === 'candlestick') { + seriesMin = gl.seriesCandleL; + seriesMax = gl.seriesCandleH; + } else if (cnf.chart.type === 'boxPlot') { + seriesMin = gl.seriesCandleO; + seriesMax = gl.seriesCandleC; + } else if (gl.isRangeData) { + seriesMin = gl.seriesRangeStart; + seriesMax = gl.seriesRangeEnd; + } + + for (var i = startingIndex; i < len; i++) { + gl.dataPoints = Math.max(gl.dataPoints, series[i].length); + + if (gl.categoryLabels.length) { + gl.dataPoints = gl.categoryLabels.filter(function (label) { + return typeof label !== 'undefined'; + }).length; + } + + for (var j = 0; j < gl.series[i].length; j++) { + var val = series[i][j]; + + if (val !== null && Utils$1.isNumber(val)) { + if (typeof seriesMax[i][j] !== 'undefined') { + maxY = Math.max(maxY, seriesMax[i][j]); + lowestY = Math.min(lowestY, seriesMax[i][j]); + } + + if (typeof seriesMin[i][j] !== 'undefined') { + lowestY = Math.min(lowestY, seriesMin[i][j]); + highestY = Math.max(highestY, seriesMin[i][j]); + } + + if (this.w.config.chart.type === 'candlestick' || this.w.config.chart.type === 'boxPlot') { + if (typeof gl.seriesCandleC[i][j] !== 'undefined') { + maxY = Math.max(maxY, gl.seriesCandleO[i][j]); + maxY = Math.max(maxY, gl.seriesCandleH[i][j]); + maxY = Math.max(maxY, gl.seriesCandleL[i][j]); + maxY = Math.max(maxY, gl.seriesCandleC[i][j]); + + if (this.w.config.chart.type === 'boxPlot') { + maxY = Math.max(maxY, gl.seriesCandleM[i][j]); + } + } // there is a combo chart and the specified series in not either candlestick or boxplot, find the max there + + + if (cnf.series[i].type && (cnf.series[i].type !== 'candlestick' || cnf.series[i].type !== 'boxPlot')) { + maxY = Math.max(maxY, gl.series[i][j]); + lowestY = Math.min(lowestY, gl.series[i][j]); + } + + highestY = maxY; + } + + if (gl.seriesGoals[i] && gl.seriesGoals[i][j] && Array.isArray(gl.seriesGoals[i][j])) { + gl.seriesGoals[i][j].forEach(function (g) { + if (minY !== Number.MIN_VALUE) { + minY = Math.min(minY, g.value); + lowestY = minY; + } + + maxY = Math.max(maxY, g.value); + highestY = maxY; + }); + } + + if (Utils$1.isFloat(val)) { + val = Utils$1.noExponents(val); + gl.yValueDecimal = Math.max(gl.yValueDecimal, val.toString().split('.')[1].length); + } + + if (minY > seriesMin[i][j] && seriesMin[i][j] < 0) { + minY = seriesMin[i][j]; + } + } else { + gl.hasNullValues = true; + } + } + } + + if (cnf.chart.type === 'rangeBar' && gl.seriesRangeStart.length && gl.isBarHorizontal) { + minY = lowestY; + } + + if (cnf.chart.type === 'bar') { + if (minY < 0 && maxY < 0) { + // all negative values in a bar chart, hence make the max to 0 + maxY = 0; + } + + if (minY === Number.MIN_VALUE) { + minY = 0; + } + } + + return { + minY: minY, + maxY: maxY, + lowestY: lowestY, + highestY: highestY + }; + } + }, { + key: "setYRange", + value: function setYRange() { + var gl = this.w.globals; + var cnf = this.w.config; + gl.maxY = -Number.MAX_VALUE; + gl.minY = Number.MIN_VALUE; + var lowestYInAllSeries = Number.MAX_VALUE; + + if (gl.isMultipleYAxis) { + // we need to get minY and maxY for multiple y axis + for (var i = 0; i < gl.series.length; i++) { + var minYMaxYArr = this.getMinYMaxY(i, lowestYInAllSeries, null, i + 1); + gl.minYArr.push(minYMaxYArr.minY); + gl.maxYArr.push(minYMaxYArr.maxY); + lowestYInAllSeries = minYMaxYArr.lowestY; + } + } // and then, get the minY and maxY from all series + + + var minYMaxY = this.getMinYMaxY(0, lowestYInAllSeries, null, gl.series.length); + gl.minY = minYMaxY.minY; + gl.maxY = minYMaxY.maxY; + lowestYInAllSeries = minYMaxY.lowestY; + + if (cnf.chart.stacked) { + this._setStackedMinMax(); + } // if the numbers are too big, reduce the range + // for eg, if number is between 100000-110000, putting 0 as the lowest value is not so good idea. So change the gl.minY for line/area/candlesticks/boxPlot + + + if (cnf.chart.type === 'line' || cnf.chart.type === 'area' || cnf.chart.type === 'candlestick' || cnf.chart.type === 'boxPlot' || cnf.chart.type === 'rangeBar' && !gl.isBarHorizontal) { + if (gl.minY === Number.MIN_VALUE && lowestYInAllSeries !== -Number.MAX_VALUE && lowestYInAllSeries !== gl.maxY // single value possibility + ) { + var diff = gl.maxY - lowestYInAllSeries; + + if (lowestYInAllSeries >= 0 && lowestYInAllSeries <= 10 || cnf.yaxis[0].min !== undefined || cnf.yaxis[0].max !== undefined) { + // if minY is already 0/low value, we don't want to go negatives here - so this check is essential. + diff = 0; + } + + gl.minY = lowestYInAllSeries - diff * 5 / 100; + /* fix https://github.com/apexcharts/apexcharts.js/issues/614 */ + + /* fix https://github.com/apexcharts/apexcharts.js/issues/968 */ + + if (lowestYInAllSeries > 0 && gl.minY < 0) { + gl.minY = 0; + } + /* fix https://github.com/apexcharts/apexcharts.js/issues/426 */ + + + gl.maxY = gl.maxY + diff * 5 / 100; + } + } + + cnf.yaxis.forEach(function (yaxe, index) { + // override all min/max values by user defined values (y axis) + if (yaxe.max !== undefined) { + if (typeof yaxe.max === 'number') { + gl.maxYArr[index] = yaxe.max; + } else if (typeof yaxe.max === 'function') { + // fixes apexcharts.js/issues/2098 + gl.maxYArr[index] = yaxe.max(gl.isMultipleYAxis ? gl.maxYArr[index] : gl.maxY); + } // gl.maxY is for single y-axis chart, it will be ignored in multi-yaxis + + + gl.maxY = gl.maxYArr[index]; + } + + if (yaxe.min !== undefined) { + if (typeof yaxe.min === 'number') { + gl.minYArr[index] = yaxe.min; + } else if (typeof yaxe.min === 'function') { + // fixes apexcharts.js/issues/2098 + gl.minYArr[index] = yaxe.min(gl.isMultipleYAxis ? gl.minYArr[index] === Number.MIN_VALUE ? 0 : gl.minYArr[index] : gl.minY); + } // gl.minY is for single y-axis chart, it will be ignored in multi-yaxis + + + gl.minY = gl.minYArr[index]; + } + }); // for horizontal bar charts, we need to check xaxis min/max as user may have specified there + + if (gl.isBarHorizontal) { + var minmax = ['min', 'max']; + minmax.forEach(function (m) { + if (cnf.xaxis[m] !== undefined && typeof cnf.xaxis[m] === 'number') { + m === 'min' ? gl.minY = cnf.xaxis[m] : gl.maxY = cnf.xaxis[m]; + } + }); + } // for multi y-axis we need different scales for each + + + if (gl.isMultipleYAxis) { + this.scales.setMultipleYScales(); + gl.minY = lowestYInAllSeries; + gl.yAxisScale.forEach(function (scale, i) { + gl.minYArr[i] = scale.niceMin; + gl.maxYArr[i] = scale.niceMax; + }); + } else { + this.scales.setYScaleForIndex(0, gl.minY, gl.maxY); + gl.minY = gl.yAxisScale[0].niceMin; + gl.maxY = gl.yAxisScale[0].niceMax; + gl.minYArr[0] = gl.yAxisScale[0].niceMin; + gl.maxYArr[0] = gl.yAxisScale[0].niceMax; + } + + return { + minY: gl.minY, + maxY: gl.maxY, + minYArr: gl.minYArr, + maxYArr: gl.maxYArr, + yAxisScale: gl.yAxisScale + }; + } + }, { + key: "setXRange", + value: function setXRange() { + var gl = this.w.globals; + var cnf = this.w.config; + var isXNumeric = cnf.xaxis.type === 'numeric' || cnf.xaxis.type === 'datetime' || cnf.xaxis.type === 'category' && !gl.noLabelsProvided || gl.noLabelsProvided || gl.isXNumeric; + + var getInitialMinXMaxX = function getInitialMinXMaxX() { + for (var i = 0; i < gl.series.length; i++) { + if (gl.labels[i]) { + for (var j = 0; j < gl.labels[i].length; j++) { + if (gl.labels[i][j] !== null && Utils$1.isNumber(gl.labels[i][j])) { + gl.maxX = Math.max(gl.maxX, gl.labels[i][j]); + gl.initialMaxX = Math.max(gl.maxX, gl.labels[i][j]); + gl.minX = Math.min(gl.minX, gl.labels[i][j]); + gl.initialMinX = Math.min(gl.minX, gl.labels[i][j]); + } + } + } + } + }; // minX maxX starts here + + + if (gl.isXNumeric) { + getInitialMinXMaxX(); + } + + if (gl.noLabelsProvided) { + if (cnf.xaxis.categories.length === 0) { + gl.maxX = gl.labels[gl.labels.length - 1]; + gl.initialMaxX = gl.labels[gl.labels.length - 1]; + gl.minX = 1; + gl.initialMinX = 1; + } + } + + if (gl.isXNumeric || gl.noLabelsProvided || gl.dataFormatXNumeric) { + var ticks; + + if (cnf.xaxis.tickAmount === undefined) { + ticks = Math.round(gl.svgWidth / 150); // no labels provided and total number of dataPoints is less than 30 + + if (cnf.xaxis.type === 'numeric' && gl.dataPoints < 30) { + ticks = gl.dataPoints - 1; + } // this check is for when ticks exceeds total datapoints and that would result in duplicate labels + + + if (ticks > gl.dataPoints && gl.dataPoints !== 0) { + ticks = gl.dataPoints - 1; + } + } else if (cnf.xaxis.tickAmount === 'dataPoints') { + if (gl.series.length > 1) { + ticks = gl.series[gl.maxValsInArrayIndex].length - 1; + } + + if (gl.isXNumeric) { + ticks = gl.maxX - gl.minX - 1; + } + } else { + ticks = cnf.xaxis.tickAmount; + } + + gl.xTickAmount = ticks; // override all min/max values by user defined values (x axis) + + if (cnf.xaxis.max !== undefined && typeof cnf.xaxis.max === 'number') { + gl.maxX = cnf.xaxis.max; + } + + if (cnf.xaxis.min !== undefined && typeof cnf.xaxis.min === 'number') { + gl.minX = cnf.xaxis.min; + } // if range is provided, adjust the new minX + + + if (cnf.xaxis.range !== undefined) { + gl.minX = gl.maxX - cnf.xaxis.range; + } + + if (gl.minX !== Number.MAX_VALUE && gl.maxX !== -Number.MAX_VALUE) { + if (cnf.xaxis.convertedCatToNumeric && !gl.dataFormatXNumeric) { + var catScale = []; + + for (var i = gl.minX - 1; i < gl.maxX; i++) { + catScale.push(i + 1); + } + + gl.xAxisScale = { + result: catScale, + niceMin: catScale[0], + niceMax: catScale[catScale.length - 1] + }; + } else { + gl.xAxisScale = this.scales.setXScale(gl.minX, gl.maxX); + } + } else { + gl.xAxisScale = this.scales.linearScale(1, ticks, ticks); + + if (gl.noLabelsProvided && gl.labels.length > 0) { + gl.xAxisScale = this.scales.linearScale(1, gl.labels.length, ticks - 1); // this is the only place seriesX is again mutated + + gl.seriesX = gl.labels.slice(); + } + } // we will still store these labels as the count for this will be different (to draw grid and labels placement) + + + if (isXNumeric) { + gl.labels = gl.xAxisScale.result.slice(); + } + } + + if (gl.isBarHorizontal && gl.labels.length) { + gl.xTickAmount = gl.labels.length; + } // single dataPoint + + + this._handleSingleDataPoint(); // minimum x difference to calculate bar width in numeric bars + + + this._getMinXDiff(); + + return { + minX: gl.minX, + maxX: gl.maxX + }; + } + }, { + key: "setZRange", + value: function setZRange() { + // minZ, maxZ starts here + var gl = this.w.globals; + if (!gl.isDataXYZ) return; + + for (var i = 0; i < gl.series.length; i++) { + if (typeof gl.seriesZ[i] !== 'undefined') { + for (var j = 0; j < gl.seriesZ[i].length; j++) { + if (gl.seriesZ[i][j] !== null && Utils$1.isNumber(gl.seriesZ[i][j])) { + gl.maxZ = Math.max(gl.maxZ, gl.seriesZ[i][j]); + gl.minZ = Math.min(gl.minZ, gl.seriesZ[i][j]); + } + } + } + } + } + }, { + key: "_handleSingleDataPoint", + value: function _handleSingleDataPoint() { + var gl = this.w.globals; + var cnf = this.w.config; + + if (gl.minX === gl.maxX) { + var datetimeObj = new DateTime(this.ctx); + + if (cnf.xaxis.type === 'datetime') { + var newMinX = datetimeObj.getDate(gl.minX); + + if (cnf.xaxis.labels.datetimeUTC) { + newMinX.setUTCDate(newMinX.getUTCDate() - 2); + } else { + newMinX.setDate(newMinX.getDate() - 2); + } + + gl.minX = new Date(newMinX).getTime(); + var newMaxX = datetimeObj.getDate(gl.maxX); + + if (cnf.xaxis.labels.datetimeUTC) { + newMaxX.setUTCDate(newMaxX.getUTCDate() + 2); + } else { + newMaxX.setDate(newMaxX.getDate() + 2); + } + + gl.maxX = new Date(newMaxX).getTime(); + } else if (cnf.xaxis.type === 'numeric' || cnf.xaxis.type === 'category' && !gl.noLabelsProvided) { + gl.minX = gl.minX - 2; + gl.initialMinX = gl.minX; + gl.maxX = gl.maxX + 2; + gl.initialMaxX = gl.maxX; + } + } + } + }, { + key: "_getMinXDiff", + value: function _getMinXDiff() { + var gl = this.w.globals; + + if (gl.isXNumeric) { + // get the least x diff if numeric x axis is present + gl.seriesX.forEach(function (sX, i) { + if (sX.length === 1) { + // a small hack to prevent overlapping multiple bars when there is just 1 datapoint in bar series. + // fix #811 + sX.push(gl.seriesX[gl.maxValsInArrayIndex][gl.seriesX[gl.maxValsInArrayIndex].length - 1]); + } // fix #983 (clone the array to avoid side effects) + + + var seriesX = sX.slice(); + seriesX.sort(function (a, b) { + return a - b; + }); + seriesX.forEach(function (s, j) { + if (j > 0) { + var xDiff = s - seriesX[j - 1]; + + if (xDiff > 0) { + gl.minXDiff = Math.min(xDiff, gl.minXDiff); + } + } + }); + + if (gl.dataPoints === 1 || gl.minXDiff === Number.MAX_VALUE) { + // fixes apexcharts.js #1221 + gl.minXDiff = 0.5; + } + }); + } + } + }, { + key: "_setStackedMinMax", + value: function _setStackedMinMax() { + var gl = this.w.globals; // for stacked charts, we calculate each series's parallel values. i.e, series[0][j] + series[1][j] .... [series[i.length][j]] and get the max out of it + + var stackedPoss = []; + var stackedNegs = []; + + if (gl.series.length) { + for (var j = 0; j < gl.series[gl.maxValsInArrayIndex].length; j++) { + var poss = 0; + var negs = 0; + + for (var i = 0; i < gl.series.length; i++) { + if (gl.series[i][j] !== null && Utils$1.isNumber(gl.series[i][j])) { + // 0.0001 fixes #185 when values are very small + gl.series[i][j] > 0 ? poss = poss + parseFloat(gl.series[i][j]) + 0.0001 : negs = negs + parseFloat(gl.series[i][j]); + } + + if (i === gl.series.length - 1) { + // push all the totals to the array for future use + stackedPoss.push(poss); + stackedNegs.push(negs); + } + } + } + } // get the max/min out of the added parallel values + + + for (var z = 0; z < stackedPoss.length; z++) { + gl.maxY = Math.max(gl.maxY, stackedPoss[z]); + gl.minY = Math.min(gl.minY, stackedNegs[z]); + } + } + }]); + + return Range; + }(); + + /** + * ApexCharts YAxis Class for drawing Y-Axis. + * + * @module YAxis + **/ + + var YAxis = /*#__PURE__*/function () { + function YAxis(ctx) { + _classCallCheck(this, YAxis); + + this.ctx = ctx; + this.w = ctx.w; + var w = this.w; + this.xaxisFontSize = w.config.xaxis.labels.style.fontSize; + this.axisFontFamily = w.config.xaxis.labels.style.fontFamily; + this.xaxisForeColors = w.config.xaxis.labels.style.colors; + this.isCategoryBarHorizontal = w.config.chart.type === 'bar' && w.config.plotOptions.bar.horizontal; + this.xAxisoffX = 0; + + if (w.config.xaxis.position === 'bottom') { + this.xAxisoffX = w.globals.gridHeight; + } + + this.drawnLabels = []; + this.axesUtils = new AxesUtils(ctx); + } + + _createClass(YAxis, [{ + key: "drawYaxis", + value: function drawYaxis(realIndex) { + var _this = this; + + var w = this.w; + var graphics = new Graphics(this.ctx); + var yaxisStyle = w.config.yaxis[realIndex].labels.style; + var yaxisFontSize = yaxisStyle.fontSize; + var yaxisFontFamily = yaxisStyle.fontFamily; + var yaxisFontWeight = yaxisStyle.fontWeight; + var elYaxis = graphics.group({ + class: 'apexcharts-yaxis', + rel: realIndex, + transform: 'translate(' + w.globals.translateYAxisX[realIndex] + ', 0)' + }); + + if (this.axesUtils.isYAxisHidden(realIndex)) { + return elYaxis; + } + + var elYaxisTexts = graphics.group({ + class: 'apexcharts-yaxis-texts-g' + }); + elYaxis.add(elYaxisTexts); + var tickAmount = w.globals.yAxisScale[realIndex].result.length - 1; // labelsDivider is simply svg height/number of ticks + + var labelsDivider = w.globals.gridHeight / tickAmount; // initial label position = 0; + + var l = w.globals.translateY; + var lbFormatter = w.globals.yLabelFormatters[realIndex]; + var labels = w.globals.yAxisScale[realIndex].result.slice(); + labels = this.axesUtils.checkForReversedLabels(realIndex, labels); + var firstLabel = ''; + + if (w.config.yaxis[realIndex].labels.show) { + var _loop = function _loop(i) { + var val = labels[i]; + val = lbFormatter(val, i, w); + var xPad = w.config.yaxis[realIndex].labels.padding; + + if (w.config.yaxis[realIndex].opposite && w.config.yaxis.length !== 0) { + xPad = xPad * -1; + } + + var yColors = _this.axesUtils.getYAxisForeColor(yaxisStyle.colors, realIndex); + + var getForeColor = function getForeColor() { + return Array.isArray(yColors) ? yColors[i] : yColors; + }; + + var label = graphics.drawText({ + x: xPad, + y: l + tickAmount / 10 + w.config.yaxis[realIndex].labels.offsetY + 1, + text: val, + textAnchor: w.config.yaxis[realIndex].opposite ? 'start' : 'end', + fontSize: yaxisFontSize, + fontFamily: yaxisFontFamily, + fontWeight: yaxisFontWeight, + maxWidth: w.config.yaxis[realIndex].labels.maxWidth, + foreColor: getForeColor(), + isPlainText: false, + cssClass: 'apexcharts-yaxis-label ' + yaxisStyle.cssClass + }); + + if (i === tickAmount) { + firstLabel = label; + } + + elYaxisTexts.add(label); + var elTooltipTitle = document.createElementNS(w.globals.SVGNS, 'title'); + elTooltipTitle.textContent = Array.isArray(val) ? val.join(' ') : val; + label.node.appendChild(elTooltipTitle); + + if (w.config.yaxis[realIndex].labels.rotate !== 0) { + var firstabelRotatingCenter = graphics.rotateAroundCenter(firstLabel.node); + var labelRotatingCenter = graphics.rotateAroundCenter(label.node); + label.node.setAttribute('transform', "rotate(".concat(w.config.yaxis[realIndex].labels.rotate, " ").concat(firstabelRotatingCenter.x, " ").concat(labelRotatingCenter.y, ")")); + } + + l = l + labelsDivider; + }; + + for (var i = tickAmount; i >= 0; i--) { + _loop(i); + } + } + + if (w.config.yaxis[realIndex].title.text !== undefined) { + var elYaxisTitle = graphics.group({ + class: 'apexcharts-yaxis-title' + }); + var _x = 0; + + if (w.config.yaxis[realIndex].opposite) { + _x = w.globals.translateYAxisX[realIndex]; + } + + var elYAxisTitleText = graphics.drawText({ + x: _x, + y: w.globals.gridHeight / 2 + w.globals.translateY + w.config.yaxis[realIndex].title.offsetY, + text: w.config.yaxis[realIndex].title.text, + textAnchor: 'end', + foreColor: w.config.yaxis[realIndex].title.style.color, + fontSize: w.config.yaxis[realIndex].title.style.fontSize, + fontWeight: w.config.yaxis[realIndex].title.style.fontWeight, + fontFamily: w.config.yaxis[realIndex].title.style.fontFamily, + cssClass: 'apexcharts-yaxis-title-text ' + w.config.yaxis[realIndex].title.style.cssClass + }); + elYaxisTitle.add(elYAxisTitleText); + elYaxis.add(elYaxisTitle); + } + + var axisBorder = w.config.yaxis[realIndex].axisBorder; + var x = 31 + axisBorder.offsetX; + + if (w.config.yaxis[realIndex].opposite) { + x = -31 - axisBorder.offsetX; + } + + if (axisBorder.show) { + var elVerticalLine = graphics.drawLine(x, w.globals.translateY + axisBorder.offsetY - 2, x, w.globals.gridHeight + w.globals.translateY + axisBorder.offsetY + 2, axisBorder.color, 0, axisBorder.width); + elYaxis.add(elVerticalLine); + } + + if (w.config.yaxis[realIndex].axisTicks.show) { + this.axesUtils.drawYAxisTicks(x, tickAmount, axisBorder, w.config.yaxis[realIndex].axisTicks, realIndex, labelsDivider, elYaxis); + } + + return elYaxis; + } // This actually becomes horizontal axis (for bar charts) + + }, { + key: "drawYaxisInversed", + value: function drawYaxisInversed(realIndex) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var elXaxis = graphics.group({ + class: 'apexcharts-xaxis apexcharts-yaxis-inversed' + }); + var elXaxisTexts = graphics.group({ + class: 'apexcharts-xaxis-texts-g', + transform: "translate(".concat(w.globals.translateXAxisX, ", ").concat(w.globals.translateXAxisY, ")") + }); + elXaxis.add(elXaxisTexts); + var tickAmount = w.globals.yAxisScale[realIndex].result.length - 1; // labelsDivider is simply svg width/number of ticks + + var labelsDivider = w.globals.gridWidth / tickAmount + 0.1; // initial label position; + + var l = labelsDivider + w.config.xaxis.labels.offsetX; + var lbFormatter = w.globals.xLabelFormatter; + var labels = w.globals.yAxisScale[realIndex].result.slice(); + var timescaleLabels = w.globals.timescaleLabels; + + if (timescaleLabels.length > 0) { + this.xaxisLabels = timescaleLabels.slice(); + labels = timescaleLabels.slice(); + tickAmount = labels.length; + } + + labels = this.axesUtils.checkForReversedLabels(realIndex, labels); + var tl = timescaleLabels.length; + + if (w.config.xaxis.labels.show) { + for (var i = tl ? 0 : tickAmount; tl ? i < tl : i >= 0; tl ? i++ : i--) { + var val = labels[i]; + val = lbFormatter(val, i, w); + var x = w.globals.gridWidth + w.globals.padHorizontal - (l - labelsDivider + w.config.xaxis.labels.offsetX); + + if (timescaleLabels.length) { + var label = this.axesUtils.getLabel(labels, timescaleLabels, x, i, this.drawnLabels, this.xaxisFontSize); + x = label.x; + val = label.text; + this.drawnLabels.push(label.text); + + if (i === 0 && w.globals.skipFirstTimelinelabel) { + val = ''; + } + + if (i === labels.length - 1 && w.globals.skipLastTimelinelabel) { + val = ''; + } + } + + var elTick = graphics.drawText({ + x: x, + y: this.xAxisoffX + w.config.xaxis.labels.offsetY + 30 - (w.config.xaxis.position === 'top' ? w.globals.xAxisHeight + w.config.xaxis.axisTicks.height - 2 : 0), + text: val, + textAnchor: 'middle', + foreColor: Array.isArray(this.xaxisForeColors) ? this.xaxisForeColors[realIndex] : this.xaxisForeColors, + fontSize: this.xaxisFontSize, + fontFamily: this.xaxisFontFamily, + fontWeight: w.config.xaxis.labels.style.fontWeight, + isPlainText: false, + cssClass: 'apexcharts-xaxis-label ' + w.config.xaxis.labels.style.cssClass + }); + elXaxisTexts.add(elTick); + elTick.tspan(val); + var elTooltipTitle = document.createElementNS(w.globals.SVGNS, 'title'); + elTooltipTitle.textContent = val; + elTick.node.appendChild(elTooltipTitle); + l = l + labelsDivider; + } + } + + this.inversedYAxisTitleText(elXaxis); + this.inversedYAxisBorder(elXaxis); + return elXaxis; + } + }, { + key: "inversedYAxisBorder", + value: function inversedYAxisBorder(parent) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var axisBorder = w.config.xaxis.axisBorder; + + if (axisBorder.show) { + var lineCorrection = 0; + + if (w.config.chart.type === 'bar' && w.globals.isXNumeric) { + lineCorrection = lineCorrection - 15; + } + + var elHorzLine = graphics.drawLine(w.globals.padHorizontal + lineCorrection + axisBorder.offsetX, this.xAxisoffX, w.globals.gridWidth, this.xAxisoffX, axisBorder.color, 0, axisBorder.height); + parent.add(elHorzLine); + } + } + }, { + key: "inversedYAxisTitleText", + value: function inversedYAxisTitleText(parent) { + var w = this.w; + var graphics = new Graphics(this.ctx); + + if (w.config.xaxis.title.text !== undefined) { + var elYaxisTitle = graphics.group({ + class: 'apexcharts-xaxis-title apexcharts-yaxis-title-inversed' + }); + var elYAxisTitleText = graphics.drawText({ + x: w.globals.gridWidth / 2 + w.config.xaxis.title.offsetX, + y: this.xAxisoffX + parseFloat(this.xaxisFontSize) + parseFloat(w.config.xaxis.title.style.fontSize) + w.config.xaxis.title.offsetY + 20, + text: w.config.xaxis.title.text, + textAnchor: 'middle', + fontSize: w.config.xaxis.title.style.fontSize, + fontFamily: w.config.xaxis.title.style.fontFamily, + fontWeight: w.config.xaxis.title.style.fontWeight, + foreColor: w.config.xaxis.title.style.color, + cssClass: 'apexcharts-xaxis-title-text ' + w.config.xaxis.title.style.cssClass + }); + elYaxisTitle.add(elYAxisTitleText); + parent.add(elYaxisTitle); + } + } + }, { + key: "yAxisTitleRotate", + value: function yAxisTitleRotate(realIndex, yAxisOpposite) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var yAxisLabelsCoord = { + width: 0, + height: 0 + }; + var yAxisTitleCoord = { + width: 0, + height: 0 + }; + var elYAxisLabelsWrap = w.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(realIndex, "'] .apexcharts-yaxis-texts-g")); + + if (elYAxisLabelsWrap !== null) { + yAxisLabelsCoord = elYAxisLabelsWrap.getBoundingClientRect(); + } + + var yAxisTitle = w.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(realIndex, "'] .apexcharts-yaxis-title text")); + + if (yAxisTitle !== null) { + yAxisTitleCoord = yAxisTitle.getBoundingClientRect(); + } + + if (yAxisTitle !== null) { + var x = this.xPaddingForYAxisTitle(realIndex, yAxisLabelsCoord, yAxisTitleCoord, yAxisOpposite); + yAxisTitle.setAttribute('x', x.xPos - (yAxisOpposite ? 10 : 0)); + } + + if (yAxisTitle !== null) { + var titleRotatingCenter = graphics.rotateAroundCenter(yAxisTitle); + yAxisTitle.setAttribute('transform', "rotate(".concat(yAxisOpposite ? w.config.yaxis[realIndex].title.rotate * -1 : w.config.yaxis[realIndex].title.rotate, " ").concat(titleRotatingCenter.x, " ").concat(titleRotatingCenter.y, ")")); + } + } + }, { + key: "xPaddingForYAxisTitle", + value: function xPaddingForYAxisTitle(realIndex, yAxisLabelsCoord, yAxisTitleCoord, yAxisOpposite) { + var w = this.w; + var oppositeAxisCount = 0; + var x = 0; + var padd = 10; + + if (w.config.yaxis[realIndex].title.text === undefined || realIndex < 0) { + return { + xPos: x, + padd: 0 + }; + } + + if (yAxisOpposite) { + x = yAxisLabelsCoord.width + w.config.yaxis[realIndex].title.offsetX + yAxisTitleCoord.width / 2 + padd / 2; + oppositeAxisCount += 1; + + if (oppositeAxisCount === 0) { + x = x - padd / 2; + } + } else { + x = yAxisLabelsCoord.width * -1 + w.config.yaxis[realIndex].title.offsetX + padd / 2 + yAxisTitleCoord.width / 2; + + if (w.globals.isBarHorizontal) { + padd = 25; + x = yAxisLabelsCoord.width * -1 - w.config.yaxis[realIndex].title.offsetX - padd; + } + } + + return { + xPos: x, + padd: padd + }; + } // sets the x position of the y-axis by counting the labels width, title width and any offset + + }, { + key: "setYAxisXPosition", + value: function setYAxisXPosition(yaxisLabelCoords, yTitleCoords) { + var w = this.w; + var xLeft = 0; + var xRight = 0; + var leftOffsetX = 18; + var rightOffsetX = 1; + + if (w.config.yaxis.length > 1) { + this.multipleYs = true; + } + + w.config.yaxis.map(function (yaxe, index) { + var shouldNotDrawAxis = w.globals.ignoreYAxisIndexes.indexOf(index) > -1 || !yaxe.show || yaxe.floating || yaxisLabelCoords[index].width === 0; + var axisWidth = yaxisLabelCoords[index].width + yTitleCoords[index].width; + + if (!yaxe.opposite) { + xLeft = w.globals.translateX - leftOffsetX; + + if (!shouldNotDrawAxis) { + leftOffsetX = leftOffsetX + axisWidth + 20; + } + + w.globals.translateYAxisX[index] = xLeft + yaxe.labels.offsetX; + } else { + if (w.globals.isBarHorizontal) { + xRight = w.globals.gridWidth + w.globals.translateX - 1; + w.globals.translateYAxisX[index] = xRight - yaxe.labels.offsetX; + } else { + xRight = w.globals.gridWidth + w.globals.translateX + rightOffsetX; + + if (!shouldNotDrawAxis) { + rightOffsetX = rightOffsetX + axisWidth + 20; + } + + w.globals.translateYAxisX[index] = xRight - yaxe.labels.offsetX + 20; + } + } + }); + } + }, { + key: "setYAxisTextAlignments", + value: function setYAxisTextAlignments() { + var w = this.w; + var yaxis = w.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis"); + yaxis = Utils$1.listToArray(yaxis); + yaxis.forEach(function (y, index) { + var yaxe = w.config.yaxis[index]; // proceed only if user has specified alignment + + if (yaxe && yaxe.labels.align !== undefined) { + var yAxisInner = w.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(index, "'] .apexcharts-yaxis-texts-g")); + var yAxisTexts = w.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(index, "'] .apexcharts-yaxis-label")); + yAxisTexts = Utils$1.listToArray(yAxisTexts); + var rect = yAxisInner.getBoundingClientRect(); + + if (yaxe.labels.align === 'left') { + yAxisTexts.forEach(function (label, lI) { + label.setAttribute('text-anchor', 'start'); + }); + + if (!yaxe.opposite) { + yAxisInner.setAttribute('transform', "translate(-".concat(rect.width, ", 0)")); + } + } else if (yaxe.labels.align === 'center') { + yAxisTexts.forEach(function (label, lI) { + label.setAttribute('text-anchor', 'middle'); + }); + yAxisInner.setAttribute('transform', "translate(".concat(rect.width / 2 * (!yaxe.opposite ? -1 : 1), ", 0)")); + } else if (yaxe.labels.align === 'right') { + yAxisTexts.forEach(function (label, lI) { + label.setAttribute('text-anchor', 'end'); + }); + + if (yaxe.opposite) { + yAxisInner.setAttribute('transform', "translate(".concat(rect.width, ", 0)")); + } + } + } + }); + } + }]); + + return YAxis; + }(); + + var Events = /*#__PURE__*/function () { + function Events(ctx) { + _classCallCheck(this, Events); + + this.ctx = ctx; + this.w = ctx.w; + this.documentEvent = Utils$1.bind(this.documentEvent, this); + } + + _createClass(Events, [{ + key: "addEventListener", + value: function addEventListener(name, handler) { + var w = this.w; + + if (w.globals.events.hasOwnProperty(name)) { + w.globals.events[name].push(handler); + } else { + w.globals.events[name] = [handler]; + } + } + }, { + key: "removeEventListener", + value: function removeEventListener(name, handler) { + var w = this.w; + + if (!w.globals.events.hasOwnProperty(name)) { + return; + } + + var index = w.globals.events[name].indexOf(handler); + + if (index !== -1) { + w.globals.events[name].splice(index, 1); + } + } + }, { + key: "fireEvent", + value: function fireEvent(name, args) { + var w = this.w; + + if (!w.globals.events.hasOwnProperty(name)) { + return; + } + + if (!args || !args.length) { + args = []; + } + + var evs = w.globals.events[name]; + var l = evs.length; + + for (var i = 0; i < l; i++) { + evs[i].apply(null, args); + } + } + }, { + key: "setupEventHandlers", + value: function setupEventHandlers() { + var _this = this; + + var w = this.w; + var me = this.ctx; + var clickableArea = w.globals.dom.baseEl.querySelector(w.globals.chartClass); + this.ctx.eventList.forEach(function (event) { + clickableArea.addEventListener(event, function (e) { + var opts = Object.assign({}, w, { + seriesIndex: w.globals.capturedSeriesIndex, + dataPointIndex: w.globals.capturedDataPointIndex + }); + + if (e.type === 'mousemove' || e.type === 'touchmove') { + if (typeof w.config.chart.events.mouseMove === 'function') { + w.config.chart.events.mouseMove(e, me, opts); + } + } else if (e.type === 'mouseleave' || e.type === 'touchleave') { + if (typeof w.config.chart.events.mouseLeave === 'function') { + w.config.chart.events.mouseLeave(e, me, opts); + } + } else if (e.type === 'mouseup' && e.which === 1 || e.type === 'touchend') { + if (typeof w.config.chart.events.click === 'function') { + w.config.chart.events.click(e, me, opts); + } + + me.ctx.events.fireEvent('click', [e, me, opts]); + } + }, { + capture: false, + passive: true + }); + }); + this.ctx.eventList.forEach(function (event) { + w.globals.dom.baseEl.addEventListener(event, _this.documentEvent, { + passive: true + }); + }); + this.ctx.core.setupBrushHandler(); + } + }, { + key: "documentEvent", + value: function documentEvent(e) { + var w = this.w; + var target = e.target.className; + + if (e.type === 'click') { + var elMenu = w.globals.dom.baseEl.querySelector('.apexcharts-menu'); + + if (elMenu && elMenu.classList.contains('apexcharts-menu-open') && target !== 'apexcharts-menu-icon') { + elMenu.classList.remove('apexcharts-menu-open'); + } + } + + w.globals.clientX = e.type === 'touchmove' ? e.touches[0].clientX : e.clientX; + w.globals.clientY = e.type === 'touchmove' ? e.touches[0].clientY : e.clientY; + } + }]); + + return Events; + }(); + + var Localization = /*#__PURE__*/function () { + function Localization(ctx) { + _classCallCheck(this, Localization); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(Localization, [{ + key: "setCurrentLocaleValues", + value: function setCurrentLocaleValues(localeName) { + var locales = this.w.config.chart.locales; // check if user has specified locales in global Apex variable + // if yes - then extend those with local chart's locale + + if (window.Apex.chart && window.Apex.chart.locales && window.Apex.chart.locales.length > 0) { + locales = this.w.config.chart.locales.concat(window.Apex.chart.locales); + } // find the locale from the array of locales which user has set (either by chart.defaultLocale or by calling setLocale() method.) + + + var selectedLocale = locales.filter(function (c) { + return c.name === localeName; + })[0]; + + if (selectedLocale) { + // create a complete locale object by extending defaults so you don't get undefined errors. + var ret = Utils$1.extend(en, selectedLocale); // store these locale options in global var for ease access + + this.w.globals.locale = ret.options; + } else { + throw new Error('Wrong locale name provided. Please make sure you set the correct locale name in options'); + } + } + }]); + + return Localization; + }(); + + var Axes = /*#__PURE__*/function () { + function Axes(ctx) { + _classCallCheck(this, Axes); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(Axes, [{ + key: "drawAxis", + value: function drawAxis(type, xyRatios) { + var gl = this.w.globals; + var cnf = this.w.config; + var xAxis = new XAxis(this.ctx); + var yAxis = new YAxis(this.ctx); + + if (gl.axisCharts && type !== 'radar') { + var elXaxis, elYaxis; + + if (gl.isBarHorizontal) { + elYaxis = yAxis.drawYaxisInversed(0); + elXaxis = xAxis.drawXaxisInversed(0); + gl.dom.elGraphical.add(elXaxis); + gl.dom.elGraphical.add(elYaxis); + } else { + elXaxis = xAxis.drawXaxis(); + gl.dom.elGraphical.add(elXaxis); + cnf.yaxis.map(function (yaxe, index) { + if (gl.ignoreYAxisIndexes.indexOf(index) === -1) { + elYaxis = yAxis.drawYaxis(index); + gl.dom.Paper.add(elYaxis); + } + }); + } + } + } + }]); + + return Axes; + }(); + + var Crosshairs = /*#__PURE__*/function () { + function Crosshairs(ctx) { + _classCallCheck(this, Crosshairs); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(Crosshairs, [{ + key: "drawXCrosshairs", + value: function drawXCrosshairs() { + var w = this.w; + var graphics = new Graphics(this.ctx); + var filters = new Filters(this.ctx); + var crosshairGradient = w.config.xaxis.crosshairs.fill.gradient; + var crosshairShadow = w.config.xaxis.crosshairs.dropShadow; + var fillType = w.config.xaxis.crosshairs.fill.type; + var gradientFrom = crosshairGradient.colorFrom; + var gradientTo = crosshairGradient.colorTo; + var opacityFrom = crosshairGradient.opacityFrom; + var opacityTo = crosshairGradient.opacityTo; + var stops = crosshairGradient.stops; + var shadow = 'none'; + var dropShadow = crosshairShadow.enabled; + var shadowLeft = crosshairShadow.left; + var shadowTop = crosshairShadow.top; + var shadowBlur = crosshairShadow.blur; + var shadowColor = crosshairShadow.color; + var shadowOpacity = crosshairShadow.opacity; + var xcrosshairsFill = w.config.xaxis.crosshairs.fill.color; + + if (w.config.xaxis.crosshairs.show) { + if (fillType === 'gradient') { + xcrosshairsFill = graphics.drawGradient('vertical', gradientFrom, gradientTo, opacityFrom, opacityTo, null, stops, null); + } + + var xcrosshairs = graphics.drawRect(); + + if (w.config.xaxis.crosshairs.width === 1) { + // to prevent drawing 2 lines, convert rect to line + xcrosshairs = graphics.drawLine(); + } + + var gridHeight = w.globals.gridHeight; + + if (!Utils$1.isNumber(gridHeight) || gridHeight < 0) { + gridHeight = 0; + } + + var crosshairsWidth = w.config.xaxis.crosshairs.width; + + if (!Utils$1.isNumber(crosshairsWidth) || crosshairsWidth < 0) { + crosshairsWidth = 0; + } + + xcrosshairs.attr({ + class: 'apexcharts-xcrosshairs', + x: 0, + y: 0, + y2: gridHeight, + width: crosshairsWidth, + height: gridHeight, + fill: xcrosshairsFill, + filter: shadow, + 'fill-opacity': w.config.xaxis.crosshairs.opacity, + stroke: w.config.xaxis.crosshairs.stroke.color, + 'stroke-width': w.config.xaxis.crosshairs.stroke.width, + 'stroke-dasharray': w.config.xaxis.crosshairs.stroke.dashArray + }); + + if (dropShadow) { + xcrosshairs = filters.dropShadow(xcrosshairs, { + left: shadowLeft, + top: shadowTop, + blur: shadowBlur, + color: shadowColor, + opacity: shadowOpacity + }); + } + + w.globals.dom.elGraphical.add(xcrosshairs); + } + } + }, { + key: "drawYCrosshairs", + value: function drawYCrosshairs() { + var w = this.w; + var graphics = new Graphics(this.ctx); + var crosshair = w.config.yaxis[0].crosshairs; + var offX = w.globals.barPadForNumericAxis; + + if (w.config.yaxis[0].crosshairs.show) { + var ycrosshairs = graphics.drawLine(-offX, 0, w.globals.gridWidth + offX, 0, crosshair.stroke.color, crosshair.stroke.dashArray, crosshair.stroke.width); + ycrosshairs.attr({ + class: 'apexcharts-ycrosshairs' + }); + w.globals.dom.elGraphical.add(ycrosshairs); + } // draw an invisible crosshair to help in positioning the yaxis tooltip + + + var ycrosshairsHidden = graphics.drawLine(-offX, 0, w.globals.gridWidth + offX, 0, crosshair.stroke.color, 0, 0); + ycrosshairsHidden.attr({ + class: 'apexcharts-ycrosshairs-hidden' + }); + w.globals.dom.elGraphical.add(ycrosshairsHidden); + } + }]); + + return Crosshairs; + }(); + + /** + * ApexCharts Responsive Class to override options for different screen sizes. + * + * @module Responsive + **/ + + var Responsive = /*#__PURE__*/function () { + function Responsive(ctx) { + _classCallCheck(this, Responsive); + + this.ctx = ctx; + this.w = ctx.w; + } // the opts parameter if not null has to be set overriding everything + // as the opts is set by user externally + + + _createClass(Responsive, [{ + key: "checkResponsiveConfig", + value: function checkResponsiveConfig(opts) { + var _this = this; + + var w = this.w; + var cnf = w.config; // check if responsive config exists + + if (cnf.responsive.length === 0) return; + var res = cnf.responsive.slice(); + res.sort(function (a, b) { + return a.breakpoint > b.breakpoint ? 1 : b.breakpoint > a.breakpoint ? -1 : 0; + }).reverse(); + var config = new Config({}); + + var iterateResponsiveOptions = function iterateResponsiveOptions() { + var newOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var largestBreakpoint = res[0].breakpoint; + var width = window.innerWidth > 0 ? window.innerWidth : screen.width; + + if (width > largestBreakpoint) { + var options = CoreUtils.extendArrayProps(config, w.globals.initialConfig, w); + newOptions = Utils$1.extend(options, newOptions); + newOptions = Utils$1.extend(w.config, newOptions); + + _this.overrideResponsiveOptions(newOptions); + } else { + for (var i = 0; i < res.length; i++) { + if (width < res[i].breakpoint) { + newOptions = CoreUtils.extendArrayProps(config, res[i].options, w); + newOptions = Utils$1.extend(w.config, newOptions); + + _this.overrideResponsiveOptions(newOptions); + } + } + } + }; + + if (opts) { + var options = CoreUtils.extendArrayProps(config, opts, w); + options = Utils$1.extend(w.config, options); + options = Utils$1.extend(options, opts); + iterateResponsiveOptions(options); + } else { + iterateResponsiveOptions({}); + } + } + }, { + key: "overrideResponsiveOptions", + value: function overrideResponsiveOptions(newOptions) { + var newConfig = new Config(newOptions).init({ + responsiveOverride: true + }); + this.w.config = newConfig; + } + }]); + + return Responsive; + }(); + + /** + * ApexCharts Theme Class for setting the colors and palettes. + * + * @module Theme + **/ + + var Theme = /*#__PURE__*/function () { + function Theme(ctx) { + _classCallCheck(this, Theme); + + this.ctx = ctx; + this.colors = []; + this.w = ctx.w; + var w = this.w; + this.isColorFn = false; + this.isHeatmapDistributed = w.config.chart.type === 'treemap' && w.config.plotOptions.treemap.distributed || w.config.chart.type === 'heatmap' && w.config.plotOptions.heatmap.distributed; + this.isBarDistributed = w.config.plotOptions.bar.distributed && (w.config.chart.type === 'bar' || w.config.chart.type === 'rangeBar'); + } + + _createClass(Theme, [{ + key: "init", + value: function init() { + this.setDefaultColors(); + } + }, { + key: "setDefaultColors", + value: function setDefaultColors() { + var _this = this; + + var w = this.w; + var utils = new Utils$1(); + w.globals.dom.elWrap.classList.add("apexcharts-theme-".concat(w.config.theme.mode)); + + if (w.config.colors === undefined) { + w.globals.colors = this.predefined(); + } else { + w.globals.colors = w.config.colors; // if user provided a function in colors, we need to eval here + + if (Array.isArray(w.config.colors) && w.config.colors.length > 0 && typeof w.config.colors[0] === 'function') { + w.globals.colors = w.config.series.map(function (s, i) { + var c = w.config.colors[i]; + if (!c) c = w.config.colors[0]; + + if (typeof c === 'function') { + _this.isColorFn = true; + return c({ + value: w.globals.axisCharts ? w.globals.series[i][0] ? w.globals.series[i][0] : 0 : w.globals.series[i], + seriesIndex: i, + dataPointIndex: i, + w: w + }); + } + + return c; + }); + } + } // user defined colors in series array + + + w.globals.seriesColors.map(function (c, i) { + if (c) { + w.globals.colors[i] = c; + } + }); + + if (w.config.theme.monochrome.enabled) { + var monoArr = []; + var glsCnt = w.globals.series.length; + + if (this.isBarDistributed || this.isHeatmapDistributed) { + glsCnt = w.globals.series[0].length * w.globals.series.length; + } + + var mainColor = w.config.theme.monochrome.color; + var part = 1 / (glsCnt / w.config.theme.monochrome.shadeIntensity); + var shade = w.config.theme.monochrome.shadeTo; + var percent = 0; + + for (var gsl = 0; gsl < glsCnt; gsl++) { + var newColor = void 0; + + if (shade === 'dark') { + newColor = utils.shadeColor(percent * -1, mainColor); + percent = percent + part; + } else { + newColor = utils.shadeColor(percent, mainColor); + percent = percent + part; + } + + monoArr.push(newColor); + } + + w.globals.colors = monoArr.slice(); + } + + var defaultColors = w.globals.colors.slice(); // if user specified fewer colors than no. of series, push the same colors again + + this.pushExtraColors(w.globals.colors); + var colorTypes = ['fill', 'stroke']; + colorTypes.forEach(function (c) { + if (w.config[c].colors === undefined) { + w.globals[c].colors = _this.isColorFn ? w.config.colors : defaultColors; + } else { + w.globals[c].colors = w.config[c].colors.slice(); + } + + _this.pushExtraColors(w.globals[c].colors); + }); + + if (w.config.dataLabels.style.colors === undefined) { + w.globals.dataLabels.style.colors = defaultColors; + } else { + w.globals.dataLabels.style.colors = w.config.dataLabels.style.colors.slice(); + } + + this.pushExtraColors(w.globals.dataLabels.style.colors, 50); + + if (w.config.plotOptions.radar.polygons.fill.colors === undefined) { + w.globals.radarPolygons.fill.colors = [w.config.theme.mode === 'dark' ? '#424242' : 'none']; + } else { + w.globals.radarPolygons.fill.colors = w.config.plotOptions.radar.polygons.fill.colors.slice(); + } + + this.pushExtraColors(w.globals.radarPolygons.fill.colors, 20); // The point colors + + if (w.config.markers.colors === undefined) { + w.globals.markers.colors = defaultColors; + } else { + w.globals.markers.colors = w.config.markers.colors.slice(); + } + + this.pushExtraColors(w.globals.markers.colors); + } // When the number of colors provided is less than the number of series, this method + // will push same colors to the list + // params: + // distributed is only valid for distributed column/bar charts + + }, { + key: "pushExtraColors", + value: function pushExtraColors(colorSeries, length) { + var distributed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var w = this.w; + var len = length || w.globals.series.length; + + if (distributed === null) { + distributed = this.isBarDistributed || this.isHeatmapDistributed || w.config.chart.type === 'heatmap' && w.config.plotOptions.heatmap.colorScale.inverse; + } + + if (distributed && w.globals.series.length) { + len = w.globals.series[w.globals.maxValsInArrayIndex].length * w.globals.series.length; + } + + if (colorSeries.length < len) { + var diff = len - colorSeries.length; + + for (var i = 0; i < diff; i++) { + colorSeries.push(colorSeries[i]); + } + } + } + }, { + key: "updateThemeOptions", + value: function updateThemeOptions(options) { + options.chart = options.chart || {}; + options.tooltip = options.tooltip || {}; + var mode = options.theme.mode || 'light'; + var palette = options.theme.palette ? options.theme.palette : mode === 'dark' ? 'palette4' : 'palette1'; + var foreColor = options.chart.foreColor ? options.chart.foreColor : mode === 'dark' ? '#f6f7f8' : '#373d3f'; + options.tooltip.theme = mode; + options.chart.foreColor = foreColor; + options.theme.palette = palette; + return options; + } + }, { + key: "predefined", + value: function predefined() { + var palette = this.w.config.theme.palette; // D6E3F8, FCEFEF, DCE0D9, A5978B, EDDDD4, D6E3F8, FEF5EF + + switch (palette) { + case 'palette1': + this.colors = ['#008FFB', '#00E396', '#FEB019', '#FF4560', '#775DD0']; + break; + + case 'palette2': + this.colors = ['#3f51b5', '#03a9f4', '#4caf50', '#f9ce1d', '#FF9800']; + break; + + case 'palette3': + this.colors = ['#33b2df', '#546E7A', '#d4526e', '#13d8aa', '#A5978B']; + break; + + case 'palette4': + this.colors = ['#4ecdc4', '#c7f464', '#81D4FA', '#fd6a6a', '#546E7A']; + break; + + case 'palette5': + this.colors = ['#2b908f', '#f9a3a4', '#90ee7e', '#fa4443', '#69d2e7']; + break; + + case 'palette6': + this.colors = ['#449DD1', '#F86624', '#EA3546', '#662E9B', '#C5D86D']; + break; + + case 'palette7': + this.colors = ['#D7263D', '#1B998B', '#2E294E', '#F46036', '#E2C044']; + break; + + case 'palette8': + this.colors = ['#662E9B', '#F86624', '#F9C80E', '#EA3546', '#43BCCD']; + break; + + case 'palette9': + this.colors = ['#5C4742', '#A5978B', '#8D5B4C', '#5A2A27', '#C4BBAF']; + break; + + case 'palette10': + this.colors = ['#A300D6', '#7D02EB', '#5653FE', '#2983FF', '#00B1F2']; + break; + + default: + this.colors = ['#008FFB', '#00E396', '#FEB019', '#FF4560', '#775DD0']; + break; + } + + return this.colors; + } + }]); + + return Theme; + }(); + + var TitleSubtitle = /*#__PURE__*/function () { + function TitleSubtitle(ctx) { + _classCallCheck(this, TitleSubtitle); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(TitleSubtitle, [{ + key: "draw", + value: function draw() { + this.drawTitleSubtitle('title'); + this.drawTitleSubtitle('subtitle'); + } + }, { + key: "drawTitleSubtitle", + value: function drawTitleSubtitle(type) { + var w = this.w; + var tsConfig = type === 'title' ? w.config.title : w.config.subtitle; + var x = w.globals.svgWidth / 2; + var y = tsConfig.offsetY; + var textAnchor = 'middle'; + + if (tsConfig.align === 'left') { + x = 10; + textAnchor = 'start'; + } else if (tsConfig.align === 'right') { + x = w.globals.svgWidth - 10; + textAnchor = 'end'; + } + + x = x + tsConfig.offsetX; + y = y + parseInt(tsConfig.style.fontSize, 10) + tsConfig.margin / 2; + + if (tsConfig.text !== undefined) { + var graphics = new Graphics(this.ctx); + var titleText = graphics.drawText({ + x: x, + y: y, + text: tsConfig.text, + textAnchor: textAnchor, + fontSize: tsConfig.style.fontSize, + fontFamily: tsConfig.style.fontFamily, + fontWeight: tsConfig.style.fontWeight, + foreColor: tsConfig.style.color, + opacity: 1 + }); + titleText.node.setAttribute('class', "apexcharts-".concat(type, "-text")); + w.globals.dom.Paper.add(titleText); + } + } + }]); + + return TitleSubtitle; + }(); + + var Helpers$2 = /*#__PURE__*/function () { + function Helpers(dCtx) { + _classCallCheck(this, Helpers); + + this.w = dCtx.w; + this.dCtx = dCtx; + } + /** + * Get Chart Title/Subtitle Dimensions + * @memberof Dimensions + * @return {{width, height}} + **/ + + + _createClass(Helpers, [{ + key: "getTitleSubtitleCoords", + value: function getTitleSubtitleCoords(type) { + var w = this.w; + var width = 0; + var height = 0; + var floating = type === 'title' ? w.config.title.floating : w.config.subtitle.floating; + var el = w.globals.dom.baseEl.querySelector(".apexcharts-".concat(type, "-text")); + + if (el !== null && !floating) { + var coord = el.getBoundingClientRect(); + width = coord.width; + height = w.globals.axisCharts ? coord.height + 5 : coord.height; + } + + return { + width: width, + height: height + }; + } + }, { + key: "getLegendsRect", + value: function getLegendsRect() { + var w = this.w; + var elLegendWrap = w.globals.dom.baseEl.querySelector('.apexcharts-legend'); + + if (!w.config.legend.height && (w.config.legend.position === 'top' || w.config.legend.position === 'bottom')) { + // avoid legend to take up all the space + elLegendWrap.style.maxHeight = w.globals.svgHeight / 2 + 'px'; + } + + var lgRect = Object.assign({}, Utils$1.getBoundingClientRect(elLegendWrap)); + + if (elLegendWrap !== null && !w.config.legend.floating && w.config.legend.show) { + this.dCtx.lgRect = { + x: lgRect.x, + y: lgRect.y, + height: lgRect.height, + width: lgRect.height === 0 ? 0 : lgRect.width + }; + } else { + this.dCtx.lgRect = { + x: 0, + y: 0, + height: 0, + width: 0 + }; + } // if legend takes up all of the chart space, we need to restrict it. + + + if (w.config.legend.position === 'left' || w.config.legend.position === 'right') { + if (this.dCtx.lgRect.width * 1.5 > w.globals.svgWidth) { + this.dCtx.lgRect.width = w.globals.svgWidth / 1.5; + } + } + + return this.dCtx.lgRect; + } + }, { + key: "getLargestStringFromMultiArr", + value: function getLargestStringFromMultiArr(val, arr) { + var w = this.w; + var valArr = val; + + if (w.globals.isMultiLineX) { + // if the xaxis labels has multiline texts (array) + var maxArrs = arr.map(function (xl, idx) { + return Array.isArray(xl) ? xl.length : 1; + }); + var maxArrLen = Math.max.apply(Math, _toConsumableArray(maxArrs)); + var maxArrIndex = maxArrs.indexOf(maxArrLen); + valArr = arr[maxArrIndex]; + } + + return valArr; + } + }]); + + return Helpers; + }(); + + var DimXAxis = /*#__PURE__*/function () { + function DimXAxis(dCtx) { + _classCallCheck(this, DimXAxis); + + this.w = dCtx.w; + this.dCtx = dCtx; + } + /** + * Get X Axis Dimensions + * @memberof Dimensions + * @return {{width, height}} + **/ + + + _createClass(DimXAxis, [{ + key: "getxAxisLabelsCoords", + value: function getxAxisLabelsCoords() { + var w = this.w; + var xaxisLabels = w.globals.labels.slice(); + + if (w.config.xaxis.convertedCatToNumeric && xaxisLabels.length === 0) { + xaxisLabels = w.globals.categoryLabels; + } + + var rect; + + if (w.globals.timescaleLabels.length > 0) { + var coords = this.getxAxisTimeScaleLabelsCoords(); + rect = { + width: coords.width, + height: coords.height + }; + w.globals.rotateXLabels = false; + } else { + this.dCtx.lgWidthForSideLegends = (w.config.legend.position === 'left' || w.config.legend.position === 'right') && !w.config.legend.floating ? this.dCtx.lgRect.width : 0; // get the longest string from the labels array and also apply label formatter + + var xlbFormatter = w.globals.xLabelFormatter; // prevent changing xaxisLabels to avoid issues in multi-yaxes - fix #522 + + var val = Utils$1.getLargestStringFromArr(xaxisLabels); + var valArr = this.dCtx.dimHelpers.getLargestStringFromMultiArr(val, xaxisLabels); // the labels gets changed for bar charts + + if (w.globals.isBarHorizontal) { + val = w.globals.yAxisScale[0].result.reduce(function (a, b) { + return a.length > b.length ? a : b; + }, 0); + valArr = val; + } + + var xFormat = new Formatters(this.dCtx.ctx); + var timestamp = val; + val = xFormat.xLabelFormat(xlbFormatter, val, timestamp, { + i: undefined, + dateFormatter: new DateTime(this.dCtx.ctx).formatDate, + w: w + }); + valArr = xFormat.xLabelFormat(xlbFormatter, valArr, timestamp, { + i: undefined, + dateFormatter: new DateTime(this.dCtx.ctx).formatDate, + w: w + }); + + if (w.config.xaxis.convertedCatToNumeric && typeof val === 'undefined' || String(val).trim() === '') { + val = '1'; + valArr = val; + } + + var graphics = new Graphics(this.dCtx.ctx); + var xLabelrect = graphics.getTextRects(val, w.config.xaxis.labels.style.fontSize); + var xArrLabelrect = xLabelrect; + + if (val !== valArr) { + xArrLabelrect = graphics.getTextRects(valArr, w.config.xaxis.labels.style.fontSize); + } + + rect = { + width: xLabelrect.width >= xArrLabelrect.width ? xLabelrect.width : xArrLabelrect.width, + height: xLabelrect.height >= xArrLabelrect.height ? xLabelrect.height : xArrLabelrect.height + }; + + if (rect.width * xaxisLabels.length > w.globals.svgWidth - this.dCtx.lgWidthForSideLegends - this.dCtx.yAxisWidth - this.dCtx.gridPad.left - this.dCtx.gridPad.right && w.config.xaxis.labels.rotate !== 0 || w.config.xaxis.labels.rotateAlways) { + if (!w.globals.isBarHorizontal) { + w.globals.rotateXLabels = true; + + var getRotatedTextRects = function getRotatedTextRects(text) { + return graphics.getTextRects(text, w.config.xaxis.labels.style.fontSize, w.config.xaxis.labels.style.fontFamily, "rotate(".concat(w.config.xaxis.labels.rotate, " 0 0)"), false); + }; + + xLabelrect = getRotatedTextRects(val); + + if (val !== valArr) { + xArrLabelrect = getRotatedTextRects(valArr); + } + + rect.height = (xLabelrect.height > xArrLabelrect.height ? xLabelrect.height : xArrLabelrect.height) / 1.5; + rect.width = xLabelrect.width > xArrLabelrect.width ? xLabelrect.width : xArrLabelrect.width; + } + } else { + w.globals.rotateXLabels = false; + } + } + + if (!w.config.xaxis.labels.show) { + rect = { + width: 0, + height: 0 + }; + } + + return { + width: rect.width, + height: rect.height + }; + } + /** + * Get X Axis Label Group height + * @memberof Dimensions + * @return {{width, height}} + */ + + }, { + key: "getxAxisGroupLabelsCoords", + value: function getxAxisGroupLabelsCoords() { + var _w$config$xaxis$group; + + var w = this.w; + + if (!w.globals.hasGroups) { + return { + width: 0, + height: 0 + }; + } + + var fontSize = ((_w$config$xaxis$group = w.config.xaxis.group.style) === null || _w$config$xaxis$group === void 0 ? void 0 : _w$config$xaxis$group.fontSize) || w.config.xaxis.labels.style.fontSize; + var xaxisLabels = w.globals.groups.map(function (g) { + return g.title; + }); + var rect; // prevent changing xaxisLabels to avoid issues in multi-yaxes - fix #522 + + var val = Utils$1.getLargestStringFromArr(xaxisLabels); + var valArr = this.dCtx.dimHelpers.getLargestStringFromMultiArr(val, xaxisLabels); + var graphics = new Graphics(this.dCtx.ctx); + var xLabelrect = graphics.getTextRects(val, fontSize); + var xArrLabelrect = xLabelrect; + + if (val !== valArr) { + xArrLabelrect = graphics.getTextRects(valArr, fontSize); + } + + rect = { + width: xLabelrect.width >= xArrLabelrect.width ? xLabelrect.width : xArrLabelrect.width, + height: xLabelrect.height >= xArrLabelrect.height ? xLabelrect.height : xArrLabelrect.height + }; + + if (!w.config.xaxis.labels.show) { + rect = { + width: 0, + height: 0 + }; + } + + return { + width: rect.width, + height: rect.height + }; + } + /** + * Get X Axis Title Dimensions + * @memberof Dimensions + * @return {{width, height}} + **/ + + }, { + key: "getxAxisTitleCoords", + value: function getxAxisTitleCoords() { + var w = this.w; + var width = 0; + var height = 0; + + if (w.config.xaxis.title.text !== undefined) { + var graphics = new Graphics(this.dCtx.ctx); + var rect = graphics.getTextRects(w.config.xaxis.title.text, w.config.xaxis.title.style.fontSize); + width = rect.width; + height = rect.height; + } + + return { + width: width, + height: height + }; + } + }, { + key: "getxAxisTimeScaleLabelsCoords", + value: function getxAxisTimeScaleLabelsCoords() { + var w = this.w; + var rect; + this.dCtx.timescaleLabels = w.globals.timescaleLabels.slice(); + var labels = this.dCtx.timescaleLabels.map(function (label) { + return label.value; + }); // get the longest string from the labels array and also apply label formatter to it + + var val = labels.reduce(function (a, b) { + // if undefined, maybe user didn't pass the datetime(x) values + if (typeof a === 'undefined') { + console.error('You have possibly supplied invalid Date format. Please supply a valid JavaScript Date'); + return 0; + } else { + return a.length > b.length ? a : b; + } + }, 0); + var graphics = new Graphics(this.dCtx.ctx); + rect = graphics.getTextRects(val, w.config.xaxis.labels.style.fontSize); + var totalWidthRotated = rect.width * 1.05 * labels.length; + + if (totalWidthRotated > w.globals.gridWidth && w.config.xaxis.labels.rotate !== 0) { + w.globals.overlappingXLabels = true; + } + + return rect; + } // In certain cases, the last labels gets cropped in xaxis. + // Hence, we add some additional padding based on the label length to avoid the last label being cropped or we don't draw it at all + + }, { + key: "additionalPaddingXLabels", + value: function additionalPaddingXLabels(xaxisLabelCoords) { + var _this = this; + + var w = this.w; + var gl = w.globals; + var cnf = w.config; + var xtype = cnf.xaxis.type; + var lbWidth = xaxisLabelCoords.width; + gl.skipLastTimelinelabel = false; + gl.skipFirstTimelinelabel = false; + var isBarOpposite = w.config.yaxis[0].opposite && w.globals.isBarHorizontal; + + var isCollapsed = function isCollapsed(i) { + return gl.collapsedSeriesIndices.indexOf(i) !== -1; + }; + + var rightPad = function rightPad(yaxe) { + if (_this.dCtx.timescaleLabels && _this.dCtx.timescaleLabels.length) { + // for timeline labels, we take the last label and check if it exceeds gridWidth + var firstimescaleLabel = _this.dCtx.timescaleLabels[0]; + var lastTimescaleLabel = _this.dCtx.timescaleLabels[_this.dCtx.timescaleLabels.length - 1]; + var lastLabelPosition = lastTimescaleLabel.position + lbWidth / 1.75 - _this.dCtx.yAxisWidthRight; + var firstLabelPosition = firstimescaleLabel.position - lbWidth / 1.75 + _this.dCtx.yAxisWidthLeft; + var lgRightRectWidth = w.config.legend.position === 'right' && _this.dCtx.lgRect.width > 0 ? _this.dCtx.lgRect.width : 0; + + if (lastLabelPosition > gl.svgWidth - gl.translateX - lgRightRectWidth) { + gl.skipLastTimelinelabel = true; + } + + if (firstLabelPosition < -((!yaxe.show || yaxe.floating) && (cnf.chart.type === 'bar' || cnf.chart.type === 'candlestick' || cnf.chart.type === 'rangeBar' || cnf.chart.type === 'boxPlot') ? lbWidth / 1.75 : 10)) { + gl.skipFirstTimelinelabel = true; + } + } else if (xtype === 'datetime') { + // If user has enabled DateTime, but uses own's formatter + if (_this.dCtx.gridPad.right < lbWidth && !gl.rotateXLabels) { + gl.skipLastTimelinelabel = true; + } + } else if (xtype !== 'datetime') { + if (_this.dCtx.gridPad.right < lbWidth / 2 - _this.dCtx.yAxisWidthRight && !gl.rotateXLabels && !w.config.xaxis.labels.trim && (w.config.xaxis.tickPlacement !== 'between' || w.globals.isBarHorizontal)) { + _this.dCtx.xPadRight = lbWidth / 2 + 1; + } + } + }; + + var padYAxe = function padYAxe(yaxe, i) { + if (isCollapsed(i)) return; // the code below causes issue apexcharts.js#1989 + // after testing with other use-cases, this has no actual value, hence commented + // if (xtype !== 'datetime') { + // if ( + // this.dCtx.gridPad.left < lbWidth / 2 - this.dCtx.yAxisWidthLeft && + // !gl.rotateXLabels && + // !cnf.xaxis.labels.trim + // ) { + // this.dCtx.xPadLeft = lbWidth / 2 + 1 + // } + // } + + rightPad(yaxe); + }; + + cnf.yaxis.forEach(function (yaxe, i) { + if (isBarOpposite) { + if (_this.dCtx.gridPad.left < lbWidth) { + _this.dCtx.xPadLeft = lbWidth / 2 + 1; + } + + _this.dCtx.xPadRight = lbWidth / 2 + 1; + } else { + padYAxe(yaxe, i); + } + }); + } + }]); + + return DimXAxis; + }(); + + var DimYAxis = /*#__PURE__*/function () { + function DimYAxis(dCtx) { + _classCallCheck(this, DimYAxis); + + this.w = dCtx.w; + this.dCtx = dCtx; + } + /** + * Get Y Axis Dimensions + * @memberof Dimensions + * @return {{width, height}} + **/ + + + _createClass(DimYAxis, [{ + key: "getyAxisLabelsCoords", + value: function getyAxisLabelsCoords() { + var _this = this; + + var w = this.w; + var width = 0; + var height = 0; + var ret = []; + var labelPad = 10; + var axesUtils = new AxesUtils(this.dCtx.ctx); + w.config.yaxis.map(function (yaxe, index) { + var yS = w.globals.yAxisScale[index]; + var yAxisMinWidth = 0; + if (!axesUtils.isYAxisHidden(index) && yaxe.labels.show && yaxe.labels.minWidth !== undefined) yAxisMinWidth = yaxe.labels.minWidth; + + if (!axesUtils.isYAxisHidden(index) && yaxe.labels.show && yS.result.length) { + var lbFormatter = w.globals.yLabelFormatters[index]; + var minV = yS.niceMin === Number.MIN_VALUE ? 0 : yS.niceMin; + var longestStr = String(minV).length > String(yS.niceMax).length ? minV : yS.niceMax; // the second parameter -1 is the index of tick which user can use in the formatter + + var val = lbFormatter(longestStr, { + seriesIndex: index, + dataPointIndex: -1, + w: w + }); + var valArr = val; // if user has specified a custom formatter, and the result is null or empty, we need to discard the formatter and take the value as it is. + + if (typeof val === 'undefined' || val.length === 0) { + val = longestStr; + } + + if (w.globals.isBarHorizontal) { + labelPad = 0; + var barYaxisLabels = w.globals.labels.slice(); // get the longest string from the labels array and also apply label formatter to it + + val = Utils$1.getLargestStringFromArr(barYaxisLabels); + val = lbFormatter(val, { + seriesIndex: index, + dataPointIndex: -1, + w: w + }); + valArr = _this.dCtx.dimHelpers.getLargestStringFromMultiArr(val, barYaxisLabels); + } + + var graphics = new Graphics(_this.dCtx.ctx); + var rotateStr = 'rotate('.concat(yaxe.labels.rotate, ' 0 0)'); + var rect = graphics.getTextRects(val, yaxe.labels.style.fontSize, yaxe.labels.style.fontFamily, rotateStr, false); + var arrLabelrect = rect; + + if (val !== valArr) { + arrLabelrect = graphics.getTextRects(valArr, yaxe.labels.style.fontSize, yaxe.labels.style.fontFamily, rotateStr, false); + } + + ret.push({ + width: (yAxisMinWidth > arrLabelrect.width || yAxisMinWidth > rect.width ? yAxisMinWidth : arrLabelrect.width > rect.width ? arrLabelrect.width : rect.width) + labelPad, + height: arrLabelrect.height > rect.height ? arrLabelrect.height : rect.height + }); + } else { + ret.push({ + width: width, + height: height + }); + } + }); + return ret; + } + /** + * Get Y Axis Dimensions + * @memberof Dimensions + * @return {{width, height}} + **/ + + }, { + key: "getyAxisTitleCoords", + value: function getyAxisTitleCoords() { + var _this2 = this; + + var w = this.w; + var ret = []; + w.config.yaxis.map(function (yaxe, index) { + if (yaxe.show && yaxe.title.text !== undefined) { + var graphics = new Graphics(_this2.dCtx.ctx); + var rotateStr = 'rotate('.concat(yaxe.title.rotate, ' 0 0)'); + var rect = graphics.getTextRects(yaxe.title.text, yaxe.title.style.fontSize, yaxe.title.style.fontFamily, rotateStr, false); + ret.push({ + width: rect.width, + height: rect.height + }); + } else { + ret.push({ + width: 0, + height: 0 + }); + } + }); + return ret; + } + }, { + key: "getTotalYAxisWidth", + value: function getTotalYAxisWidth() { + var w = this.w; + var yAxisWidth = 0; + var yAxisWidthLeft = 0; + var yAxisWidthRight = 0; + var padding = w.globals.yAxisScale.length > 1 ? 10 : 0; + var axesUtils = new AxesUtils(this.dCtx.ctx); + + var isHiddenYAxis = function isHiddenYAxis(index) { + return w.globals.ignoreYAxisIndexes.indexOf(index) > -1; + }; + + var padForLabelTitle = function padForLabelTitle(coord, index) { + var floating = w.config.yaxis[index].floating; + var width = 0; + + if (coord.width > 0 && !floating) { + width = coord.width + padding; + + if (isHiddenYAxis(index)) { + width = width - coord.width - padding; + } + } else { + width = floating || axesUtils.isYAxisHidden(index) ? 0 : 5; + } + + w.config.yaxis[index].opposite ? yAxisWidthRight = yAxisWidthRight + width : yAxisWidthLeft = yAxisWidthLeft + width; + yAxisWidth = yAxisWidth + width; + }; + + w.globals.yLabelsCoords.map(function (yLabelCoord, index) { + padForLabelTitle(yLabelCoord, index); + }); + w.globals.yTitleCoords.map(function (yTitleCoord, index) { + padForLabelTitle(yTitleCoord, index); + }); + + if (w.globals.isBarHorizontal && !w.config.yaxis[0].floating) { + yAxisWidth = w.globals.yLabelsCoords[0].width + w.globals.yTitleCoords[0].width + 15; + } + + this.dCtx.yAxisWidthLeft = yAxisWidthLeft; + this.dCtx.yAxisWidthRight = yAxisWidthRight; + return yAxisWidth; + } + }]); + + return DimYAxis; + }(); + + var DimGrid = /*#__PURE__*/function () { + function DimGrid(dCtx) { + _classCallCheck(this, DimGrid); + + this.w = dCtx.w; + this.dCtx = dCtx; + } + + _createClass(DimGrid, [{ + key: "gridPadForColumnsInNumericAxis", + value: function gridPadForColumnsInNumericAxis(gridWidth) { + var w = this.w; + + if (w.globals.noData || w.globals.allSeriesCollapsed) { + return 0; + } + + var hasBar = function hasBar(type) { + return type === 'bar' || type === 'rangeBar' || type === 'candlestick' || type === 'boxPlot'; + }; + + var type = w.config.chart.type; + var barWidth = 0; + var seriesLen = hasBar(type) ? w.config.series.length : 1; + + if (w.globals.comboBarCount > 0) { + seriesLen = w.globals.comboBarCount; + } + + w.globals.collapsedSeries.forEach(function (c) { + if (hasBar(c.type)) { + seriesLen = seriesLen - 1; + } + }); + + if (w.config.chart.stacked) { + seriesLen = 1; + } + + var barsPresent = hasBar(type) || w.globals.comboBarCount > 0; + + if (barsPresent && w.globals.isXNumeric && !w.globals.isBarHorizontal && seriesLen > 0) { + var xRatio = 0; + var xRange = Math.abs(w.globals.initialMaxX - w.globals.initialMinX); + + if (xRange <= 3) { + xRange = w.globals.dataPoints; + } + + xRatio = xRange / gridWidth; + var xDivision; // max barwidth should be equal to minXDiff to avoid overlap + + if (w.globals.minXDiff && w.globals.minXDiff / xRatio > 0) { + xDivision = w.globals.minXDiff / xRatio; + } + + if (xDivision > gridWidth / 2) { + xDivision = xDivision / 2; + } + + barWidth = xDivision / seriesLen * parseInt(w.config.plotOptions.bar.columnWidth, 10) / 100; + + if (barWidth < 1) { + barWidth = 1; + } + + barWidth = barWidth / (seriesLen > 1 ? 1 : 1.5) + 5; + w.globals.barPadForNumericAxis = barWidth; + } + + return barWidth; + } + }, { + key: "gridPadFortitleSubtitle", + value: function gridPadFortitleSubtitle() { + var _this = this; + + var w = this.w; + var gl = w.globals; + var gridShrinkOffset = this.dCtx.isSparkline || !w.globals.axisCharts ? 0 : 10; + var titleSubtitle = ['title', 'subtitle']; + titleSubtitle.forEach(function (t) { + if (w.config[t].text !== undefined) { + gridShrinkOffset += w.config[t].margin; + } else { + gridShrinkOffset += _this.dCtx.isSparkline || !w.globals.axisCharts ? 0 : 5; + } + }); + + if (w.config.legend.show && w.config.legend.position === 'bottom' && !w.config.legend.floating && !w.globals.axisCharts) { + gridShrinkOffset += 10; + } + + var titleCoords = this.dCtx.dimHelpers.getTitleSubtitleCoords('title'); + var subtitleCoords = this.dCtx.dimHelpers.getTitleSubtitleCoords('subtitle'); + gl.gridHeight = gl.gridHeight - titleCoords.height - subtitleCoords.height - gridShrinkOffset; + gl.translateY = gl.translateY + titleCoords.height + subtitleCoords.height + gridShrinkOffset; + } + }, { + key: "setGridXPosForDualYAxis", + value: function setGridXPosForDualYAxis(yTitleCoords, yaxisLabelCoords) { + var w = this.w; + var axesUtils = new AxesUtils(this.dCtx.ctx); + w.config.yaxis.map(function (yaxe, index) { + if (w.globals.ignoreYAxisIndexes.indexOf(index) === -1 && !yaxe.floating && !axesUtils.isYAxisHidden(index)) { + if (yaxe.opposite) { + w.globals.translateX = w.globals.translateX - (yaxisLabelCoords[index].width + yTitleCoords[index].width) - parseInt(w.config.yaxis[index].labels.style.fontSize, 10) / 1.2 - 12; + } // fixes apexcharts.js#1599 + + + if (w.globals.translateX < 2) { + w.globals.translateX = 2; + } + } + }); + } + }]); + + return DimGrid; + }(); + + /** + * ApexCharts Dimensions Class for calculating rects of all elements that are drawn and will be drawn. + * + * @module Dimensions + **/ + + var Dimensions = /*#__PURE__*/function () { + function Dimensions(ctx) { + _classCallCheck(this, Dimensions); + + this.ctx = ctx; + this.w = ctx.w; + this.lgRect = {}; + this.yAxisWidth = 0; + this.yAxisWidthLeft = 0; + this.yAxisWidthRight = 0; + this.xAxisHeight = 0; + this.isSparkline = this.w.config.chart.sparkline.enabled; + this.dimHelpers = new Helpers$2(this); + this.dimYAxis = new DimYAxis(this); + this.dimXAxis = new DimXAxis(this); + this.dimGrid = new DimGrid(this); + this.lgWidthForSideLegends = 0; + this.gridPad = this.w.config.grid.padding; + this.xPadRight = 0; + this.xPadLeft = 0; + } + /** + * @memberof Dimensions + * @param {object} w - chart context + **/ + + + _createClass(Dimensions, [{ + key: "plotCoords", + value: function plotCoords() { + var _this = this; + + var w = this.w; + var gl = w.globals; + this.lgRect = this.dimHelpers.getLegendsRect(); + + if (this.isSparkline && (w.config.markers.discrete.length > 0 || w.config.markers.size > 0)) { + Object.entries(this.gridPad).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + k = _ref2[0], + v = _ref2[1]; + + _this.gridPad[k] = Math.max(v, _this.w.globals.markers.largestSize / 1.5); + }); + } + + if (gl.axisCharts) { + // for line / area / scatter / column + this.setDimensionsForAxisCharts(); + } else { + // for pie / donuts / circle + this.setDimensionsForNonAxisCharts(); + } + + this.dimGrid.gridPadFortitleSubtitle(); // after calculating everything, apply padding set by user + + gl.gridHeight = gl.gridHeight - this.gridPad.top - this.gridPad.bottom; + gl.gridWidth = gl.gridWidth - this.gridPad.left - this.gridPad.right - this.xPadRight - this.xPadLeft; + var barWidth = this.dimGrid.gridPadForColumnsInNumericAxis(gl.gridWidth); + gl.gridWidth = gl.gridWidth - barWidth * 2; + gl.translateX = gl.translateX + this.gridPad.left + this.xPadLeft + (barWidth > 0 ? barWidth + 4 : 0); + gl.translateY = gl.translateY + this.gridPad.top; + } + }, { + key: "setDimensionsForAxisCharts", + value: function setDimensionsForAxisCharts() { + var _this2 = this; + + var w = this.w; + var gl = w.globals; + var yaxisLabelCoords = this.dimYAxis.getyAxisLabelsCoords(); + var yTitleCoords = this.dimYAxis.getyAxisTitleCoords(); + w.globals.yLabelsCoords = []; + w.globals.yTitleCoords = []; + w.config.yaxis.map(function (yaxe, index) { + // store the labels and titles coords in global vars + w.globals.yLabelsCoords.push({ + width: yaxisLabelCoords[index].width, + index: index + }); + w.globals.yTitleCoords.push({ + width: yTitleCoords[index].width, + index: index + }); + }); + this.yAxisWidth = this.dimYAxis.getTotalYAxisWidth(); + var xaxisLabelCoords = this.dimXAxis.getxAxisLabelsCoords(); + var xaxisGroupLabelCoords = this.dimXAxis.getxAxisGroupLabelsCoords(); + var xtitleCoords = this.dimXAxis.getxAxisTitleCoords(); + this.conditionalChecksForAxisCoords(xaxisLabelCoords, xtitleCoords, xaxisGroupLabelCoords); + gl.translateXAxisY = w.globals.rotateXLabels ? this.xAxisHeight / 8 : -4; + gl.translateXAxisX = w.globals.rotateXLabels && w.globals.isXNumeric && w.config.xaxis.labels.rotate <= -45 ? -this.xAxisWidth / 4 : 0; + + if (w.globals.isBarHorizontal) { + gl.rotateXLabels = false; + gl.translateXAxisY = -1 * (parseInt(w.config.xaxis.labels.style.fontSize, 10) / 1.5); + } + + gl.translateXAxisY = gl.translateXAxisY + w.config.xaxis.labels.offsetY; + gl.translateXAxisX = gl.translateXAxisX + w.config.xaxis.labels.offsetX; + var yAxisWidth = this.yAxisWidth; + var xAxisHeight = this.xAxisHeight; + gl.xAxisLabelsHeight = this.xAxisHeight - xtitleCoords.height; + gl.xAxisGroupLabelsHeight = gl.xAxisLabelsHeight - xaxisLabelCoords.height; + gl.xAxisLabelsWidth = this.xAxisWidth; + gl.xAxisHeight = this.xAxisHeight; + var translateY = 10; + + if (w.config.chart.type === 'radar' || this.isSparkline) { + yAxisWidth = 0; + xAxisHeight = gl.goldenPadding; + } + + if (this.isSparkline) { + this.lgRect = { + height: 0, + width: 0 + }; + } + + if (this.isSparkline || w.config.chart.type === 'treemap') { + yAxisWidth = 0; + xAxisHeight = 0; + translateY = 0; + } + + if (!this.isSparkline) { + this.dimXAxis.additionalPaddingXLabels(xaxisLabelCoords); + } + + var legendTopBottom = function legendTopBottom() { + gl.translateX = yAxisWidth; + gl.gridHeight = gl.svgHeight - _this2.lgRect.height - xAxisHeight - (!_this2.isSparkline && w.config.chart.type !== 'treemap' ? w.globals.rotateXLabels ? 10 : 15 : 0); + gl.gridWidth = gl.svgWidth - yAxisWidth; + }; + + if (w.config.xaxis.position === 'top') translateY = gl.xAxisHeight - w.config.xaxis.axisTicks.height - 5; + + switch (w.config.legend.position) { + case 'bottom': + gl.translateY = translateY; + legendTopBottom(); + break; + + case 'top': + gl.translateY = this.lgRect.height + translateY; + legendTopBottom(); + break; + + case 'left': + gl.translateY = translateY; + gl.translateX = this.lgRect.width + yAxisWidth; + gl.gridHeight = gl.svgHeight - xAxisHeight - 12; + gl.gridWidth = gl.svgWidth - this.lgRect.width - yAxisWidth; + break; + + case 'right': + gl.translateY = translateY; + gl.translateX = yAxisWidth; + gl.gridHeight = gl.svgHeight - xAxisHeight - 12; + gl.gridWidth = gl.svgWidth - this.lgRect.width - yAxisWidth - 5; + break; + + default: + throw new Error('Legend position not supported'); + } + + this.dimGrid.setGridXPosForDualYAxis(yTitleCoords, yaxisLabelCoords); // after drawing everything, set the Y axis positions + + var objyAxis = new YAxis(this.ctx); + objyAxis.setYAxisXPosition(yaxisLabelCoords, yTitleCoords); + } + }, { + key: "setDimensionsForNonAxisCharts", + value: function setDimensionsForNonAxisCharts() { + var w = this.w; + var gl = w.globals; + var cnf = w.config; + var xPad = 0; + + if (w.config.legend.show && !w.config.legend.floating) { + xPad = 20; + } + + var type = cnf.chart.type === 'pie' || cnf.chart.type === 'polarArea' || cnf.chart.type === 'donut' ? 'pie' : 'radialBar'; + var offY = cnf.plotOptions[type].offsetY; + var offX = cnf.plotOptions[type].offsetX; + + if (!cnf.legend.show || cnf.legend.floating) { + gl.gridHeight = gl.svgHeight - cnf.grid.padding.left + cnf.grid.padding.right; + gl.gridWidth = gl.gridHeight; + gl.translateY = offY; + gl.translateX = offX + (gl.svgWidth - gl.gridWidth) / 2; + return; + } + + switch (cnf.legend.position) { + case 'bottom': + gl.gridHeight = gl.svgHeight - this.lgRect.height - gl.goldenPadding; + gl.gridWidth = gl.svgWidth; + gl.translateY = offY - 10; + gl.translateX = offX + (gl.svgWidth - gl.gridWidth) / 2; + break; + + case 'top': + gl.gridHeight = gl.svgHeight - this.lgRect.height - gl.goldenPadding; + gl.gridWidth = gl.svgWidth; + gl.translateY = this.lgRect.height + offY + 10; + gl.translateX = offX + (gl.svgWidth - gl.gridWidth) / 2; + break; + + case 'left': + gl.gridWidth = gl.svgWidth - this.lgRect.width - xPad; + gl.gridHeight = cnf.chart.height !== 'auto' ? gl.svgHeight : gl.gridWidth; + gl.translateY = offY; + gl.translateX = offX + this.lgRect.width + xPad; + break; + + case 'right': + gl.gridWidth = gl.svgWidth - this.lgRect.width - xPad - 5; + gl.gridHeight = cnf.chart.height !== 'auto' ? gl.svgHeight : gl.gridWidth; + gl.translateY = offY; + gl.translateX = offX + 10; + break; + + default: + throw new Error('Legend position not supported'); + } + } + }, { + key: "conditionalChecksForAxisCoords", + value: function conditionalChecksForAxisCoords(xaxisLabelCoords, xtitleCoords, xaxisGroupLabelCoords) { + var w = this.w; + var xAxisNum = w.globals.hasGroups ? 2 : 1; + var baseXAxisHeight = xaxisGroupLabelCoords.height + xaxisLabelCoords.height + xtitleCoords.height; + var xAxisHeightMultiplicate = w.globals.isMultiLineX ? 1.2 : w.globals.LINE_HEIGHT_RATIO; + var rotatedXAxisOffset = w.globals.rotateXLabels ? 22 : 10; + var rotatedXAxisLegendOffset = w.globals.rotateXLabels && w.config.legend.position === 'bottom'; + var additionalOffset = rotatedXAxisLegendOffset ? 10 : 0; + this.xAxisHeight = baseXAxisHeight * xAxisHeightMultiplicate + xAxisNum * rotatedXAxisOffset + additionalOffset; + this.xAxisWidth = xaxisLabelCoords.width; + + if (this.xAxisHeight - xtitleCoords.height > w.config.xaxis.labels.maxHeight) { + this.xAxisHeight = w.config.xaxis.labels.maxHeight; + } + + if (w.config.xaxis.labels.minHeight && this.xAxisHeight < w.config.xaxis.labels.minHeight) { + this.xAxisHeight = w.config.xaxis.labels.minHeight; + } + + if (w.config.xaxis.floating) { + this.xAxisHeight = 0; + } + + var minYAxisWidth = 0; + var maxYAxisWidth = 0; + w.config.yaxis.forEach(function (y) { + minYAxisWidth += y.labels.minWidth; + maxYAxisWidth += y.labels.maxWidth; + }); + + if (this.yAxisWidth < minYAxisWidth) { + this.yAxisWidth = minYAxisWidth; + } + + if (this.yAxisWidth > maxYAxisWidth) { + this.yAxisWidth = maxYAxisWidth; + } + } + }]); + + return Dimensions; + }(); + + var Helpers$1 = /*#__PURE__*/function () { + function Helpers(lgCtx) { + _classCallCheck(this, Helpers); + + this.w = lgCtx.w; + this.lgCtx = lgCtx; + } + + _createClass(Helpers, [{ + key: "getLegendStyles", + value: function getLegendStyles() { + var stylesheet = document.createElement('style'); + stylesheet.setAttribute('type', 'text/css'); + var text = "\t\n \t\n .apexcharts-legend {\t\n display: flex;\t\n overflow: auto;\t\n padding: 0 10px;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\t\n flex-wrap: wrap\t\n }\t\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n flex-direction: column;\t\n bottom: 0;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n justify-content: flex-start;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\t\n justify-content: center; \t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\t\n justify-content: flex-end;\t\n }\t\n .apexcharts-legend-series {\t\n cursor: pointer;\t\n line-height: normal;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\t\n display: flex;\t\n align-items: center;\t\n }\t\n .apexcharts-legend-text {\t\n position: relative;\t\n font-size: 14px;\t\n }\t\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n pointer-events: none;\t\n }\t\n .apexcharts-legend-marker {\t\n position: relative;\t\n display: inline-block;\t\n cursor: pointer;\t\n margin-right: 3px;\t\n border-style: solid;\n }\t\n \t\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\t\n display: inline-block;\t\n }\t\n .apexcharts-legend-series.apexcharts-no-click {\t\n cursor: auto;\t\n }\t\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n display: none !important;\t\n }\t\n .apexcharts-inactive-legend {\t\n opacity: 0.45;\t\n }"; + var rules = document.createTextNode(text); + stylesheet.appendChild(rules); + return stylesheet; + } + }, { + key: "getLegendBBox", + value: function getLegendBBox() { + var w = this.w; + var currLegendsWrap = w.globals.dom.baseEl.querySelector('.apexcharts-legend'); + var currLegendsWrapRect = currLegendsWrap.getBoundingClientRect(); + var currLegendsWrapWidth = currLegendsWrapRect.width; + var currLegendsWrapHeight = currLegendsWrapRect.height; + return { + clwh: currLegendsWrapHeight, + clww: currLegendsWrapWidth + }; + } + }, { + key: "appendToForeignObject", + value: function appendToForeignObject() { + var gl = this.w.globals; + gl.dom.elLegendForeign = document.createElementNS(gl.SVGNS, 'foreignObject'); + var elForeign = gl.dom.elLegendForeign; + elForeign.setAttribute('x', 0); + elForeign.setAttribute('y', 0); + elForeign.setAttribute('width', gl.svgWidth); + elForeign.setAttribute('height', gl.svgHeight); + gl.dom.elLegendWrap.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml'); + elForeign.appendChild(gl.dom.elLegendWrap); + elForeign.appendChild(this.getLegendStyles()); //gl.dom.elGraphical.node.insertAdjacentElement('afterend', elForeign) + // the above line causes issue #1907 + + gl.dom.Paper.node.insertBefore(elForeign, gl.dom.elGraphical.node); + } + }, { + key: "toggleDataSeries", + value: function toggleDataSeries(seriesCnt, isHidden) { + var _this = this; + + var w = this.w; + + if (w.globals.axisCharts || w.config.chart.type === 'radialBar') { + w.globals.resized = true; // we don't want initial animations again + + var seriesEl = null; + var realIndex = null; // yes, make it null. 1 series will rise at a time + + w.globals.risingSeries = []; + + if (w.globals.axisCharts) { + seriesEl = w.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(seriesCnt, "']")); + realIndex = parseInt(seriesEl.getAttribute('data:realIndex'), 10); + } else { + seriesEl = w.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(seriesCnt + 1, "']")); + realIndex = parseInt(seriesEl.getAttribute('rel'), 10) - 1; + } + + if (isHidden) { + var seriesToMakeVisible = [{ + cs: w.globals.collapsedSeries, + csi: w.globals.collapsedSeriesIndices + }, { + cs: w.globals.ancillaryCollapsedSeries, + csi: w.globals.ancillaryCollapsedSeriesIndices + }]; + seriesToMakeVisible.forEach(function (r) { + _this.riseCollapsedSeries(r.cs, r.csi, realIndex); + }); + } else { + this.hideSeries({ + seriesEl: seriesEl, + realIndex: realIndex + }); + } + } else { + // for non-axis charts i.e pie / donuts + var _seriesEl = w.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(seriesCnt + 1, "'] path")); + + var type = w.config.chart.type; + + if (type === 'pie' || type === 'polarArea' || type === 'donut') { + var dataLabels = w.config.plotOptions.pie.donut.labels; + var graphics = new Graphics(this.lgCtx.ctx); + graphics.pathMouseDown(_seriesEl.members[0], null); + this.lgCtx.ctx.pie.printDataLabelsInner(_seriesEl.members[0].node, dataLabels); + } + + _seriesEl.fire('click'); + } + } + }, { + key: "hideSeries", + value: function hideSeries(_ref) { + var seriesEl = _ref.seriesEl, + realIndex = _ref.realIndex; + var w = this.w; + var series = Utils$1.clone(w.config.series); + + if (w.globals.axisCharts) { + var shouldNotHideYAxis = false; + + if (w.config.yaxis[realIndex] && w.config.yaxis[realIndex].show && w.config.yaxis[realIndex].showAlways) { + shouldNotHideYAxis = true; + + if (w.globals.ancillaryCollapsedSeriesIndices.indexOf(realIndex) < 0) { + w.globals.ancillaryCollapsedSeries.push({ + index: realIndex, + data: series[realIndex].data.slice(), + type: seriesEl.parentNode.className.baseVal.split('-')[1] + }); + w.globals.ancillaryCollapsedSeriesIndices.push(realIndex); + } + } + + if (!shouldNotHideYAxis) { + w.globals.collapsedSeries.push({ + index: realIndex, + data: series[realIndex].data.slice(), + type: seriesEl.parentNode.className.baseVal.split('-')[1] + }); + w.globals.collapsedSeriesIndices.push(realIndex); + var removeIndexOfRising = w.globals.risingSeries.indexOf(realIndex); + w.globals.risingSeries.splice(removeIndexOfRising, 1); + } + } else { + w.globals.collapsedSeries.push({ + index: realIndex, + data: series[realIndex] + }); + w.globals.collapsedSeriesIndices.push(realIndex); + } + + var seriesChildren = seriesEl.childNodes; + + for (var sc = 0; sc < seriesChildren.length; sc++) { + if (seriesChildren[sc].classList.contains('apexcharts-series-markers-wrap')) { + if (seriesChildren[sc].classList.contains('apexcharts-hide')) { + seriesChildren[sc].classList.remove('apexcharts-hide'); + } else { + seriesChildren[sc].classList.add('apexcharts-hide'); + } + } + } + + w.globals.allSeriesCollapsed = w.globals.collapsedSeries.length === w.config.series.length; + series = this._getSeriesBasedOnCollapsedState(series); + + this.lgCtx.ctx.updateHelpers._updateSeries(series, w.config.chart.animations.dynamicAnimation.enabled); + } + }, { + key: "riseCollapsedSeries", + value: function riseCollapsedSeries(collapsedSeries, seriesIndices, realIndex) { + var w = this.w; + var series = Utils$1.clone(w.config.series); + + if (collapsedSeries.length > 0) { + for (var c = 0; c < collapsedSeries.length; c++) { + if (collapsedSeries[c].index === realIndex) { + if (w.globals.axisCharts) { + series[realIndex].data = collapsedSeries[c].data.slice(); + collapsedSeries.splice(c, 1); + seriesIndices.splice(c, 1); + w.globals.risingSeries.push(realIndex); + } else { + series[realIndex] = collapsedSeries[c].data; + collapsedSeries.splice(c, 1); + seriesIndices.splice(c, 1); + w.globals.risingSeries.push(realIndex); + } + } + } + + series = this._getSeriesBasedOnCollapsedState(series); + + this.lgCtx.ctx.updateHelpers._updateSeries(series, w.config.chart.animations.dynamicAnimation.enabled); + } + } + }, { + key: "_getSeriesBasedOnCollapsedState", + value: function _getSeriesBasedOnCollapsedState(series) { + var w = this.w; + + if (w.globals.axisCharts) { + series.forEach(function (s, sI) { + if (w.globals.collapsedSeriesIndices.indexOf(sI) > -1) { + series[sI].data = []; + } + }); + } else { + series.forEach(function (s, sI) { + if (w.globals.collapsedSeriesIndices.indexOf(sI) > -1) { + series[sI] = 0; + } + }); + } + + return series; + } + }]); + + return Helpers; + }(); + + /** + * ApexCharts Legend Class to draw legend. + * + * @module Legend + **/ + + var Legend = /*#__PURE__*/function () { + function Legend(ctx, opts) { + _classCallCheck(this, Legend); + + this.ctx = ctx; + this.w = ctx.w; + this.onLegendClick = this.onLegendClick.bind(this); + this.onLegendHovered = this.onLegendHovered.bind(this); + this.isBarsDistributed = this.w.config.chart.type === 'bar' && this.w.config.plotOptions.bar.distributed && this.w.config.series.length === 1; + this.legendHelpers = new Helpers$1(this); + } + + _createClass(Legend, [{ + key: "init", + value: function init() { + var w = this.w; + var gl = w.globals; + var cnf = w.config; + var showLegendAlways = cnf.legend.showForSingleSeries && gl.series.length === 1 || this.isBarsDistributed || gl.series.length > 1; + + if ((showLegendAlways || !gl.axisCharts) && cnf.legend.show) { + while (gl.dom.elLegendWrap.firstChild) { + gl.dom.elLegendWrap.removeChild(gl.dom.elLegendWrap.firstChild); + } + + this.drawLegends(); + + if (!Utils$1.isIE11()) { + this.legendHelpers.appendToForeignObject(); + } else { + // IE11 doesn't supports foreignObject, hence append it to + document.getElementsByTagName('head')[0].appendChild(this.legendHelpers.getLegendStyles()); + } + + if (cnf.legend.position === 'bottom' || cnf.legend.position === 'top') { + this.legendAlignHorizontal(); + } else if (cnf.legend.position === 'right' || cnf.legend.position === 'left') { + this.legendAlignVertical(); + } + } + } + }, { + key: "drawLegends", + value: function drawLegends() { + var me = this; + var w = this.w; + var fontFamily = w.config.legend.fontFamily; + var legendNames = w.globals.seriesNames; + var fillcolor = w.globals.colors.slice(); + + if (w.config.chart.type === 'heatmap') { + var ranges = w.config.plotOptions.heatmap.colorScale.ranges; + legendNames = ranges.map(function (colorScale) { + return colorScale.name ? colorScale.name : colorScale.from + ' - ' + colorScale.to; + }); + fillcolor = ranges.map(function (color) { + return color.color; + }); + } else if (this.isBarsDistributed) { + legendNames = w.globals.labels.slice(); + } + + if (w.config.legend.customLegendItems.length) { + legendNames = w.config.legend.customLegendItems; + } + + var legendFormatter = w.globals.legendFormatter; + var isLegendInversed = w.config.legend.inverseOrder; + + for (var i = isLegendInversed ? legendNames.length - 1 : 0; isLegendInversed ? i >= 0 : i <= legendNames.length - 1; isLegendInversed ? i-- : i++) { + var text = legendFormatter(legendNames[i], { + seriesIndex: i, + w: w + }); + var collapsedSeries = false; + var ancillaryCollapsedSeries = false; + + if (w.globals.collapsedSeries.length > 0) { + for (var c = 0; c < w.globals.collapsedSeries.length; c++) { + if (w.globals.collapsedSeries[c].index === i) { + collapsedSeries = true; + } + } + } + + if (w.globals.ancillaryCollapsedSeriesIndices.length > 0) { + for (var _c = 0; _c < w.globals.ancillaryCollapsedSeriesIndices.length; _c++) { + if (w.globals.ancillaryCollapsedSeriesIndices[_c] === i) { + ancillaryCollapsedSeries = true; + } + } + } + + var elMarker = document.createElement('span'); + elMarker.classList.add('apexcharts-legend-marker'); + var mOffsetX = w.config.legend.markers.offsetX; + var mOffsetY = w.config.legend.markers.offsetY; + var mHeight = w.config.legend.markers.height; + var mWidth = w.config.legend.markers.width; + var mBorderWidth = w.config.legend.markers.strokeWidth; + var mBorderColor = w.config.legend.markers.strokeColor; + var mBorderRadius = w.config.legend.markers.radius; // todo - untested code below + // if (Array.isArray(w.config.legend.markers.shape)) { + // } else { + // if (w.config.legend.markers.shape !== 'circle') { + // mBorderRadius = 1 + // } + // } + + var mStyle = elMarker.style; + mStyle.background = fillcolor[i]; + mStyle.color = fillcolor[i]; + mStyle.setProperty('background', fillcolor[i], 'important'); // override fill color with custom legend.markers.fillColors + + if (w.config.legend.markers.fillColors && w.config.legend.markers.fillColors[i]) { + mStyle.background = w.config.legend.markers.fillColors[i]; + } // override with data color + + + if (w.globals.seriesColors[i] !== undefined) { + mStyle.background = w.globals.seriesColors[i]; + mStyle.color = w.globals.seriesColors[i]; + } + + mStyle.height = Array.isArray(mHeight) ? parseFloat(mHeight[i]) + 'px' : parseFloat(mHeight) + 'px'; + mStyle.width = Array.isArray(mWidth) ? parseFloat(mWidth[i]) + 'px' : parseFloat(mWidth) + 'px'; + mStyle.left = (Array.isArray(mOffsetX) ? parseFloat(mOffsetX[i]) : parseFloat(mOffsetX)) + 'px'; + mStyle.top = (Array.isArray(mOffsetY) ? parseFloat(mOffsetY[i]) : parseFloat(mOffsetY)) + 'px'; + mStyle.borderWidth = Array.isArray(mBorderWidth) ? mBorderWidth[i] : mBorderWidth; + mStyle.borderColor = Array.isArray(mBorderColor) ? mBorderColor[i] : mBorderColor; + mStyle.borderRadius = Array.isArray(mBorderRadius) ? parseFloat(mBorderRadius[i]) + 'px' : parseFloat(mBorderRadius) + 'px'; + + if (w.config.legend.markers.customHTML) { + if (Array.isArray(w.config.legend.markers.customHTML)) { + if (w.config.legend.markers.customHTML[i]) { + elMarker.innerHTML = w.config.legend.markers.customHTML[i](); + } + } else { + elMarker.innerHTML = w.config.legend.markers.customHTML(); + } + } + + Graphics.setAttrs(elMarker, { + rel: i + 1, + 'data:collapsed': collapsedSeries || ancillaryCollapsedSeries + }); + + if (collapsedSeries || ancillaryCollapsedSeries) { + elMarker.classList.add('apexcharts-inactive-legend'); + } + + var elLegend = document.createElement('div'); + var elLegendText = document.createElement('span'); + elLegendText.classList.add('apexcharts-legend-text'); + elLegendText.innerHTML = Array.isArray(text) ? text.join(' ') : text; + var textColor = w.config.legend.labels.useSeriesColors ? w.globals.colors[i] : w.config.legend.labels.colors; + + if (!textColor) { + textColor = w.config.chart.foreColor; + } + + elLegendText.style.color = textColor; + elLegendText.style.fontSize = parseFloat(w.config.legend.fontSize) + 'px'; + elLegendText.style.fontWeight = w.config.legend.fontWeight; + elLegendText.style.fontFamily = fontFamily || w.config.chart.fontFamily; + Graphics.setAttrs(elLegendText, { + rel: i + 1, + i: i, + 'data:default-text': encodeURIComponent(text), + 'data:collapsed': collapsedSeries || ancillaryCollapsedSeries + }); + elLegend.appendChild(elMarker); + elLegend.appendChild(elLegendText); + var coreUtils = new CoreUtils(this.ctx); + + if (!w.config.legend.showForZeroSeries) { + var total = coreUtils.getSeriesTotalByIndex(i); + + if (total === 0 && coreUtils.seriesHaveSameValues(i) && !coreUtils.isSeriesNull(i) && w.globals.collapsedSeriesIndices.indexOf(i) === -1 && w.globals.ancillaryCollapsedSeriesIndices.indexOf(i) === -1) { + elLegend.classList.add('apexcharts-hidden-zero-series'); + } + } + + if (!w.config.legend.showForNullSeries) { + if (coreUtils.isSeriesNull(i) && w.globals.collapsedSeriesIndices.indexOf(i) === -1 && w.globals.ancillaryCollapsedSeriesIndices.indexOf(i) === -1) { + elLegend.classList.add('apexcharts-hidden-null-series'); + } + } + + w.globals.dom.elLegendWrap.appendChild(elLegend); + w.globals.dom.elLegendWrap.classList.add("apexcharts-align-".concat(w.config.legend.horizontalAlign)); + w.globals.dom.elLegendWrap.classList.add('apx-legend-position-' + w.config.legend.position); + elLegend.classList.add('apexcharts-legend-series'); + elLegend.style.margin = "".concat(w.config.legend.itemMargin.vertical, "px ").concat(w.config.legend.itemMargin.horizontal, "px"); + w.globals.dom.elLegendWrap.style.width = w.config.legend.width ? w.config.legend.width + 'px' : ''; + w.globals.dom.elLegendWrap.style.height = w.config.legend.height ? w.config.legend.height + 'px' : ''; + Graphics.setAttrs(elLegend, { + rel: i + 1, + seriesName: Utils$1.escapeString(legendNames[i]), + 'data:collapsed': collapsedSeries || ancillaryCollapsedSeries + }); + + if (collapsedSeries || ancillaryCollapsedSeries) { + elLegend.classList.add('apexcharts-inactive-legend'); + } + + if (!w.config.legend.onItemClick.toggleDataSeries) { + elLegend.classList.add('apexcharts-no-click'); + } + } + + w.globals.dom.elWrap.addEventListener('click', me.onLegendClick, true); + + if (w.config.legend.onItemHover.highlightDataSeries && w.config.legend.customLegendItems.length === 0) { + w.globals.dom.elWrap.addEventListener('mousemove', me.onLegendHovered, true); + w.globals.dom.elWrap.addEventListener('mouseout', me.onLegendHovered, true); + } + } + }, { + key: "setLegendWrapXY", + value: function setLegendWrapXY(offsetX, offsetY) { + var w = this.w; + var elLegendWrap = w.globals.dom.baseEl.querySelector('.apexcharts-legend'); + var legendRect = elLegendWrap.getBoundingClientRect(); + var x = 0; + var y = 0; + + if (w.config.legend.position === 'bottom') { + y = y + (w.globals.svgHeight - legendRect.height / 2); + } else if (w.config.legend.position === 'top') { + var dim = new Dimensions(this.ctx); + var titleH = dim.dimHelpers.getTitleSubtitleCoords('title').height; + var subtitleH = dim.dimHelpers.getTitleSubtitleCoords('subtitle').height; + y = y + (titleH > 0 ? titleH - 10 : 0) + (subtitleH > 0 ? subtitleH - 10 : 0); + } + + elLegendWrap.style.position = 'absolute'; + x = x + offsetX + w.config.legend.offsetX; + y = y + offsetY + w.config.legend.offsetY; + elLegendWrap.style.left = x + 'px'; + elLegendWrap.style.top = y + 'px'; + + if (w.config.legend.position === 'bottom') { + elLegendWrap.style.top = 'auto'; + elLegendWrap.style.bottom = 5 - w.config.legend.offsetY + 'px'; + } else if (w.config.legend.position === 'right') { + elLegendWrap.style.left = 'auto'; + elLegendWrap.style.right = 25 + w.config.legend.offsetX + 'px'; + } + + var fixedHeigthWidth = ['width', 'height']; + fixedHeigthWidth.forEach(function (hw) { + if (elLegendWrap.style[hw]) { + elLegendWrap.style[hw] = parseInt(w.config.legend[hw], 10) + 'px'; + } + }); + } + }, { + key: "legendAlignHorizontal", + value: function legendAlignHorizontal() { + var w = this.w; + var elLegendWrap = w.globals.dom.baseEl.querySelector('.apexcharts-legend'); + elLegendWrap.style.right = 0; + var lRect = this.legendHelpers.getLegendBBox(); + var dimensions = new Dimensions(this.ctx); + var titleRect = dimensions.dimHelpers.getTitleSubtitleCoords('title'); + var subtitleRect = dimensions.dimHelpers.getTitleSubtitleCoords('subtitle'); + var offsetX = 20; + var offsetY = 0; // the whole legend box is set to bottom + + if (w.config.legend.position === 'bottom') { + offsetY = -lRect.clwh / 1.8; + } else if (w.config.legend.position === 'top') { + offsetY = titleRect.height + subtitleRect.height + w.config.title.margin + w.config.subtitle.margin - 10; + } + + this.setLegendWrapXY(offsetX, offsetY); + } + }, { + key: "legendAlignVertical", + value: function legendAlignVertical() { + var w = this.w; + var lRect = this.legendHelpers.getLegendBBox(); + var offsetY = 20; + var offsetX = 0; + + if (w.config.legend.position === 'left') { + offsetX = 20; + } + + if (w.config.legend.position === 'right') { + offsetX = w.globals.svgWidth - lRect.clww - 10; + } + + this.setLegendWrapXY(offsetX, offsetY); + } + }, { + key: "onLegendHovered", + value: function onLegendHovered(e) { + var w = this.w; + var hoverOverLegend = e.target.classList.contains('apexcharts-legend-text') || e.target.classList.contains('apexcharts-legend-marker'); + + if (w.config.chart.type !== 'heatmap' && !this.isBarsDistributed) { + if (!e.target.classList.contains('apexcharts-inactive-legend') && hoverOverLegend) { + var series = new Series(this.ctx); + series.toggleSeriesOnHover(e, e.target); + } + } else { + // for heatmap handling + if (hoverOverLegend) { + var seriesCnt = parseInt(e.target.getAttribute('rel'), 10) - 1; + this.ctx.events.fireEvent('legendHover', [this.ctx, seriesCnt, this.w]); + + var _series = new Series(this.ctx); + + _series.highlightRangeInSeries(e, e.target); + } + } + } + }, { + key: "onLegendClick", + value: function onLegendClick(e) { + var w = this.w; + if (w.config.legend.customLegendItems.length) return; + + if (e.target.classList.contains('apexcharts-legend-text') || e.target.classList.contains('apexcharts-legend-marker')) { + var seriesCnt = parseInt(e.target.getAttribute('rel'), 10) - 1; + var isHidden = e.target.getAttribute('data:collapsed') === 'true'; + var legendClick = this.w.config.chart.events.legendClick; + + if (typeof legendClick === 'function') { + legendClick(this.ctx, seriesCnt, this.w); + } + + this.ctx.events.fireEvent('legendClick', [this.ctx, seriesCnt, this.w]); + var markerClick = this.w.config.legend.markers.onClick; + + if (typeof markerClick === 'function' && e.target.classList.contains('apexcharts-legend-marker')) { + markerClick(this.ctx, seriesCnt, this.w); + this.ctx.events.fireEvent('legendMarkerClick', [this.ctx, seriesCnt, this.w]); + } // for now - just prevent click on heatmap legend - and allow hover only + + + var clickAllowed = w.config.chart.type !== 'treemap' && w.config.chart.type !== 'heatmap' && !this.isBarsDistributed; + + if (clickAllowed && w.config.legend.onItemClick.toggleDataSeries) { + this.legendHelpers.toggleDataSeries(seriesCnt, isHidden); + } + } + } + }]); + + return Legend; + }(); + + var icoPan = "\n \n \n \n \n \n \n \n"; + + var icoZoom = "\n \n \n \n"; + + var icoReset = "\n \n \n"; + + var icoZoomIn = "\n \n \n\n"; + + var icoZoomOut = "\n \n \n\n"; + + var icoSelect = "\n \n \n"; + + var icoMenu = ""; + + /** + * ApexCharts Toolbar Class for creating toolbar in axis based charts. + * + * @module Toolbar + **/ + + var Toolbar = /*#__PURE__*/function () { + function Toolbar(ctx) { + _classCallCheck(this, Toolbar); + + this.ctx = ctx; + this.w = ctx.w; + var w = this.w; + this.ev = this.w.config.chart.events; + this.selectedClass = 'apexcharts-selected'; + this.localeValues = this.w.globals.locale.toolbar; + this.minX = w.globals.minX; + this.maxX = w.globals.maxX; + } + + _createClass(Toolbar, [{ + key: "createToolbar", + value: function createToolbar() { + var _this = this; + + var w = this.w; + + var createDiv = function createDiv() { + return document.createElement('div'); + }; + + var elToolbarWrap = createDiv(); + elToolbarWrap.setAttribute('class', 'apexcharts-toolbar'); + elToolbarWrap.style.top = w.config.chart.toolbar.offsetY + 'px'; + elToolbarWrap.style.right = -w.config.chart.toolbar.offsetX + 3 + 'px'; + w.globals.dom.elWrap.appendChild(elToolbarWrap); + this.elZoom = createDiv(); + this.elZoomIn = createDiv(); + this.elZoomOut = createDiv(); + this.elPan = createDiv(); + this.elSelection = createDiv(); + this.elZoomReset = createDiv(); + this.elMenuIcon = createDiv(); + this.elMenu = createDiv(); + this.elCustomIcons = []; + this.t = w.config.chart.toolbar.tools; + + if (Array.isArray(this.t.customIcons)) { + for (var i = 0; i < this.t.customIcons.length; i++) { + this.elCustomIcons.push(createDiv()); + } + } + + var toolbarControls = []; + + var appendZoomControl = function appendZoomControl(type, el, ico) { + var tool = type.toLowerCase(); + + if (_this.t[tool] && w.config.chart.zoom.enabled) { + toolbarControls.push({ + el: el, + icon: typeof _this.t[tool] === 'string' ? _this.t[tool] : ico, + title: _this.localeValues[type], + class: "apexcharts-".concat(tool, "-icon") + }); + } + }; + + appendZoomControl('zoomIn', this.elZoomIn, icoZoomIn); + appendZoomControl('zoomOut', this.elZoomOut, icoZoomOut); + + var zoomSelectionCtrls = function zoomSelectionCtrls(z) { + if (_this.t[z] && w.config.chart[z].enabled) { + toolbarControls.push({ + el: z === 'zoom' ? _this.elZoom : _this.elSelection, + icon: typeof _this.t[z] === 'string' ? _this.t[z] : z === 'zoom' ? icoZoom : icoSelect, + title: _this.localeValues[z === 'zoom' ? 'selectionZoom' : 'selection'], + class: w.globals.isTouchDevice ? 'apexcharts-element-hidden' : "apexcharts-".concat(z, "-icon") + }); + } + }; + + zoomSelectionCtrls('zoom'); + zoomSelectionCtrls('selection'); + + if (this.t.pan && w.config.chart.zoom.enabled) { + toolbarControls.push({ + el: this.elPan, + icon: typeof this.t.pan === 'string' ? this.t.pan : icoPan, + title: this.localeValues.pan, + class: w.globals.isTouchDevice ? 'apexcharts-element-hidden' : 'apexcharts-pan-icon' + }); + } + + appendZoomControl('reset', this.elZoomReset, icoReset); + + if (this.t.download) { + toolbarControls.push({ + el: this.elMenuIcon, + icon: typeof this.t.download === 'string' ? this.t.download : icoMenu, + title: this.localeValues.menu, + class: 'apexcharts-menu-icon' + }); + } + + for (var _i = 0; _i < this.elCustomIcons.length; _i++) { + toolbarControls.push({ + el: this.elCustomIcons[_i], + icon: this.t.customIcons[_i].icon, + title: this.t.customIcons[_i].title, + index: this.t.customIcons[_i].index, + class: 'apexcharts-toolbar-custom-icon ' + this.t.customIcons[_i].class + }); + } + + toolbarControls.forEach(function (t, index) { + if (t.index) { + Utils$1.moveIndexInArray(toolbarControls, index, t.index); + } + }); + + for (var _i2 = 0; _i2 < toolbarControls.length; _i2++) { + Graphics.setAttrs(toolbarControls[_i2].el, { + class: toolbarControls[_i2].class, + title: toolbarControls[_i2].title + }); + toolbarControls[_i2].el.innerHTML = toolbarControls[_i2].icon; + elToolbarWrap.appendChild(toolbarControls[_i2].el); + } + + this._createHamburgerMenu(elToolbarWrap); + + if (w.globals.zoomEnabled) { + this.elZoom.classList.add(this.selectedClass); + } else if (w.globals.panEnabled) { + this.elPan.classList.add(this.selectedClass); + } else if (w.globals.selectionEnabled) { + this.elSelection.classList.add(this.selectedClass); + } + + this.addToolbarEventListeners(); + } + }, { + key: "_createHamburgerMenu", + value: function _createHamburgerMenu(parent) { + this.elMenuItems = []; + parent.appendChild(this.elMenu); + Graphics.setAttrs(this.elMenu, { + class: 'apexcharts-menu' + }); + var menuItems = [{ + name: 'exportSVG', + title: this.localeValues.exportToSVG + }, { + name: 'exportPNG', + title: this.localeValues.exportToPNG + }, { + name: 'exportCSV', + title: this.localeValues.exportToCSV + }]; + + if (!this.w.globals.allSeriesHasEqualX) { + // if it is a multi series, and all series have variable x values, export CSV won't work + menuItems.splice(2, 1); + } + + for (var i = 0; i < menuItems.length; i++) { + this.elMenuItems.push(document.createElement('div')); + this.elMenuItems[i].innerHTML = menuItems[i].title; + Graphics.setAttrs(this.elMenuItems[i], { + class: "apexcharts-menu-item ".concat(menuItems[i].name), + title: menuItems[i].title + }); + this.elMenu.appendChild(this.elMenuItems[i]); + } + } + }, { + key: "addToolbarEventListeners", + value: function addToolbarEventListeners() { + var _this2 = this; + + this.elZoomReset.addEventListener('click', this.handleZoomReset.bind(this)); + this.elSelection.addEventListener('click', this.toggleZoomSelection.bind(this, 'selection')); + this.elZoom.addEventListener('click', this.toggleZoomSelection.bind(this, 'zoom')); + this.elZoomIn.addEventListener('click', this.handleZoomIn.bind(this)); + this.elZoomOut.addEventListener('click', this.handleZoomOut.bind(this)); + this.elPan.addEventListener('click', this.togglePanning.bind(this)); + this.elMenuIcon.addEventListener('click', this.toggleMenu.bind(this)); + this.elMenuItems.forEach(function (m) { + if (m.classList.contains('exportSVG')) { + m.addEventListener('click', _this2.handleDownload.bind(_this2, 'svg')); + } else if (m.classList.contains('exportPNG')) { + m.addEventListener('click', _this2.handleDownload.bind(_this2, 'png')); + } else if (m.classList.contains('exportCSV')) { + m.addEventListener('click', _this2.handleDownload.bind(_this2, 'csv')); + } + }); + + for (var i = 0; i < this.t.customIcons.length; i++) { + this.elCustomIcons[i].addEventListener('click', this.t.customIcons[i].click.bind(this, this.ctx, this.ctx.w)); + } + } + }, { + key: "toggleZoomSelection", + value: function toggleZoomSelection(type) { + var charts = this.ctx.getSyncedCharts(); + charts.forEach(function (ch) { + ch.ctx.toolbar.toggleOtherControls(); + var el = type === 'selection' ? ch.ctx.toolbar.elSelection : ch.ctx.toolbar.elZoom; + var enabledType = type === 'selection' ? 'selectionEnabled' : 'zoomEnabled'; + ch.w.globals[enabledType] = !ch.w.globals[enabledType]; + + if (!el.classList.contains(ch.ctx.toolbar.selectedClass)) { + el.classList.add(ch.ctx.toolbar.selectedClass); + } else { + el.classList.remove(ch.ctx.toolbar.selectedClass); + } + }); + } + }, { + key: "getToolbarIconsReference", + value: function getToolbarIconsReference() { + var w = this.w; + + if (!this.elZoom) { + this.elZoom = w.globals.dom.baseEl.querySelector('.apexcharts-zoom-icon'); + } + + if (!this.elPan) { + this.elPan = w.globals.dom.baseEl.querySelector('.apexcharts-pan-icon'); + } + + if (!this.elSelection) { + this.elSelection = w.globals.dom.baseEl.querySelector('.apexcharts-selection-icon'); + } + } + }, { + key: "enableZoomPanFromToolbar", + value: function enableZoomPanFromToolbar(type) { + this.toggleOtherControls(); + type === 'pan' ? this.w.globals.panEnabled = true : this.w.globals.zoomEnabled = true; + var el = type === 'pan' ? this.elPan : this.elZoom; + var el2 = type === 'pan' ? this.elZoom : this.elPan; + + if (el) { + el.classList.add(this.selectedClass); + } + + if (el2) { + el2.classList.remove(this.selectedClass); + } + } + }, { + key: "togglePanning", + value: function togglePanning() { + var charts = this.ctx.getSyncedCharts(); + charts.forEach(function (ch) { + ch.ctx.toolbar.toggleOtherControls(); + ch.w.globals.panEnabled = !ch.w.globals.panEnabled; + + if (!ch.ctx.toolbar.elPan.classList.contains(ch.ctx.toolbar.selectedClass)) { + ch.ctx.toolbar.elPan.classList.add(ch.ctx.toolbar.selectedClass); + } else { + ch.ctx.toolbar.elPan.classList.remove(ch.ctx.toolbar.selectedClass); + } + }); + } + }, { + key: "toggleOtherControls", + value: function toggleOtherControls() { + var _this3 = this; + + var w = this.w; + w.globals.panEnabled = false; + w.globals.zoomEnabled = false; + w.globals.selectionEnabled = false; + this.getToolbarIconsReference(); + var toggleEls = [this.elPan, this.elSelection, this.elZoom]; + toggleEls.forEach(function (el) { + if (el) { + el.classList.remove(_this3.selectedClass); + } + }); + } + }, { + key: "handleZoomIn", + value: function handleZoomIn() { + var w = this.w; + + if (w.globals.isRangeBar) { + this.minX = w.globals.minY; + this.maxX = w.globals.maxY; + } + + var centerX = (this.minX + this.maxX) / 2; + var newMinX = (this.minX + centerX) / 2; + var newMaxX = (this.maxX + centerX) / 2; + + var newMinXMaxX = this._getNewMinXMaxX(newMinX, newMaxX); + + if (!w.globals.disableZoomIn) { + this.zoomUpdateOptions(newMinXMaxX.minX, newMinXMaxX.maxX); + } + } + }, { + key: "handleZoomOut", + value: function handleZoomOut() { + var w = this.w; + + if (w.globals.isRangeBar) { + this.minX = w.globals.minY; + this.maxX = w.globals.maxY; + } // avoid zooming out beyond 1000 which may result in NaN values being printed on x-axis + + + if (w.config.xaxis.type === 'datetime' && new Date(this.minX).getUTCFullYear() < 1000) { + return; + } + + var centerX = (this.minX + this.maxX) / 2; + var newMinX = this.minX - (centerX - this.minX); + var newMaxX = this.maxX - (centerX - this.maxX); + + var newMinXMaxX = this._getNewMinXMaxX(newMinX, newMaxX); + + if (!w.globals.disableZoomOut) { + this.zoomUpdateOptions(newMinXMaxX.minX, newMinXMaxX.maxX); + } + } + }, { + key: "_getNewMinXMaxX", + value: function _getNewMinXMaxX(newMinX, newMaxX) { + var shouldFloor = this.w.config.xaxis.convertedCatToNumeric; + return { + minX: shouldFloor ? Math.floor(newMinX) : newMinX, + maxX: shouldFloor ? Math.floor(newMaxX) : newMaxX + }; + } + }, { + key: "zoomUpdateOptions", + value: function zoomUpdateOptions(newMinX, newMaxX) { + var w = this.w; + + if (newMinX === undefined && newMaxX === undefined) { + this.handleZoomReset(); + return; + } + + if (w.config.xaxis.convertedCatToNumeric) { + // in category charts, avoid zooming out beyond min and max + if (newMinX < 1) { + newMinX = 1; + newMaxX = w.globals.dataPoints; + } + + if (newMaxX - newMinX < 2) { + return; + } + } + + var xaxis = { + min: newMinX, + max: newMaxX + }; + var beforeZoomRange = this.getBeforeZoomRange(xaxis); + + if (beforeZoomRange) { + xaxis = beforeZoomRange.xaxis; + } + + var options = { + xaxis: xaxis + }; + var yaxis = Utils$1.clone(w.globals.initialConfig.yaxis); + + if (w.config.chart.zoom.autoScaleYaxis) { + var scale = new Range$1(this.ctx); + yaxis = scale.autoScaleY(this.ctx, yaxis, { + xaxis: xaxis + }); + } + + if (!w.config.chart.group) { + // if chart in a group, prevent yaxis update here + // fix issue #650 + options.yaxis = yaxis; + } + + this.w.globals.zoomed = true; + + this.ctx.updateHelpers._updateOptions(options, false, this.w.config.chart.animations.dynamicAnimation.enabled); + + this.zoomCallback(xaxis, yaxis); + } + }, { + key: "zoomCallback", + value: function zoomCallback(xaxis, yaxis) { + if (typeof this.ev.zoomed === 'function') { + this.ev.zoomed(this.ctx, { + xaxis: xaxis, + yaxis: yaxis + }); + } + } + }, { + key: "getBeforeZoomRange", + value: function getBeforeZoomRange(xaxis, yaxis) { + var newRange = null; + + if (typeof this.ev.beforeZoom === 'function') { + newRange = this.ev.beforeZoom(this, { + xaxis: xaxis, + yaxis: yaxis + }); + } + + return newRange; + } + }, { + key: "toggleMenu", + value: function toggleMenu() { + var _this4 = this; + + window.setTimeout(function () { + if (_this4.elMenu.classList.contains('apexcharts-menu-open')) { + _this4.elMenu.classList.remove('apexcharts-menu-open'); + } else { + _this4.elMenu.classList.add('apexcharts-menu-open'); + } + }, 0); + } + }, { + key: "handleDownload", + value: function handleDownload(type) { + var w = this.w; + var exprt = new Exports(this.ctx); + + switch (type) { + case 'svg': + exprt.exportToSVG(this.ctx); + break; + + case 'png': + exprt.exportToPng(this.ctx); + break; + + case 'csv': + exprt.exportToCSV({ + series: w.config.series, + columnDelimiter: w.config.chart.toolbar.export.csv.columnDelimiter + }); + break; + } + } + }, { + key: "handleZoomReset", + value: function handleZoomReset(e) { + var charts = this.ctx.getSyncedCharts(); + charts.forEach(function (ch) { + var w = ch.w; // forget lastXAxis min/max as reset button isn't resetting the x-axis completely if zoomX is called before + + w.globals.lastXAxis.min = undefined; + w.globals.lastXAxis.max = undefined; + ch.updateHelpers.revertDefaultAxisMinMax(); + + if (typeof w.config.chart.events.beforeResetZoom === 'function') { + // here, user get an option to control xaxis and yaxis when resetZoom is called + // at this point, whatever is returned from w.config.chart.events.beforeResetZoom + // is set as the new xaxis/yaxis min/max + var resetZoomRange = w.config.chart.events.beforeResetZoom(ch, w); + + if (resetZoomRange) { + ch.updateHelpers.revertDefaultAxisMinMax(resetZoomRange); + } + } + + if (typeof w.config.chart.events.zoomed === 'function') { + ch.ctx.toolbar.zoomCallback({ + min: w.config.xaxis.min, + max: w.config.xaxis.max + }); + } + + w.globals.zoomed = false; // if user has some series collapsed before hitting zoom reset button, + // those series should stay collapsed + + var series = ch.ctx.series.emptyCollapsedSeries(Utils$1.clone(w.globals.initialSeries)); + + ch.updateHelpers._updateSeries(series, w.config.chart.animations.dynamicAnimation.enabled); + }); + } + }, { + key: "destroy", + value: function destroy() { + this.elZoom = null; + this.elZoomIn = null; + this.elZoomOut = null; + this.elPan = null; + this.elSelection = null; + this.elZoomReset = null; + this.elMenuIcon = null; + } + }]); + + return Toolbar; + }(); + + /** + * ApexCharts Zoom Class for handling zooming and panning on axes based charts. + * + * @module ZoomPanSelection + **/ + + var ZoomPanSelection = /*#__PURE__*/function (_Toolbar) { + _inherits(ZoomPanSelection, _Toolbar); + + var _super = _createSuper(ZoomPanSelection); + + function ZoomPanSelection(ctx) { + var _this; + + _classCallCheck(this, ZoomPanSelection); + + _this = _super.call(this, ctx); + _this.ctx = ctx; + _this.w = ctx.w; + _this.dragged = false; + _this.graphics = new Graphics(_this.ctx); + _this.eventList = ['mousedown', 'mouseleave', 'mousemove', 'touchstart', 'touchmove', 'mouseup', 'touchend']; + _this.clientX = 0; + _this.clientY = 0; + _this.startX = 0; + _this.endX = 0; + _this.dragX = 0; + _this.startY = 0; + _this.endY = 0; + _this.dragY = 0; + _this.moveDirection = 'none'; + return _this; + } + + _createClass(ZoomPanSelection, [{ + key: "init", + value: function init(_ref) { + var _this2 = this; + + var xyRatios = _ref.xyRatios; + var w = this.w; + var me = this; + this.xyRatios = xyRatios; + this.zoomRect = this.graphics.drawRect(0, 0, 0, 0); + this.selectionRect = this.graphics.drawRect(0, 0, 0, 0); + this.gridRect = w.globals.dom.baseEl.querySelector('.apexcharts-grid'); + this.zoomRect.node.classList.add('apexcharts-zoom-rect'); + this.selectionRect.node.classList.add('apexcharts-selection-rect'); + w.globals.dom.elGraphical.add(this.zoomRect); + w.globals.dom.elGraphical.add(this.selectionRect); + + if (w.config.chart.selection.type === 'x') { + this.slDraggableRect = this.selectionRect.draggable({ + minX: 0, + minY: 0, + maxX: w.globals.gridWidth, + maxY: w.globals.gridHeight + }).on('dragmove', this.selectionDragging.bind(this, 'dragging')); + } else if (w.config.chart.selection.type === 'y') { + this.slDraggableRect = this.selectionRect.draggable({ + minX: 0, + maxX: w.globals.gridWidth + }).on('dragmove', this.selectionDragging.bind(this, 'dragging')); + } else { + this.slDraggableRect = this.selectionRect.draggable().on('dragmove', this.selectionDragging.bind(this, 'dragging')); + } + + this.preselectedSelection(); + this.hoverArea = w.globals.dom.baseEl.querySelector("".concat(w.globals.chartClass, " .apexcharts-svg")); + this.hoverArea.classList.add('apexcharts-zoomable'); + this.eventList.forEach(function (event) { + _this2.hoverArea.addEventListener(event, me.svgMouseEvents.bind(me, xyRatios), { + capture: false, + passive: true + }); + }); + } // remove the event listeners which were previously added on hover area + + }, { + key: "destroy", + value: function destroy() { + if (this.slDraggableRect) { + this.slDraggableRect.draggable(false); + this.slDraggableRect.off(); + this.selectionRect.off(); + } + + this.selectionRect = null; + this.zoomRect = null; + this.gridRect = null; + } + }, { + key: "svgMouseEvents", + value: function svgMouseEvents(xyRatios, e) { + var w = this.w; + var me = this; + var toolbar = this.ctx.toolbar; + var zoomtype = w.globals.zoomEnabled ? w.config.chart.zoom.type : w.config.chart.selection.type; + var autoSelected = w.config.chart.toolbar.autoSelected; + + if (e.shiftKey) { + this.shiftWasPressed = true; + toolbar.enableZoomPanFromToolbar(autoSelected === 'pan' ? 'zoom' : 'pan'); + } else { + if (this.shiftWasPressed) { + toolbar.enableZoomPanFromToolbar(autoSelected); + this.shiftWasPressed = false; + } + } + + if (!e.target) return; + var tc = e.target.classList; + var pc; + + if (e.target.parentNode && e.target.parentNode !== null) { + pc = e.target.parentNode.classList; + } + + var falsePositives = tc.contains('apexcharts-selection-rect') || tc.contains('apexcharts-legend-marker') || tc.contains('apexcharts-legend-text') || pc && pc.contains('apexcharts-toolbar'); + if (falsePositives) return; + me.clientX = e.type === 'touchmove' || e.type === 'touchstart' ? e.touches[0].clientX : e.type === 'touchend' ? e.changedTouches[0].clientX : e.clientX; + me.clientY = e.type === 'touchmove' || e.type === 'touchstart' ? e.touches[0].clientY : e.type === 'touchend' ? e.changedTouches[0].clientY : e.clientY; + + if (e.type === 'mousedown' && e.which === 1) { + var gridRectDim = me.gridRect.getBoundingClientRect(); + me.startX = me.clientX - gridRectDim.left; + me.startY = me.clientY - gridRectDim.top; + me.dragged = false; + me.w.globals.mousedown = true; + } + + if (e.type === 'mousemove' && e.which === 1 || e.type === 'touchmove') { + me.dragged = true; + + if (w.globals.panEnabled) { + w.globals.selection = null; + + if (me.w.globals.mousedown) { + me.panDragging({ + context: me, + zoomtype: zoomtype, + xyRatios: xyRatios + }); + } + } else { + if (me.w.globals.mousedown && w.globals.zoomEnabled || me.w.globals.mousedown && w.globals.selectionEnabled) { + me.selection = me.selectionDrawing({ + context: me, + zoomtype: zoomtype + }); + } + } + } + + if (e.type === 'mouseup' || e.type === 'touchend' || e.type === 'mouseleave') { + // we will be calling getBoundingClientRect on each mousedown/mousemove/mouseup + var _gridRectDim = me.gridRect.getBoundingClientRect(); + + if (me.w.globals.mousedown) { + // user released the drag, now do all the calculations + me.endX = me.clientX - _gridRectDim.left; + me.endY = me.clientY - _gridRectDim.top; + me.dragX = Math.abs(me.endX - me.startX); + me.dragY = Math.abs(me.endY - me.startY); + + if (w.globals.zoomEnabled || w.globals.selectionEnabled) { + me.selectionDrawn({ + context: me, + zoomtype: zoomtype + }); + } + + if (w.globals.panEnabled && w.config.xaxis.convertedCatToNumeric) { + me.delayedPanScrolled(); + } + } + + if (w.globals.zoomEnabled) { + me.hideSelectionRect(this.selectionRect); + } + + me.dragged = false; + me.w.globals.mousedown = false; + } + + this.makeSelectionRectDraggable(); + } + }, { + key: "makeSelectionRectDraggable", + value: function makeSelectionRectDraggable() { + var w = this.w; + if (!this.selectionRect) return; + var rectDim = this.selectionRect.node.getBoundingClientRect(); + + if (rectDim.width > 0 && rectDim.height > 0) { + this.slDraggableRect.selectize({ + points: 'l, r', + pointSize: 8, + pointType: 'rect' + }).resize({ + constraint: { + minX: 0, + minY: 0, + maxX: w.globals.gridWidth, + maxY: w.globals.gridHeight + } + }).on('resizing', this.selectionDragging.bind(this, 'resizing')); + } + } + }, { + key: "preselectedSelection", + value: function preselectedSelection() { + var w = this.w; + var xyRatios = this.xyRatios; + + if (!w.globals.zoomEnabled) { + if (typeof w.globals.selection !== 'undefined' && w.globals.selection !== null) { + this.drawSelectionRect(w.globals.selection); + } else { + if (w.config.chart.selection.xaxis.min !== undefined && w.config.chart.selection.xaxis.max !== undefined) { + var x = (w.config.chart.selection.xaxis.min - w.globals.minX) / xyRatios.xRatio; + var width = w.globals.gridWidth - (w.globals.maxX - w.config.chart.selection.xaxis.max) / xyRatios.xRatio - x; + var selectionRect = { + x: x, + y: 0, + width: width, + height: w.globals.gridHeight, + translateX: 0, + translateY: 0, + selectionEnabled: true + }; + this.drawSelectionRect(selectionRect); + this.makeSelectionRectDraggable(); + + if (typeof w.config.chart.events.selection === 'function') { + w.config.chart.events.selection(this.ctx, { + xaxis: { + min: w.config.chart.selection.xaxis.min, + max: w.config.chart.selection.xaxis.max + }, + yaxis: {} + }); + } + } + } + } + } + }, { + key: "drawSelectionRect", + value: function drawSelectionRect(_ref2) { + var x = _ref2.x, + y = _ref2.y, + width = _ref2.width, + height = _ref2.height, + _ref2$translateX = _ref2.translateX, + translateX = _ref2$translateX === void 0 ? 0 : _ref2$translateX, + _ref2$translateY = _ref2.translateY, + translateY = _ref2$translateY === void 0 ? 0 : _ref2$translateY; + var w = this.w; + var zoomRect = this.zoomRect; + var selectionRect = this.selectionRect; + + if (this.dragged || w.globals.selection !== null) { + var scalingAttrs = { + transform: 'translate(' + translateX + ', ' + translateY + ')' + }; // change styles based on zoom or selection + // zoom is Enabled and user has dragged, so draw blue rect + + if (w.globals.zoomEnabled && this.dragged) { + if (width < 0) width = 1; // fixes apexcharts.js#1168 + + zoomRect.attr({ + x: x, + y: y, + width: width, + height: height, + fill: w.config.chart.zoom.zoomedArea.fill.color, + 'fill-opacity': w.config.chart.zoom.zoomedArea.fill.opacity, + stroke: w.config.chart.zoom.zoomedArea.stroke.color, + 'stroke-width': w.config.chart.zoom.zoomedArea.stroke.width, + 'stroke-opacity': w.config.chart.zoom.zoomedArea.stroke.opacity + }); + Graphics.setAttrs(zoomRect.node, scalingAttrs); + } // selection is enabled + + + if (w.globals.selectionEnabled) { + selectionRect.attr({ + x: x, + y: y, + width: width > 0 ? width : 0, + height: height > 0 ? height : 0, + fill: w.config.chart.selection.fill.color, + 'fill-opacity': w.config.chart.selection.fill.opacity, + stroke: w.config.chart.selection.stroke.color, + 'stroke-width': w.config.chart.selection.stroke.width, + 'stroke-dasharray': w.config.chart.selection.stroke.dashArray, + 'stroke-opacity': w.config.chart.selection.stroke.opacity + }); + Graphics.setAttrs(selectionRect.node, scalingAttrs); + } + } + } + }, { + key: "hideSelectionRect", + value: function hideSelectionRect(rect) { + if (rect) { + rect.attr({ + x: 0, + y: 0, + width: 0, + height: 0 + }); + } + } + }, { + key: "selectionDrawing", + value: function selectionDrawing(_ref3) { + var context = _ref3.context, + zoomtype = _ref3.zoomtype; + var w = this.w; + var me = context; + var gridRectDim = this.gridRect.getBoundingClientRect(); + var startX = me.startX - 1; + var startY = me.startY; + var inversedX = false; + var inversedY = false; + var selectionWidth = me.clientX - gridRectDim.left - startX; + var selectionHeight = me.clientY - gridRectDim.top - startY; + var selectionRect = {}; + + if (Math.abs(selectionWidth + startX) > w.globals.gridWidth) { + // user dragged the mouse outside drawing area to the right + selectionWidth = w.globals.gridWidth - startX; + } else if (me.clientX - gridRectDim.left < 0) { + // user dragged the mouse outside drawing area to the left + selectionWidth = startX; + } // inverse selection X + + + if (startX > me.clientX - gridRectDim.left) { + inversedX = true; + selectionWidth = Math.abs(selectionWidth); + } // inverse selection Y + + + if (startY > me.clientY - gridRectDim.top) { + inversedY = true; + selectionHeight = Math.abs(selectionHeight); + } + + if (zoomtype === 'x') { + selectionRect = { + x: inversedX ? startX - selectionWidth : startX, + y: 0, + width: selectionWidth, + height: w.globals.gridHeight + }; + } else if (zoomtype === 'y') { + selectionRect = { + x: 0, + y: inversedY ? startY - selectionHeight : startY, + width: w.globals.gridWidth, + height: selectionHeight + }; + } else { + selectionRect = { + x: inversedX ? startX - selectionWidth : startX, + y: inversedY ? startY - selectionHeight : startY, + width: selectionWidth, + height: selectionHeight + }; + } + + me.drawSelectionRect(selectionRect); + me.selectionDragging('resizing'); + return selectionRect; + } + }, { + key: "selectionDragging", + value: function selectionDragging(type, e) { + var _this3 = this; + + var w = this.w; + var xyRatios = this.xyRatios; + var selRect = this.selectionRect; + var timerInterval = 0; + + if (type === 'resizing') { + timerInterval = 30; + } // update selection when selection rect is dragged + + + var getSelAttr = function getSelAttr(attr) { + return parseFloat(selRect.node.getAttribute(attr)); + }; + + var draggedProps = { + x: getSelAttr('x'), + y: getSelAttr('y'), + width: getSelAttr('width'), + height: getSelAttr('height') + }; + w.globals.selection = draggedProps; // update selection ends + + if (typeof w.config.chart.events.selection === 'function' && w.globals.selectionEnabled) { + // a small debouncer is required when resizing to avoid freezing the chart + clearTimeout(this.w.globals.selectionResizeTimer); + this.w.globals.selectionResizeTimer = window.setTimeout(function () { + var gridRectDim = _this3.gridRect.getBoundingClientRect(); + + var selectionRect = selRect.node.getBoundingClientRect(); + var minX = w.globals.xAxisScale.niceMin + (selectionRect.left - gridRectDim.left) * xyRatios.xRatio; + var maxX = w.globals.xAxisScale.niceMin + (selectionRect.right - gridRectDim.left) * xyRatios.xRatio; + var minY = w.globals.yAxisScale[0].niceMin + (gridRectDim.bottom - selectionRect.bottom) * xyRatios.yRatio[0]; + var maxY = w.globals.yAxisScale[0].niceMax - (selectionRect.top - gridRectDim.top) * xyRatios.yRatio[0]; + var xyAxis = { + xaxis: { + min: minX, + max: maxX + }, + yaxis: { + min: minY, + max: maxY + } + }; + w.config.chart.events.selection(_this3.ctx, xyAxis); + + if (w.config.chart.brush.enabled && w.config.chart.events.brushScrolled !== undefined) { + w.config.chart.events.brushScrolled(_this3.ctx, xyAxis); + } + }, timerInterval); + } + } + }, { + key: "selectionDrawn", + value: function selectionDrawn(_ref4) { + var context = _ref4.context, + zoomtype = _ref4.zoomtype; + var w = this.w; + var me = context; + var xyRatios = this.xyRatios; + var toolbar = this.ctx.toolbar; + + if (me.startX > me.endX) { + var tempX = me.startX; + me.startX = me.endX; + me.endX = tempX; + } + + if (me.startY > me.endY) { + var tempY = me.startY; + me.startY = me.endY; + me.endY = tempY; + } + + var xLowestValue = undefined; + var xHighestValue = undefined; + + if (!w.globals.isRangeBar) { + xLowestValue = w.globals.xAxisScale.niceMin + me.startX * xyRatios.xRatio; + xHighestValue = w.globals.xAxisScale.niceMin + me.endX * xyRatios.xRatio; + } else { + xLowestValue = w.globals.yAxisScale[0].niceMin + me.startX * xyRatios.invertedYRatio; + xHighestValue = w.globals.yAxisScale[0].niceMin + me.endX * xyRatios.invertedYRatio; + } // TODO: we will consider the 1st y axis values here for getting highest and lowest y + + + var yHighestValue = []; + var yLowestValue = []; + w.config.yaxis.forEach(function (yaxe, index) { + yHighestValue.push(w.globals.yAxisScale[index].niceMax - xyRatios.yRatio[index] * me.startY); + yLowestValue.push(w.globals.yAxisScale[index].niceMax - xyRatios.yRatio[index] * me.endY); + }); + + if (me.dragged && (me.dragX > 10 || me.dragY > 10) && xLowestValue !== xHighestValue) { + if (w.globals.zoomEnabled) { + var yaxis = Utils$1.clone(w.globals.initialConfig.yaxis); + var xaxis = Utils$1.clone(w.globals.initialConfig.xaxis); + w.globals.zoomed = true; + + if (w.config.xaxis.convertedCatToNumeric) { + xLowestValue = Math.floor(xLowestValue); + xHighestValue = Math.floor(xHighestValue); + + if (xLowestValue < 1) { + xLowestValue = 1; + xHighestValue = w.globals.dataPoints; + } + + if (xHighestValue - xLowestValue < 2) { + xHighestValue = xLowestValue + 1; + } + } + + if (zoomtype === 'xy' || zoomtype === 'x') { + xaxis = { + min: xLowestValue, + max: xHighestValue + }; + } + + if (zoomtype === 'xy' || zoomtype === 'y') { + yaxis.forEach(function (yaxe, index) { + yaxis[index].min = yLowestValue[index]; + yaxis[index].max = yHighestValue[index]; + }); + } + + if (w.config.chart.zoom.autoScaleYaxis) { + var scale = new Range$1(me.ctx); + yaxis = scale.autoScaleY(me.ctx, yaxis, { + xaxis: xaxis + }); + } + + if (toolbar) { + var beforeZoomRange = toolbar.getBeforeZoomRange(xaxis, yaxis); + + if (beforeZoomRange) { + xaxis = beforeZoomRange.xaxis ? beforeZoomRange.xaxis : xaxis; + yaxis = beforeZoomRange.yaxis ? beforeZoomRange.yaxis : yaxis; + } + } + + var options = { + xaxis: xaxis + }; + + if (!w.config.chart.group) { + // if chart in a group, prevent yaxis update here + // fix issue #650 + options.yaxis = yaxis; + } + + me.ctx.updateHelpers._updateOptions(options, false, me.w.config.chart.animations.dynamicAnimation.enabled); + + if (typeof w.config.chart.events.zoomed === 'function') { + toolbar.zoomCallback(xaxis, yaxis); + } + } else if (w.globals.selectionEnabled) { + var _yaxis = null; + var _xaxis = null; + _xaxis = { + min: xLowestValue, + max: xHighestValue + }; + + if (zoomtype === 'xy' || zoomtype === 'y') { + _yaxis = Utils$1.clone(w.config.yaxis); + + _yaxis.forEach(function (yaxe, index) { + _yaxis[index].min = yLowestValue[index]; + _yaxis[index].max = yHighestValue[index]; + }); + } + + w.globals.selection = me.selection; + + if (typeof w.config.chart.events.selection === 'function') { + w.config.chart.events.selection(me.ctx, { + xaxis: _xaxis, + yaxis: _yaxis + }); + } + } + } + } + }, { + key: "panDragging", + value: function panDragging(_ref5) { + var context = _ref5.context; + var w = this.w; + var me = context; // check to make sure there is data to compare against + + if (typeof w.globals.lastClientPosition.x !== 'undefined') { + // get the change from last position to this position + var deltaX = w.globals.lastClientPosition.x - me.clientX; + var deltaY = w.globals.lastClientPosition.y - me.clientY; // check which direction had the highest amplitude and then figure out direction by checking if the value is greater or less than zero + + if (Math.abs(deltaX) > Math.abs(deltaY) && deltaX > 0) { + this.moveDirection = 'left'; + } else if (Math.abs(deltaX) > Math.abs(deltaY) && deltaX < 0) { + this.moveDirection = 'right'; + } else if (Math.abs(deltaY) > Math.abs(deltaX) && deltaY > 0) { + this.moveDirection = 'up'; + } else if (Math.abs(deltaY) > Math.abs(deltaX) && deltaY < 0) { + this.moveDirection = 'down'; + } + } // set the new last position to the current for next time (to get the position of drag) + + + w.globals.lastClientPosition = { + x: me.clientX, + y: me.clientY + }; + var xLowestValue = w.globals.isRangeBar ? w.globals.minY : w.globals.minX; + var xHighestValue = w.globals.isRangeBar ? w.globals.maxY : w.globals.maxX; // on a category, we don't pan continuosly as it causes bugs + + if (!w.config.xaxis.convertedCatToNumeric) { + me.panScrolled(xLowestValue, xHighestValue); + } + } + }, { + key: "delayedPanScrolled", + value: function delayedPanScrolled() { + var w = this.w; + var newMinX = w.globals.minX; + var newMaxX = w.globals.maxX; + var centerX = (w.globals.maxX - w.globals.minX) / 2; + + if (this.moveDirection === 'left') { + newMinX = w.globals.minX + centerX; + newMaxX = w.globals.maxX + centerX; + } else if (this.moveDirection === 'right') { + newMinX = w.globals.minX - centerX; + newMaxX = w.globals.maxX - centerX; + } + + newMinX = Math.floor(newMinX); + newMaxX = Math.floor(newMaxX); + this.updateScrolledChart({ + xaxis: { + min: newMinX, + max: newMaxX + } + }, newMinX, newMaxX); + } + }, { + key: "panScrolled", + value: function panScrolled(xLowestValue, xHighestValue) { + var w = this.w; + var xyRatios = this.xyRatios; + var yaxis = Utils$1.clone(w.globals.initialConfig.yaxis); + var xRatio = xyRatios.xRatio; + var minX = w.globals.minX; + var maxX = w.globals.maxX; + + if (w.globals.isRangeBar) { + xRatio = xyRatios.invertedYRatio; + minX = w.globals.minY; + maxX = w.globals.maxY; + } + + if (this.moveDirection === 'left') { + xLowestValue = minX + w.globals.gridWidth / 15 * xRatio; + xHighestValue = maxX + w.globals.gridWidth / 15 * xRatio; + } else if (this.moveDirection === 'right') { + xLowestValue = minX - w.globals.gridWidth / 15 * xRatio; + xHighestValue = maxX - w.globals.gridWidth / 15 * xRatio; + } + + if (!w.globals.isRangeBar) { + if (xLowestValue < w.globals.initialMinX || xHighestValue > w.globals.initialMaxX) { + xLowestValue = minX; + xHighestValue = maxX; + } + } + + var xaxis = { + min: xLowestValue, + max: xHighestValue + }; + + if (w.config.chart.zoom.autoScaleYaxis) { + var scale = new Range$1(this.ctx); + yaxis = scale.autoScaleY(this.ctx, yaxis, { + xaxis: xaxis + }); + } + + var options = { + xaxis: { + min: xLowestValue, + max: xHighestValue + } + }; + + if (!w.config.chart.group) { + // if chart in a group, prevent yaxis update here + // fix issue #650 + options.yaxis = yaxis; + } + + this.updateScrolledChart(options, xLowestValue, xHighestValue); + } + }, { + key: "updateScrolledChart", + value: function updateScrolledChart(options, xLowestValue, xHighestValue) { + var w = this.w; + + this.ctx.updateHelpers._updateOptions(options, false, false); + + if (typeof w.config.chart.events.scrolled === 'function') { + w.config.chart.events.scrolled(this.ctx, { + xaxis: { + min: xLowestValue, + max: xHighestValue + } + }); + } + } + }]); + + return ZoomPanSelection; + }(Toolbar); + + /** + * ApexCharts Tooltip.Utils Class to support Tooltip functionality. + * + * @module Tooltip.Utils + **/ + + var Utils = /*#__PURE__*/function () { + function Utils(tooltipContext) { + _classCallCheck(this, Utils); + + this.w = tooltipContext.w; + this.ttCtx = tooltipContext; + this.ctx = tooltipContext.ctx; + } + /** + ** When hovering over series, you need to capture which series is being hovered on. + ** This function will return both capturedseries index as well as inner index of that series + * @memberof Utils + * @param {object} + * - hoverArea = the rect on which user hovers + * - elGrid = dimensions of the hover rect (it can be different than hoverarea) + */ + + + _createClass(Utils, [{ + key: "getNearestValues", + value: function getNearestValues(_ref) { + var hoverArea = _ref.hoverArea, + elGrid = _ref.elGrid, + clientX = _ref.clientX, + clientY = _ref.clientY; + var w = this.w; + var seriesBound = elGrid.getBoundingClientRect(); + var hoverWidth = seriesBound.width; + var hoverHeight = seriesBound.height; + var xDivisor = hoverWidth / (w.globals.dataPoints - 1); + var yDivisor = hoverHeight / w.globals.dataPoints; + var hasBars = this.hasBars(); + + if ((w.globals.comboCharts || hasBars) && !w.config.xaxis.convertedCatToNumeric) { + xDivisor = hoverWidth / w.globals.dataPoints; + } + + var hoverX = clientX - seriesBound.left - w.globals.barPadForNumericAxis; + var hoverY = clientY - seriesBound.top; + var notInRect = hoverX < 0 || hoverY < 0 || hoverX > hoverWidth || hoverY > hoverHeight; + + if (notInRect) { + hoverArea.classList.remove('hovering-zoom'); + hoverArea.classList.remove('hovering-pan'); + } else { + if (w.globals.zoomEnabled) { + hoverArea.classList.remove('hovering-pan'); + hoverArea.classList.add('hovering-zoom'); + } else if (w.globals.panEnabled) { + hoverArea.classList.remove('hovering-zoom'); + hoverArea.classList.add('hovering-pan'); + } + } + + var j = Math.round(hoverX / xDivisor); + var jHorz = Math.floor(hoverY / yDivisor); + + if (hasBars && !w.config.xaxis.convertedCatToNumeric) { + j = Math.ceil(hoverX / xDivisor); + j = j - 1; + } + + var capturedSeries = null; + var closest = null; + var seriesXValArr = []; + var seriesYValArr = []; //add extra values to show markers for the first points. Included both axes to avoid incorrect positioning of the marker + + w.globals.seriesXvalues.forEach(function (value) { + seriesXValArr.push([value[0] + 0.000001].concat(value)); + }); + w.globals.seriesYvalues.forEach(function (value) { + seriesYValArr.push([value[0] + 0.000001].concat(value)); + }); + seriesXValArr = seriesXValArr.map(function (seriesXVal) { + return seriesXVal.filter(function (s) { + return Utils$1.isNumber(s); + }); + }); + seriesYValArr = seriesYValArr.map(function (seriesYVal) { + return seriesYVal.filter(function (s) { + return Utils$1.isNumber(s); + }); + }); // if X axis type is not category and tooltip is not shared, then we need to find the cursor position and get the nearest value + + if (w.globals.isXNumeric) { + // Change origin of cursor position so that we can compute the relative nearest point to the cursor on our chart + // we only need to scale because all points are relative to the bounds.left and bounds.top => origin is virtually (0, 0) + var chartGridEl = this.ttCtx.getElGrid(); + var chartGridElBoundingRect = chartGridEl.getBoundingClientRect(); + var transformedHoverX = hoverX * (chartGridElBoundingRect.width / hoverWidth); + var transformedHoverY = hoverY * (chartGridElBoundingRect.height / hoverHeight); + closest = this.closestInMultiArray(transformedHoverX, transformedHoverY, seriesXValArr, seriesYValArr); + capturedSeries = closest.index; + j = closest.j; + + if (capturedSeries !== null) { + // initial push, it should be a little smaller than the 1st val + seriesXValArr = w.globals.seriesXvalues[capturedSeries]; + closest = this.closestInArray(transformedHoverX, seriesXValArr); + j = closest.index; + } + } + + w.globals.capturedSeriesIndex = capturedSeries === null ? -1 : capturedSeries; + if (!j || j < 1) j = 0; + + if (w.globals.isBarHorizontal) { + w.globals.capturedDataPointIndex = jHorz; + } else { + w.globals.capturedDataPointIndex = j; + } + + return { + capturedSeries: capturedSeries, + j: w.globals.isBarHorizontal ? jHorz : j, + hoverX: hoverX, + hoverY: hoverY + }; + } + }, { + key: "closestInMultiArray", + value: function closestInMultiArray(hoverX, hoverY, Xarrays, Yarrays) { + var w = this.w; + var activeIndex = 0; + var currIndex = null; + var j = -1; + + if (w.globals.series.length > 1) { + activeIndex = this.getFirstActiveXArray(Xarrays); + } else { + currIndex = 0; + } + + var currX = Xarrays[activeIndex][0]; + var diffX = Math.abs(hoverX - currX); // find nearest point on x-axis + + Xarrays.forEach(function (arrX) { + arrX.forEach(function (x, iX) { + var newDiff = Math.abs(hoverX - x); + + if (newDiff < diffX) { + diffX = newDiff; + j = iX; + } + }); + }); + + if (j !== -1) { + // find nearest graph on y-axis relevanted to nearest point on x-axis + var currY = Yarrays[activeIndex][j]; + var diffY = Math.abs(hoverY - currY); + currIndex = activeIndex; + Yarrays.forEach(function (arrY, iAY) { + var newDiff = Math.abs(hoverY - arrY[j]); + + if (newDiff < diffY) { + diffY = newDiff; + currIndex = iAY; + } + }); + } + + return { + index: currIndex, + j: j + }; + } + }, { + key: "getFirstActiveXArray", + value: function getFirstActiveXArray(Xarrays) { + var w = this.w; + var activeIndex = 0; + var firstActiveSeriesIndex = Xarrays.map(function (xarr, index) { + return xarr.length > 0 ? index : -1; + }); + + for (var a = 0; a < firstActiveSeriesIndex.length; a++) { + if (firstActiveSeriesIndex[a] !== -1 && w.globals.collapsedSeriesIndices.indexOf(a) === -1 && w.globals.ancillaryCollapsedSeriesIndices.indexOf(a) === -1) { + activeIndex = firstActiveSeriesIndex[a]; + break; + } + } + + return activeIndex; + } + }, { + key: "closestInArray", + value: function closestInArray(val, arr) { + var curr = arr[0]; + var currIndex = null; + var diff = Math.abs(val - curr); + + for (var i = 0; i < arr.length; i++) { + var newdiff = Math.abs(val - arr[i]); + + if (newdiff < diff) { + diff = newdiff; + currIndex = i; + } + } + + return { + index: currIndex + }; + } + /** + * When there are multiple series, it is possible to have different x values for each series. + * But it may be possible in those multiple series, that there is same x value for 2 or more + * series. + * @memberof Utils + * @param {int} + * - j = is the inner index of series -> (series[i][j]) + * @return {bool} + */ + + }, { + key: "isXoverlap", + value: function isXoverlap(j) { + var w = this.w; + var xSameForAllSeriesJArr = []; + var seriesX = w.globals.seriesX.filter(function (s) { + return typeof s[0] !== 'undefined'; + }); + + if (seriesX.length > 0) { + for (var i = 0; i < seriesX.length - 1; i++) { + if (typeof seriesX[i][j] !== 'undefined' && typeof seriesX[i + 1][j] !== 'undefined') { + if (seriesX[i][j] !== seriesX[i + 1][j]) { + xSameForAllSeriesJArr.push('unEqual'); + } + } + } + } + + if (xSameForAllSeriesJArr.length === 0) { + return true; + } + + return false; + } + }, { + key: "isInitialSeriesSameLen", + value: function isInitialSeriesSameLen() { + var sameLen = true; + var initialSeries = this.w.globals.initialSeries; + + for (var i = 0; i < initialSeries.length - 1; i++) { + if (initialSeries[i].data.length !== initialSeries[i + 1].data.length) { + sameLen = false; + break; + } + } + + return sameLen; + } + }, { + key: "getBarsHeight", + value: function getBarsHeight(allbars) { + var bars = _toConsumableArray(allbars); + + var totalHeight = bars.reduce(function (acc, bar) { + return acc + bar.getBBox().height; + }, 0); + return totalHeight; + } + }, { + key: "getElMarkers", + value: function getElMarkers() { + return this.w.globals.dom.baseEl.querySelectorAll(' .apexcharts-series-markers'); + } + }, { + key: "getAllMarkers", + value: function getAllMarkers() { + // first get all marker parents. This parent class contains series-index + // which helps to sort the markers as they are dynamic + var markersWraps = this.w.globals.dom.baseEl.querySelectorAll('.apexcharts-series-markers-wrap'); + markersWraps = _toConsumableArray(markersWraps); + markersWraps.sort(function (a, b) { + var indexA = Number(a.getAttribute('data:realIndex')); + var indexB = Number(b.getAttribute('data:realIndex')); + return indexB < indexA ? 1 : indexB > indexA ? -1 : 0; + }); + var markers = []; + markersWraps.forEach(function (m) { + markers.push(m.querySelector('.apexcharts-marker')); + }); + return markers; + } + }, { + key: "hasMarkers", + value: function hasMarkers() { + var markers = this.getElMarkers(); + return markers.length > 0; + } + }, { + key: "getElBars", + value: function getElBars() { + return this.w.globals.dom.baseEl.querySelectorAll('.apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series'); + } + }, { + key: "hasBars", + value: function hasBars() { + var bars = this.getElBars(); + return bars.length > 0; + } + }, { + key: "getHoverMarkerSize", + value: function getHoverMarkerSize(index) { + var w = this.w; + var hoverSize = w.config.markers.hover.size; + + if (hoverSize === undefined) { + hoverSize = w.globals.markers.size[index] + w.config.markers.hover.sizeOffset; + } + + return hoverSize; + } + }, { + key: "toggleAllTooltipSeriesGroups", + value: function toggleAllTooltipSeriesGroups(state) { + var w = this.w; + var ttCtx = this.ttCtx; + + if (ttCtx.allTooltipSeriesGroups.length === 0) { + ttCtx.allTooltipSeriesGroups = w.globals.dom.baseEl.querySelectorAll('.apexcharts-tooltip-series-group'); + } + + var allTooltipSeriesGroups = ttCtx.allTooltipSeriesGroups; + + for (var i = 0; i < allTooltipSeriesGroups.length; i++) { + if (state === 'enable') { + allTooltipSeriesGroups[i].classList.add('apexcharts-active'); + allTooltipSeriesGroups[i].style.display = w.config.tooltip.items.display; + } else { + allTooltipSeriesGroups[i].classList.remove('apexcharts-active'); + allTooltipSeriesGroups[i].style.display = 'none'; + } + } + } + }]); + + return Utils; + }(); + + /** + * ApexCharts Tooltip.Labels Class to draw texts on the tooltip. + * This file deals with printing actual text on the tooltip. + * + * @module Tooltip.Labels + **/ + + var Labels = /*#__PURE__*/function () { + function Labels(tooltipContext) { + _classCallCheck(this, Labels); + + this.w = tooltipContext.w; + this.ctx = tooltipContext.ctx; + this.ttCtx = tooltipContext; + this.tooltipUtil = new Utils(tooltipContext); + } + + _createClass(Labels, [{ + key: "drawSeriesTexts", + value: function drawSeriesTexts(_ref) { + var _ref$shared = _ref.shared, + shared = _ref$shared === void 0 ? true : _ref$shared, + ttItems = _ref.ttItems, + _ref$i = _ref.i, + i = _ref$i === void 0 ? 0 : _ref$i, + _ref$j = _ref.j, + j = _ref$j === void 0 ? null : _ref$j, + y1 = _ref.y1, + y2 = _ref.y2, + e = _ref.e; + var w = this.w; + + if (w.config.tooltip.custom !== undefined) { + this.handleCustomTooltip({ + i: i, + j: j, + y1: y1, + y2: y2, + w: w + }); + } else { + this.toggleActiveInactiveSeries(shared); + } + + var values = this.getValuesToPrint({ + i: i, + j: j + }); + this.printLabels({ + i: i, + j: j, + values: values, + ttItems: ttItems, + shared: shared, + e: e + }); // Re-calculate tooltip dimensions now that we have drawn the text + + var tooltipEl = this.ttCtx.getElTooltip(); + this.ttCtx.tooltipRect.ttWidth = tooltipEl.getBoundingClientRect().width; + this.ttCtx.tooltipRect.ttHeight = tooltipEl.getBoundingClientRect().height; + } + }, { + key: "printLabels", + value: function printLabels(_ref2) { + var _this = this; + + var i = _ref2.i, + j = _ref2.j, + values = _ref2.values, + ttItems = _ref2.ttItems, + shared = _ref2.shared, + e = _ref2.e; + var w = this.w; + var val; + var goalVals = []; + + var hasGoalValues = function hasGoalValues(gi) { + return w.globals.seriesGoals[gi] && w.globals.seriesGoals[gi][j] && Array.isArray(w.globals.seriesGoals[gi][j]); + }; + + var xVal = values.xVal, + zVal = values.zVal, + xAxisTTVal = values.xAxisTTVal; + var seriesName = ''; + var pColor = w.globals.colors[i]; // The pColor here is for the markers inside tooltip + + if (j !== null && w.config.plotOptions.bar.distributed) { + pColor = w.globals.colors[j]; + } + + var _loop = function _loop(t, inverset) { + var f = _this.getFormatters(i); + + seriesName = _this.getSeriesName({ + fn: f.yLbTitleFormatter, + index: i, + seriesIndex: i, + j: j + }); + + if (w.config.chart.type === 'treemap') { + seriesName = f.yLbTitleFormatter(String(w.config.series[i].data[j].x), { + series: w.globals.series, + seriesIndex: i, + dataPointIndex: j, + w: w + }); + } + + var tIndex = w.config.tooltip.inverseOrder ? inverset : t; + + if (w.globals.axisCharts) { + var getValBySeriesIndex = function getValBySeriesIndex(index) { + return f.yLbFormatter(w.globals.series[index][j], { + series: w.globals.series, + seriesIndex: index, + dataPointIndex: j, + w: w + }); + }; + + if (shared) { + f = _this.getFormatters(tIndex); + seriesName = _this.getSeriesName({ + fn: f.yLbTitleFormatter, + index: tIndex, + seriesIndex: i, + j: j + }); + pColor = w.globals.colors[tIndex]; + val = getValBySeriesIndex(tIndex); + + if (hasGoalValues(tIndex)) { + goalVals = w.globals.seriesGoals[tIndex][j].map(function (goal) { + return { + attrs: goal, + val: f.yLbFormatter(goal.value, { + seriesIndex: tIndex, + dataPointIndex: j, + w: w + }) + }; + }); + } + } else { + var _e$target; + + // get a color from a hover area (if it's a line pattern then get from a first line) + var targetFill = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.getAttribute('fill'); + + if (targetFill) { + pColor = targetFill.indexOf("url") !== -1 ? document.querySelector(targetFill.substr(4).slice(0, -1)).childNodes[0].getAttribute("stroke") : targetFill; + } + + val = getValBySeriesIndex(i); + + if (hasGoalValues(i) && Array.isArray(w.globals.seriesGoals[i][j])) { + goalVals = w.globals.seriesGoals[i][j].map(function (goal) { + return { + attrs: goal, + val: f.yLbFormatter(goal.value, { + seriesIndex: i, + dataPointIndex: j, + w: w + }) + }; + }); + } + } + } // for pie / donuts + + + if (j === null) { + val = f.yLbFormatter(w.globals.series[i], _objectSpread2(_objectSpread2({}, w), {}, { + seriesIndex: i, + dataPointIndex: i + })); + } + + _this.DOMHandling({ + i: i, + t: tIndex, + j: j, + ttItems: ttItems, + values: { + val: val, + goalVals: goalVals, + xVal: xVal, + xAxisTTVal: xAxisTTVal, + zVal: zVal + }, + seriesName: seriesName, + shared: shared, + pColor: pColor + }); + }; + + for (var t = 0, inverset = w.globals.series.length - 1; t < w.globals.series.length; t++, inverset--) { + _loop(t, inverset); + } + } + }, { + key: "getFormatters", + value: function getFormatters(i) { + var w = this.w; + var yLbFormatter = w.globals.yLabelFormatters[i]; + var yLbTitleFormatter; + + if (w.globals.ttVal !== undefined) { + if (Array.isArray(w.globals.ttVal)) { + yLbFormatter = w.globals.ttVal[i] && w.globals.ttVal[i].formatter; + yLbTitleFormatter = w.globals.ttVal[i] && w.globals.ttVal[i].title && w.globals.ttVal[i].title.formatter; + } else { + yLbFormatter = w.globals.ttVal.formatter; + + if (typeof w.globals.ttVal.title.formatter === 'function') { + yLbTitleFormatter = w.globals.ttVal.title.formatter; + } + } + } else { + yLbTitleFormatter = w.config.tooltip.y.title.formatter; + } + + if (typeof yLbFormatter !== 'function') { + if (w.globals.yLabelFormatters[0]) { + yLbFormatter = w.globals.yLabelFormatters[0]; + } else { + yLbFormatter = function yLbFormatter(label) { + return label; + }; + } + } + + if (typeof yLbTitleFormatter !== 'function') { + yLbTitleFormatter = function yLbTitleFormatter(label) { + return label; + }; + } + + return { + yLbFormatter: yLbFormatter, + yLbTitleFormatter: yLbTitleFormatter + }; + } + }, { + key: "getSeriesName", + value: function getSeriesName(_ref3) { + var fn = _ref3.fn, + index = _ref3.index, + seriesIndex = _ref3.seriesIndex, + j = _ref3.j; + var w = this.w; + return fn(String(w.globals.seriesNames[index]), { + series: w.globals.series, + seriesIndex: seriesIndex, + dataPointIndex: j, + w: w + }); + } + }, { + key: "DOMHandling", + value: function DOMHandling(_ref4) { + _ref4.i; + var t = _ref4.t, + j = _ref4.j, + ttItems = _ref4.ttItems, + values = _ref4.values, + seriesName = _ref4.seriesName, + shared = _ref4.shared, + pColor = _ref4.pColor; + var w = this.w; + var ttCtx = this.ttCtx; + var val = values.val, + goalVals = values.goalVals, + xVal = values.xVal, + xAxisTTVal = values.xAxisTTVal, + zVal = values.zVal; + var ttItemsChildren = null; + ttItemsChildren = ttItems[t].children; + + if (w.config.tooltip.fillSeriesColor) { + ttItems[t].style.backgroundColor = pColor; + ttItemsChildren[0].style.display = 'none'; + } + + if (ttCtx.showTooltipTitle) { + if (ttCtx.tooltipTitle === null) { + // get it once if null, and store it in class property + ttCtx.tooltipTitle = w.globals.dom.baseEl.querySelector('.apexcharts-tooltip-title'); + } + + ttCtx.tooltipTitle.innerHTML = xVal; + } // if xaxis tooltip is constructed, we need to replace the innerHTML + + + if (ttCtx.isXAxisTooltipEnabled) { + ttCtx.xaxisTooltipText.innerHTML = xAxisTTVal !== '' ? xAxisTTVal : xVal; + } + + var ttYLabel = ttItems[t].querySelector('.apexcharts-tooltip-text-y-label'); + + if (ttYLabel) { + ttYLabel.innerHTML = seriesName ? seriesName : ''; + } + + var ttYVal = ttItems[t].querySelector('.apexcharts-tooltip-text-y-value'); + + if (ttYVal) { + ttYVal.innerHTML = typeof val !== 'undefined' ? val : ''; + } + + if (ttItemsChildren[0] && ttItemsChildren[0].classList.contains('apexcharts-tooltip-marker')) { + if (w.config.tooltip.marker.fillColors && Array.isArray(w.config.tooltip.marker.fillColors)) { + pColor = w.config.tooltip.marker.fillColors[t]; + } + + ttItemsChildren[0].style.backgroundColor = pColor; + } + + if (!w.config.tooltip.marker.show) { + ttItemsChildren[0].style.display = 'none'; + } + + var ttGLabel = ttItems[t].querySelector('.apexcharts-tooltip-text-goals-label'); + var ttGVal = ttItems[t].querySelector('.apexcharts-tooltip-text-goals-value'); + + if (goalVals.length && w.globals.seriesGoals[t]) { + var createGoalsHtml = function createGoalsHtml() { + var gLabels = '
    '; + var gVals = '
    '; + goalVals.forEach(function (goal, gi) { + gLabels += "
    ").concat(goal.attrs.name, "
    "); + gVals += "
    ".concat(goal.val, "
    "); + }); + ttGLabel.innerHTML = gLabels + "
    "; + ttGVal.innerHTML = gVals + "
    "; + }; + + if (shared) { + if (w.globals.seriesGoals[t][j] && Array.isArray(w.globals.seriesGoals[t][j])) { + createGoalsHtml(); + } else { + ttGLabel.innerHTML = ''; + ttGVal.innerHTML = ''; + } + } else { + createGoalsHtml(); + } + } else { + ttGLabel.innerHTML = ''; + ttGVal.innerHTML = ''; + } + + if (zVal !== null) { + var ttZLabel = ttItems[t].querySelector('.apexcharts-tooltip-text-z-label'); + ttZLabel.innerHTML = w.config.tooltip.z.title; + var ttZVal = ttItems[t].querySelector('.apexcharts-tooltip-text-z-value'); + ttZVal.innerHTML = typeof zVal !== 'undefined' ? zVal : ''; + } + + if (shared && ttItemsChildren[0]) { + // hide when no Val or series collapsed + if (typeof val === 'undefined' || val === null || w.globals.ancillaryCollapsedSeriesIndices.indexOf(t) > -1 || w.globals.collapsedSeriesIndices.indexOf(t) > -1) { + ttItemsChildren[0].parentNode.style.display = 'none'; + } else { + ttItemsChildren[0].parentNode.style.display = w.config.tooltip.items.display; + } // TODO: issue #1240 needs to be looked at again. commenting it because this also hides single series values with 0 in it (shared tooltip) + // if (w.globals.stackedSeriesTotals[j] === 0) { + // // shared tooltip and all values are null, so we need to hide the x value too + // let allYZeroForJ = false + // for (let si = 1; si < w.globals.seriesYvalues.length; si++) { + // if ( + // w.globals.seriesYvalues[si][j] === + // w.globals.seriesYvalues[si - 1][j] + // ) { + // allYZeroForJ = true + // } + // } + // if (allYZeroForJ) { + // ttCtx.tooltipTitle.style.display = 'none' + // } else { + // ttCtx.tooltipTitle.style.display = w.config.tooltip.items.display + // } + // } else { + // ttCtx.tooltipTitle.style.display = w.config.tooltip.items.display + // } + + } + } + }, { + key: "toggleActiveInactiveSeries", + value: function toggleActiveInactiveSeries(shared) { + var w = this.w; + + if (shared) { + // make all tooltips active + this.tooltipUtil.toggleAllTooltipSeriesGroups('enable'); + } else { + // disable all tooltip text groups + this.tooltipUtil.toggleAllTooltipSeriesGroups('disable'); // enable the first tooltip text group + + var firstTooltipSeriesGroup = w.globals.dom.baseEl.querySelector('.apexcharts-tooltip-series-group'); + + if (firstTooltipSeriesGroup) { + firstTooltipSeriesGroup.classList.add('apexcharts-active'); + firstTooltipSeriesGroup.style.display = w.config.tooltip.items.display; + } + } + } + }, { + key: "getValuesToPrint", + value: function getValuesToPrint(_ref5) { + var i = _ref5.i, + j = _ref5.j; + var w = this.w; + var filteredSeriesX = this.ctx.series.filteredSeriesX(); + var xVal = ''; + var xAxisTTVal = ''; + var zVal = null; + var val = null; + var customFormatterOpts = { + series: w.globals.series, + seriesIndex: i, + dataPointIndex: j, + w: w + }; + var zFormatter = w.globals.ttZFormatter; + + if (j === null) { + val = w.globals.series[i]; + } else { + if (w.globals.isXNumeric && w.config.chart.type !== 'treemap') { + xVal = filteredSeriesX[i][j]; + + if (filteredSeriesX[i].length === 0) { + // a series (possibly the first one) might be collapsed, so get the next active index + var firstActiveSeriesIndex = this.tooltipUtil.getFirstActiveXArray(filteredSeriesX); + xVal = filteredSeriesX[firstActiveSeriesIndex][j]; + } + } else { + xVal = typeof w.globals.labels[j] !== 'undefined' ? w.globals.labels[j] : ''; + } + } + + var bufferXVal = xVal; + + if (w.globals.isXNumeric && w.config.xaxis.type === 'datetime') { + var xFormat = new Formatters(this.ctx); + xVal = xFormat.xLabelFormat(w.globals.ttKeyFormatter, bufferXVal, bufferXVal, { + i: undefined, + dateFormatter: new DateTime(this.ctx).formatDate, + w: this.w + }); + } else { + if (w.globals.isBarHorizontal) { + xVal = w.globals.yLabelFormatters[0](bufferXVal, customFormatterOpts); + } else { + xVal = w.globals.xLabelFormatter(bufferXVal, customFormatterOpts); + } + } // override default x-axis formatter with tooltip formatter + + + if (w.config.tooltip.x.formatter !== undefined) { + xVal = w.globals.ttKeyFormatter(bufferXVal, customFormatterOpts); + } + + if (w.globals.seriesZ.length > 0 && w.globals.seriesZ[i].length > 0) { + zVal = zFormatter(w.globals.seriesZ[i][j], w); + } + + if (typeof w.config.xaxis.tooltip.formatter === 'function') { + xAxisTTVal = w.globals.xaxisTooltipFormatter(bufferXVal, customFormatterOpts); + } else { + xAxisTTVal = xVal; + } + + return { + val: Array.isArray(val) ? val.join(' ') : val, + xVal: Array.isArray(xVal) ? xVal.join(' ') : xVal, + xAxisTTVal: Array.isArray(xAxisTTVal) ? xAxisTTVal.join(' ') : xAxisTTVal, + zVal: zVal + }; + } + }, { + key: "handleCustomTooltip", + value: function handleCustomTooltip(_ref6) { + var i = _ref6.i, + j = _ref6.j, + y1 = _ref6.y1, + y2 = _ref6.y2, + w = _ref6.w; + var tooltipEl = this.ttCtx.getElTooltip(); + var fn = w.config.tooltip.custom; + + if (Array.isArray(fn) && fn[i]) { + fn = fn[i]; + } // override everything with a custom html tooltip and replace it + + + tooltipEl.innerHTML = fn({ + ctx: this.ctx, + series: w.globals.series, + seriesIndex: i, + dataPointIndex: j, + y1: y1, + y2: y2, + w: w + }); + } + }]); + + return Labels; + }(); + + /** + * ApexCharts Tooltip.Position Class to move the tooltip based on x and y position. + * + * @module Tooltip.Position + **/ + + var Position = /*#__PURE__*/function () { + function Position(tooltipContext) { + _classCallCheck(this, Position); + + this.ttCtx = tooltipContext; + this.ctx = tooltipContext.ctx; + this.w = tooltipContext.w; + } + /** + * This will move the crosshair (the vertical/horz line that moves along with mouse) + * Along with this, this function also calls the xaxisMove function + * @memberof Position + * @param {int} - cx = point's x position, wherever point's x is, you need to move crosshair + */ + + + _createClass(Position, [{ + key: "moveXCrosshairs", + value: function moveXCrosshairs(cx) { + var j = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var ttCtx = this.ttCtx; + var w = this.w; + var xcrosshairs = ttCtx.getElXCrosshairs(); + var x = cx - ttCtx.xcrosshairsWidth / 2; + var tickAmount = w.globals.labels.slice().length; + + if (j !== null) { + x = w.globals.gridWidth / tickAmount * j; + } + + if (xcrosshairs !== null && !w.globals.isBarHorizontal) { + xcrosshairs.setAttribute('x', x); + xcrosshairs.setAttribute('x1', x); + xcrosshairs.setAttribute('x2', x); + xcrosshairs.setAttribute('y2', w.globals.gridHeight); + xcrosshairs.classList.add('apexcharts-active'); + } + + if (x < 0) { + x = 0; + } + + if (x > w.globals.gridWidth) { + x = w.globals.gridWidth; + } + + if (ttCtx.isXAxisTooltipEnabled) { + var tx = x; + + if (w.config.xaxis.crosshairs.width === 'tickWidth' || w.config.xaxis.crosshairs.width === 'barWidth') { + tx = x + ttCtx.xcrosshairsWidth / 2; + } + + this.moveXAxisTooltip(tx); + } + } + /** + * This will move the crosshair (the vertical/horz line that moves along with mouse) + * Along with this, this function also calls the xaxisMove function + * @memberof Position + * @param {int} - cx = point's x position, wherever point's x is, you need to move crosshair + */ + + }, { + key: "moveYCrosshairs", + value: function moveYCrosshairs(cy) { + var ttCtx = this.ttCtx; + + if (ttCtx.ycrosshairs !== null) { + Graphics.setAttrs(ttCtx.ycrosshairs, { + y1: cy, + y2: cy + }); + } + + if (ttCtx.ycrosshairsHidden !== null) { + Graphics.setAttrs(ttCtx.ycrosshairsHidden, { + y1: cy, + y2: cy + }); + } + } + /** + ** AxisTooltip is the small rectangle which appears on x axis with x value, when user moves + * @memberof Position + * @param {int} - cx = point's x position, wherever point's x is, you need to move + */ + + }, { + key: "moveXAxisTooltip", + value: function moveXAxisTooltip(cx) { + var w = this.w; + var ttCtx = this.ttCtx; + + if (ttCtx.xaxisTooltip !== null && ttCtx.xcrosshairsWidth !== 0) { + ttCtx.xaxisTooltip.classList.add('apexcharts-active'); + var cy = ttCtx.xaxisOffY + w.config.xaxis.tooltip.offsetY + w.globals.translateY + 1 + w.config.xaxis.offsetY; + var xaxisTTText = ttCtx.xaxisTooltip.getBoundingClientRect(); + var xaxisTTTextWidth = xaxisTTText.width; + cx = cx - xaxisTTTextWidth / 2; + + if (!isNaN(cx)) { + cx = cx + w.globals.translateX; + var textRect = 0; + var graphics = new Graphics(this.ctx); + textRect = graphics.getTextRects(ttCtx.xaxisTooltipText.innerHTML); + ttCtx.xaxisTooltipText.style.minWidth = textRect.width + 'px'; + ttCtx.xaxisTooltip.style.left = cx + 'px'; + ttCtx.xaxisTooltip.style.top = cy + 'px'; + } + } + } + }, { + key: "moveYAxisTooltip", + value: function moveYAxisTooltip(index) { + var w = this.w; + var ttCtx = this.ttCtx; + + if (ttCtx.yaxisTTEls === null) { + ttCtx.yaxisTTEls = w.globals.dom.baseEl.querySelectorAll('.apexcharts-yaxistooltip'); + } + + var ycrosshairsHiddenRectY1 = parseInt(ttCtx.ycrosshairsHidden.getAttribute('y1'), 10); + var cy = w.globals.translateY + ycrosshairsHiddenRectY1; + var yAxisTTRect = ttCtx.yaxisTTEls[index].getBoundingClientRect(); + var yAxisTTHeight = yAxisTTRect.height; + var cx = w.globals.translateYAxisX[index] - 2; + + if (w.config.yaxis[index].opposite) { + cx = cx - 26; + } + + cy = cy - yAxisTTHeight / 2; + + if (w.globals.ignoreYAxisIndexes.indexOf(index) === -1) { + ttCtx.yaxisTTEls[index].classList.add('apexcharts-active'); + ttCtx.yaxisTTEls[index].style.top = cy + 'px'; + ttCtx.yaxisTTEls[index].style.left = cx + w.config.yaxis[index].tooltip.offsetX + 'px'; + } else { + ttCtx.yaxisTTEls[index].classList.remove('apexcharts-active'); + } + } + /** + ** moves the whole tooltip by changing x, y attrs + * @memberof Position + * @param {int} - cx = point's x position, wherever point's x is, you need to move tooltip + * @param {int} - cy = point's y position, wherever point's y is, you need to move tooltip + * @param {int} - r = point's radius + */ + + }, { + key: "moveTooltip", + value: function moveTooltip(cx, cy) { + var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var w = this.w; + var ttCtx = this.ttCtx; + var tooltipEl = ttCtx.getElTooltip(); + var tooltipRect = ttCtx.tooltipRect; + var pointR = r !== null ? parseFloat(r) : 1; + var x = parseFloat(cx) + pointR + 5; + var y = parseFloat(cy) + pointR / 2; // - tooltipRect.ttHeight / 2 + + if (x > w.globals.gridWidth / 2) { + x = x - tooltipRect.ttWidth - pointR - 10; + } + + if (x > w.globals.gridWidth - tooltipRect.ttWidth - 10) { + x = w.globals.gridWidth - tooltipRect.ttWidth; + } + + if (x < -20) { + x = -20; + } + + if (w.config.tooltip.followCursor) { + var elGrid = ttCtx.getElGrid(); + var seriesBound = elGrid.getBoundingClientRect(); + y = ttCtx.e.clientY + w.globals.translateY - seriesBound.top - tooltipRect.ttHeight / 2; + } else { + if (!w.globals.isBarHorizontal) { + if (tooltipRect.ttHeight / 2 + y > w.globals.gridHeight) { + y = w.globals.gridHeight - tooltipRect.ttHeight + w.globals.translateY; + } + + if (y < 0) { + y = 0; + } + } + } + + if (!isNaN(x)) { + x = x + w.globals.translateX; + tooltipEl.style.left = x + 'px'; + tooltipEl.style.top = y + 'px'; + } + } + }, { + key: "moveMarkers", + value: function moveMarkers(i, j) { + var w = this.w; + var ttCtx = this.ttCtx; + + if (w.globals.markers.size[i] > 0) { + var allPoints = w.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(i, "'] .apexcharts-marker")); + + for (var p = 0; p < allPoints.length; p++) { + if (parseInt(allPoints[p].getAttribute('rel'), 10) === j) { + ttCtx.marker.resetPointsSize(); + ttCtx.marker.enlargeCurrentPoint(j, allPoints[p]); + } + } + } else { + ttCtx.marker.resetPointsSize(); + this.moveDynamicPointOnHover(j, i); + } + } // This function is used when you need to show markers/points only on hover - + // DIFFERENT X VALUES in multiple series + + }, { + key: "moveDynamicPointOnHover", + value: function moveDynamicPointOnHover(j, capturedSeries) { + var w = this.w; + var ttCtx = this.ttCtx; + var cx = 0; + var cy = 0; + var pointsArr = w.globals.pointsArray; + var hoverSize = ttCtx.tooltipUtil.getHoverMarkerSize(capturedSeries); + var serType = w.config.series[capturedSeries].type; + + if (serType && (serType === 'column' || serType === 'candlestick' || serType === 'boxPlot')) { + // fix error mentioned in #811 + return; + } + + cx = pointsArr[capturedSeries][j][0]; + cy = pointsArr[capturedSeries][j][1] ? pointsArr[capturedSeries][j][1] : 0; + var point = w.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(capturedSeries, "'] .apexcharts-series-markers circle")); + + if (point && cy < w.globals.gridHeight && cy > 0) { + point.setAttribute('r', hoverSize); + point.setAttribute('cx', cx); + point.setAttribute('cy', cy); + } // point.style.opacity = w.config.markers.hover.opacity + + + this.moveXCrosshairs(cx); + + if (!ttCtx.fixedTooltip) { + this.moveTooltip(cx, cy, hoverSize); + } + } // This function is used when you need to show markers/points only on hover - + // SAME X VALUES in multiple series + + }, { + key: "moveDynamicPointsOnHover", + value: function moveDynamicPointsOnHover(j) { + var ttCtx = this.ttCtx; + var w = ttCtx.w; + var cx = 0; + var cy = 0; + var activeSeries = 0; + var pointsArr = w.globals.pointsArray; + var series = new Series(this.ctx); + activeSeries = series.getActiveConfigSeriesIndex(true); + var hoverSize = ttCtx.tooltipUtil.getHoverMarkerSize(activeSeries); + + if (pointsArr[activeSeries]) { + cx = pointsArr[activeSeries][j][0]; + cy = pointsArr[activeSeries][j][1]; + } + + var points = ttCtx.tooltipUtil.getAllMarkers(); + + if (points !== null) { + for (var p = 0; p < w.globals.series.length; p++) { + var pointArr = pointsArr[p]; + + if (w.globals.comboCharts) { + // in a combo chart, if column charts are present, markers will not match with the number of series, hence this patch to push a null value in points array + if (typeof pointArr === 'undefined') { + // nodelist to array + points.splice(p, 0, null); + } + } + + if (pointArr && pointArr.length) { + var pcy = pointsArr[p][j][1]; + points[p].setAttribute('cx', cx); + + if (pcy !== null && !isNaN(pcy) && pcy < w.globals.gridHeight + hoverSize && pcy + hoverSize > 0) { + points[p] && points[p].setAttribute('r', hoverSize); + points[p] && points[p].setAttribute('cy', pcy); + } else { + points[p] && points[p].setAttribute('r', 0); + } + } + } + } + + this.moveXCrosshairs(cx); + + if (!ttCtx.fixedTooltip) { + var tcy = cy || w.globals.gridHeight; + this.moveTooltip(cx, tcy, hoverSize); + } + } + }, { + key: "moveStickyTooltipOverBars", + value: function moveStickyTooltipOverBars(j) { + var w = this.w; + var ttCtx = this.ttCtx; + var barLen = w.globals.columnSeries ? w.globals.columnSeries.length : w.globals.series.length; + var i = barLen >= 2 && barLen % 2 === 0 ? Math.floor(barLen / 2) : Math.floor(barLen / 2) + 1; + + if (w.globals.isBarHorizontal) { + var series = new Series(this.ctx); + i = series.getActiveConfigSeriesIndex(false, 'desc') + 1; + } + + var jBar = w.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(i, "'] path[j='").concat(j, "'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(i, "'] path[j='").concat(j, "'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(i, "'] path[j='").concat(j, "'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(i, "'] path[j='").concat(j, "']")); + var bcx = jBar ? parseFloat(jBar.getAttribute('cx')) : 0; + var bcy = jBar ? parseFloat(jBar.getAttribute('cy')) : 0; + var bw = jBar ? parseFloat(jBar.getAttribute('barWidth')) : 0; + var bh = jBar ? parseFloat(jBar.getAttribute('barHeight')) : 0; + var elGrid = ttCtx.getElGrid(); + var seriesBound = elGrid.getBoundingClientRect(); + var isBoxOrCandle = jBar.classList.contains('apexcharts-candlestick-area') || jBar.classList.contains('apexcharts-boxPlot-area'); + + if (w.globals.isXNumeric) { + if (jBar && !isBoxOrCandle) { + bcx = bcx - (barLen % 2 !== 0 ? bw / 2 : 0); + } + + if (jBar && // fixes apexcharts.js#2354 + isBoxOrCandle && w.globals.comboCharts) { + bcx = bcx - bw / 2; + } + } else { + if (!w.globals.isBarHorizontal) { + bcx = ttCtx.xAxisTicksPositions[j - 1] + ttCtx.dataPointsDividedWidth / 2; + + if (isNaN(bcx)) { + bcx = ttCtx.xAxisTicksPositions[j] - ttCtx.dataPointsDividedWidth / 2; + } + } + } + + if (!w.globals.isBarHorizontal) { + if (w.config.tooltip.followCursor) { + bcy = ttCtx.e.clientY - seriesBound.top - ttCtx.tooltipRect.ttHeight / 2; + } else { + if (bcy + ttCtx.tooltipRect.ttHeight + 15 > w.globals.gridHeight) { + bcy = w.globals.gridHeight; + } + } + } else { + if (bcy > w.globals.gridHeight / 2) { + bcy = bcy - ttCtx.tooltipRect.ttHeight; + } + + bcy = bcy + w.config.grid.padding.top + bh / 3; + + if (bcy + bh > w.globals.gridHeight) { + bcy = w.globals.gridHeight - bh; + } + } + + if (bcy < -10) { + bcy = -10; + } + + if (!w.globals.isBarHorizontal) { + this.moveXCrosshairs(bcx); + } + + if (!ttCtx.fixedTooltip) { + var tcy = bcy || w.globals.gridHeight; + this.moveTooltip(bcx, tcy); + } + } + }]); + + return Position; + }(); + + /** + * ApexCharts Tooltip.Marker Class to draw texts on the tooltip. + * This file deals with the markers that appear near tooltip in line/area charts. + * These markers helps the user to associate the data-points and the values + * that are shown in the tooltip + * + * @module Tooltip.Marker + **/ + + var Marker = /*#__PURE__*/function () { + function Marker(tooltipContext) { + _classCallCheck(this, Marker); + + this.w = tooltipContext.w; + this.ttCtx = tooltipContext; + this.ctx = tooltipContext.ctx; + this.tooltipPosition = new Position(tooltipContext); + } + + _createClass(Marker, [{ + key: "drawDynamicPoints", + value: function drawDynamicPoints() { + var w = this.w; + var graphics = new Graphics(this.ctx); + var marker = new Markers(this.ctx); + var elsSeries = w.globals.dom.baseEl.querySelectorAll('.apexcharts-series'); + elsSeries = _toConsumableArray(elsSeries); + + if (w.config.chart.stacked) { + elsSeries.sort(function (a, b) { + return parseFloat(a.getAttribute('data:realIndex')) - parseFloat(b.getAttribute('data:realIndex')); + }); + } + + for (var i = 0; i < elsSeries.length; i++) { + var pointsMain = elsSeries[i].querySelector(".apexcharts-series-markers-wrap"); + + if (pointsMain !== null) { + // it can be null as we have tooltips in donut/bar charts + var point = void 0; + var PointClasses = "apexcharts-marker w".concat((Math.random() + 1).toString(36).substring(4)); + + if ((w.config.chart.type === 'line' || w.config.chart.type === 'area') && !w.globals.comboCharts && !w.config.tooltip.intersect) { + PointClasses += ' no-pointer-events'; + } + + var elPointOptions = marker.getMarkerConfig({ + cssClass: PointClasses, + seriesIndex: Number(pointsMain.getAttribute('data:realIndex')) // fixes apexcharts/apexcharts.js #1427 + + }); + point = graphics.drawMarker(0, 0, elPointOptions); + point.node.setAttribute('default-marker-size', 0); + var elPointsG = document.createElementNS(w.globals.SVGNS, 'g'); + elPointsG.classList.add('apexcharts-series-markers'); + elPointsG.appendChild(point.node); + pointsMain.appendChild(elPointsG); + } + } + } + }, { + key: "enlargeCurrentPoint", + value: function enlargeCurrentPoint(rel, point) { + var x = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var y = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var w = this.w; + + if (w.config.chart.type !== 'bubble') { + this.newPointSize(rel, point); + } + + var cx = point.getAttribute('cx'); + var cy = point.getAttribute('cy'); + + if (x !== null && y !== null) { + cx = x; + cy = y; + } + + this.tooltipPosition.moveXCrosshairs(cx); + + if (!this.fixedTooltip) { + if (w.config.chart.type === 'radar') { + var elGrid = this.ttCtx.getElGrid(); + var seriesBound = elGrid.getBoundingClientRect(); + cx = this.ttCtx.e.clientX - seriesBound.left; + } + + this.tooltipPosition.moveTooltip(cx, cy, w.config.markers.hover.size); + } + } + }, { + key: "enlargePoints", + value: function enlargePoints(j) { + var w = this.w; + var me = this; + var ttCtx = this.ttCtx; + var col = j; + var points = w.globals.dom.baseEl.querySelectorAll('.apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker'); + var newSize = w.config.markers.hover.size; + + for (var p = 0; p < points.length; p++) { + var rel = points[p].getAttribute('rel'); + var index = points[p].getAttribute('index'); + + if (newSize === undefined) { + newSize = w.globals.markers.size[index] + w.config.markers.hover.sizeOffset; + } + + if (col === parseInt(rel, 10)) { + me.newPointSize(col, points[p]); + var cx = points[p].getAttribute('cx'); + var cy = points[p].getAttribute('cy'); + me.tooltipPosition.moveXCrosshairs(cx); + + if (!ttCtx.fixedTooltip) { + me.tooltipPosition.moveTooltip(cx, cy, newSize); + } + } else { + me.oldPointSize(points[p]); + } + } + } + }, { + key: "newPointSize", + value: function newPointSize(rel, point) { + var w = this.w; + var newSize = w.config.markers.hover.size; + var elPoint = rel === 0 ? point.parentNode.firstChild : point.parentNode.lastChild; + + if (elPoint.getAttribute('default-marker-size') !== '0') { + var index = parseInt(elPoint.getAttribute('index'), 10); + + if (newSize === undefined) { + newSize = w.globals.markers.size[index] + w.config.markers.hover.sizeOffset; + } + + if (newSize < 0) newSize = 0; + elPoint.setAttribute('r', newSize); + } + } + }, { + key: "oldPointSize", + value: function oldPointSize(point) { + var size = parseFloat(point.getAttribute('default-marker-size')); + point.setAttribute('r', size); + } + }, { + key: "resetPointsSize", + value: function resetPointsSize() { + var w = this.w; + var points = w.globals.dom.baseEl.querySelectorAll('.apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker'); + + for (var p = 0; p < points.length; p++) { + var size = parseFloat(points[p].getAttribute('default-marker-size')); + + if (Utils$1.isNumber(size) && size >= 0) { + points[p].setAttribute('r', size); + } else { + points[p].setAttribute('r', 0); + } + } + } + }]); + + return Marker; + }(); + + /** + * ApexCharts Tooltip.Intersect Class. + * This file deals with functions related to intersecting tooltips + * (tooltips that appear when user hovers directly over a data-point whether) + * + * @module Tooltip.Intersect + **/ + + var Intersect = /*#__PURE__*/function () { + function Intersect(tooltipContext) { + _classCallCheck(this, Intersect); + + this.w = tooltipContext.w; + this.ttCtx = tooltipContext; + } // a helper function to get an element's attribute value + + + _createClass(Intersect, [{ + key: "getAttr", + value: function getAttr(e, attr) { + return parseFloat(e.target.getAttribute(attr)); + } // handle tooltip for heatmaps and treemaps + + }, { + key: "handleHeatTreeTooltip", + value: function handleHeatTreeTooltip(_ref) { + var e = _ref.e, + opt = _ref.opt, + x = _ref.x, + y = _ref.y, + type = _ref.type; + var ttCtx = this.ttCtx; + var w = this.w; + + if (e.target.classList.contains("apexcharts-".concat(type, "-rect"))) { + var i = this.getAttr(e, 'i'); + var j = this.getAttr(e, 'j'); + var cx = this.getAttr(e, 'cx'); + var cy = this.getAttr(e, 'cy'); + var width = this.getAttr(e, 'width'); + var height = this.getAttr(e, 'height'); + ttCtx.tooltipLabels.drawSeriesTexts({ + ttItems: opt.ttItems, + i: i, + j: j, + shared: false, + e: e + }); + w.globals.capturedSeriesIndex = i; + w.globals.capturedDataPointIndex = j; + x = cx + ttCtx.tooltipRect.ttWidth / 2 + width; + y = cy + ttCtx.tooltipRect.ttHeight / 2 - height / 2; + ttCtx.tooltipPosition.moveXCrosshairs(cx + width / 2); + + if (x > w.globals.gridWidth / 2) { + x = cx - ttCtx.tooltipRect.ttWidth / 2 + width; + } + + if (ttCtx.w.config.tooltip.followCursor) { + var seriesBound = w.globals.dom.elWrap.getBoundingClientRect(); + x = w.globals.clientX - seriesBound.left - (x > w.globals.gridWidth / 2 ? ttCtx.tooltipRect.ttWidth : 0); + y = w.globals.clientY - seriesBound.top - (y > w.globals.gridHeight / 2 ? ttCtx.tooltipRect.ttHeight : 0); + } + } + + return { + x: x, + y: y + }; + } + /** + * handle tooltips for line/area/scatter charts where tooltip.intersect is true + * when user hovers over the marker directly, this function is executed + */ + + }, { + key: "handleMarkerTooltip", + value: function handleMarkerTooltip(_ref2) { + var e = _ref2.e, + opt = _ref2.opt, + x = _ref2.x, + y = _ref2.y; + var w = this.w; + var ttCtx = this.ttCtx; + var i; + var j; + + if (e.target.classList.contains('apexcharts-marker')) { + var cx = parseInt(opt.paths.getAttribute('cx'), 10); + var cy = parseInt(opt.paths.getAttribute('cy'), 10); + var val = parseFloat(opt.paths.getAttribute('val')); + j = parseInt(opt.paths.getAttribute('rel'), 10); + i = parseInt(opt.paths.parentNode.parentNode.parentNode.getAttribute('rel'), 10) - 1; + + if (ttCtx.intersect) { + var el = Utils$1.findAncestor(opt.paths, 'apexcharts-series'); + + if (el) { + i = parseInt(el.getAttribute('data:realIndex'), 10); + } + } + + ttCtx.tooltipLabels.drawSeriesTexts({ + ttItems: opt.ttItems, + i: i, + j: j, + shared: ttCtx.showOnIntersect ? false : w.config.tooltip.shared, + e: e + }); + + if (e.type === 'mouseup') { + ttCtx.markerClick(e, i, j); + } + + w.globals.capturedSeriesIndex = i; + w.globals.capturedDataPointIndex = j; + x = cx; + y = cy + w.globals.translateY - ttCtx.tooltipRect.ttHeight * 1.4; + + if (ttCtx.w.config.tooltip.followCursor) { + var elGrid = ttCtx.getElGrid(); + var seriesBound = elGrid.getBoundingClientRect(); + y = ttCtx.e.clientY + w.globals.translateY - seriesBound.top; + } + + if (val < 0) { + y = cy; + } + + ttCtx.marker.enlargeCurrentPoint(j, opt.paths, x, y); + } + + return { + x: x, + y: y + }; + } + /** + * handle tooltips for bar/column charts + */ + + }, { + key: "handleBarTooltip", + value: function handleBarTooltip(_ref3) { + var e = _ref3.e, + opt = _ref3.opt; + var w = this.w; + var ttCtx = this.ttCtx; + var tooltipEl = ttCtx.getElTooltip(); + var bx = 0; + var x = 0; + var y = 0; + var i = 0; + var strokeWidth; + var barXY = this.getBarTooltipXY({ + e: e, + opt: opt + }); + i = barXY.i; + var barHeight = barXY.barHeight; + var j = barXY.j; + w.globals.capturedSeriesIndex = i; + w.globals.capturedDataPointIndex = j; + + if (w.globals.isBarHorizontal && ttCtx.tooltipUtil.hasBars() || !w.config.tooltip.shared) { + x = barXY.x; + y = barXY.y; + strokeWidth = Array.isArray(w.config.stroke.width) ? w.config.stroke.width[i] : w.config.stroke.width; + bx = x; + } else { + if (!w.globals.comboCharts && !w.config.tooltip.shared) { + // todo: re-check this condition as it's always 0 + bx = bx / 2; + } + } // y is NaN, make it touch the bottom of grid area + + + if (isNaN(y)) { + y = w.globals.svgHeight - ttCtx.tooltipRect.ttHeight; + } else if (y < 0) { + y = 0; + } + + var seriesIndex = parseInt(opt.paths.parentNode.getAttribute('data:realIndex'), 10); + var isReversed = w.globals.isMultipleYAxis ? w.config.yaxis[seriesIndex] && w.config.yaxis[seriesIndex].reversed : w.config.yaxis[0].reversed; + + if (x + ttCtx.tooltipRect.ttWidth > w.globals.gridWidth && !isReversed) { + x = x - ttCtx.tooltipRect.ttWidth; + } else if (x < 0) { + x = 0; + } + + if (ttCtx.w.config.tooltip.followCursor) { + var elGrid = ttCtx.getElGrid(); + var seriesBound = elGrid.getBoundingClientRect(); + y = ttCtx.e.clientY - seriesBound.top; + } // if tooltip is still null, querySelector + + + if (ttCtx.tooltip === null) { + ttCtx.tooltip = w.globals.dom.baseEl.querySelector('.apexcharts-tooltip'); + } + + if (!w.config.tooltip.shared) { + if (w.globals.comboBarCount > 0) { + ttCtx.tooltipPosition.moveXCrosshairs(bx + strokeWidth / 2); + } else { + ttCtx.tooltipPosition.moveXCrosshairs(bx); + } + } // move tooltip here + + + if (!ttCtx.fixedTooltip && (!w.config.tooltip.shared || w.globals.isBarHorizontal && ttCtx.tooltipUtil.hasBars())) { + if (isReversed) { + x = x - ttCtx.tooltipRect.ttWidth; + + if (x < 0) { + x = 0; + } + } + + if (isReversed && !(w.globals.isBarHorizontal && ttCtx.tooltipUtil.hasBars())) { + y = y + barHeight - (w.globals.series[i][j] < 0 ? barHeight : 0) * 2; + } + + if (ttCtx.tooltipRect.ttHeight + y > w.globals.gridHeight) { + y = w.globals.gridHeight - ttCtx.tooltipRect.ttHeight + w.globals.translateY; + } else { + y = y + w.globals.translateY - ttCtx.tooltipRect.ttHeight / 2; + + if (y < 0) { + y = 0; + } + } + + tooltipEl.style.left = x + w.globals.translateX + 'px'; + tooltipEl.style.top = y + 'px'; + } + } + }, { + key: "getBarTooltipXY", + value: function getBarTooltipXY(_ref4) { + var e = _ref4.e, + opt = _ref4.opt; + var w = this.w; + var j = null; + var ttCtx = this.ttCtx; + var i = 0; + var x = 0; + var y = 0; + var barWidth = 0; + var barHeight = 0; + var cl = e.target.classList; + + if (cl.contains('apexcharts-bar-area') || cl.contains('apexcharts-candlestick-area') || cl.contains('apexcharts-boxPlot-area') || cl.contains('apexcharts-rangebar-area')) { + var bar = e.target; + var barRect = bar.getBoundingClientRect(); + var seriesBound = opt.elGrid.getBoundingClientRect(); + var bh = barRect.height; + barHeight = barRect.height; + var bw = barRect.width; + var cx = parseInt(bar.getAttribute('cx'), 10); + var cy = parseInt(bar.getAttribute('cy'), 10); + barWidth = parseFloat(bar.getAttribute('barWidth')); + var clientX = e.type === 'touchmove' ? e.touches[0].clientX : e.clientX; + j = parseInt(bar.getAttribute('j'), 10); + i = parseInt(bar.parentNode.getAttribute('rel'), 10) - 1; + var y1 = bar.getAttribute('data-range-y1'); + var y2 = bar.getAttribute('data-range-y2'); + + if (w.globals.comboCharts) { + i = parseInt(bar.parentNode.getAttribute('data:realIndex'), 10); + } // if (w.config.tooltip.shared) { + // this check not needed at the moment + // const yDivisor = w.globals.gridHeight / (w.globals.series.length) + // const hoverY = ttCtx.clientY - ttCtx.seriesBound.top + // j = Math.ceil(hoverY / yDivisor) + // } + + + ttCtx.tooltipLabels.drawSeriesTexts({ + ttItems: opt.ttItems, + i: i, + j: j, + y1: y1 ? parseInt(y1, 10) : null, + y2: y2 ? parseInt(y2, 10) : null, + shared: ttCtx.showOnIntersect ? false : w.config.tooltip.shared, + e: e + }); + + if (w.config.tooltip.followCursor) { + if (w.globals.isBarHorizontal) { + x = clientX - seriesBound.left + 15; + y = cy - ttCtx.dataPointsDividedHeight + bh / 2 - ttCtx.tooltipRect.ttHeight / 2; + } else { + if (w.globals.isXNumeric) { + x = cx - bw / 2; + } else { + x = cx - ttCtx.dataPointsDividedWidth + bw / 2; + } + + y = e.clientY - seriesBound.top - ttCtx.tooltipRect.ttHeight / 2 - 15; + } + } else { + if (w.globals.isBarHorizontal) { + x = cx; + + if (x < ttCtx.xyRatios.baseLineInvertedY) { + x = cx - ttCtx.tooltipRect.ttWidth; + } + + y = cy - ttCtx.dataPointsDividedHeight + bh / 2 - ttCtx.tooltipRect.ttHeight / 2; + } else { + // if columns + if (w.globals.isXNumeric) { + x = cx - bw / 2; + } else { + x = cx - ttCtx.dataPointsDividedWidth + bw / 2; + } + + y = cy; // - ttCtx.tooltipRect.ttHeight / 2 + 10 + } + } + } + + return { + x: x, + y: y, + barHeight: barHeight, + barWidth: barWidth, + i: i, + j: j + }; + } + }]); + + return Intersect; + }(); + + /** + * ApexCharts Tooltip.AxesTooltip Class. + * This file deals with the x-axis and y-axis tooltips. + * + * @module Tooltip.AxesTooltip + **/ + var AxesTooltip = /*#__PURE__*/function () { + function AxesTooltip(tooltipContext) { + _classCallCheck(this, AxesTooltip); + + this.w = tooltipContext.w; + this.ttCtx = tooltipContext; + } + /** + * This method adds the secondary tooltip which appears below x axis + * @memberof Tooltip + **/ + + + _createClass(AxesTooltip, [{ + key: "drawXaxisTooltip", + value: function drawXaxisTooltip() { + var w = this.w; + var ttCtx = this.ttCtx; + var isBottom = w.config.xaxis.position === 'bottom'; + ttCtx.xaxisOffY = isBottom ? w.globals.gridHeight + 1 : -w.globals.xAxisHeight - w.config.xaxis.axisTicks.height + 3; + var tooltipCssClass = isBottom ? 'apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom' : 'apexcharts-xaxistooltip apexcharts-xaxistooltip-top'; + var renderTo = w.globals.dom.elWrap; + + if (ttCtx.isXAxisTooltipEnabled) { + var xaxisTooltip = w.globals.dom.baseEl.querySelector('.apexcharts-xaxistooltip'); + + if (xaxisTooltip === null) { + ttCtx.xaxisTooltip = document.createElement('div'); + ttCtx.xaxisTooltip.setAttribute('class', tooltipCssClass + ' apexcharts-theme-' + w.config.tooltip.theme); + renderTo.appendChild(ttCtx.xaxisTooltip); + ttCtx.xaxisTooltipText = document.createElement('div'); + ttCtx.xaxisTooltipText.classList.add('apexcharts-xaxistooltip-text'); + ttCtx.xaxisTooltipText.style.fontFamily = w.config.xaxis.tooltip.style.fontFamily || w.config.chart.fontFamily; + ttCtx.xaxisTooltipText.style.fontSize = w.config.xaxis.tooltip.style.fontSize; + ttCtx.xaxisTooltip.appendChild(ttCtx.xaxisTooltipText); + } + } + } + /** + * This method adds the secondary tooltip which appears below x axis + * @memberof Tooltip + **/ + + }, { + key: "drawYaxisTooltip", + value: function drawYaxisTooltip() { + var w = this.w; + var ttCtx = this.ttCtx; + + var _loop = function _loop(i) { + var isRight = w.config.yaxis[i].opposite || w.config.yaxis[i].crosshairs.opposite; + ttCtx.yaxisOffX = isRight ? w.globals.gridWidth + 1 : 1; + var tooltipCssClass = isRight ? "apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i, " apexcharts-yaxistooltip-right") : "apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i, " apexcharts-yaxistooltip-left"); + w.globals.yAxisSameScaleIndices.map(function (samescales, ssi) { + samescales.map(function (s, si) { + if (si === i) { + tooltipCssClass += w.config.yaxis[si].show ? " " : " apexcharts-yaxistooltip-hidden"; + } + }); + }); + var renderTo = w.globals.dom.elWrap; + var yaxisTooltip = w.globals.dom.baseEl.querySelector(".apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i)); + + if (yaxisTooltip === null) { + ttCtx.yaxisTooltip = document.createElement('div'); + ttCtx.yaxisTooltip.setAttribute('class', tooltipCssClass + ' apexcharts-theme-' + w.config.tooltip.theme); + renderTo.appendChild(ttCtx.yaxisTooltip); + if (i === 0) ttCtx.yaxisTooltipText = []; + ttCtx.yaxisTooltipText[i] = document.createElement('div'); + ttCtx.yaxisTooltipText[i].classList.add('apexcharts-yaxistooltip-text'); + ttCtx.yaxisTooltip.appendChild(ttCtx.yaxisTooltipText[i]); + } + }; + + for (var i = 0; i < w.config.yaxis.length; i++) { + _loop(i); + } + } + /** + * @memberof Tooltip + **/ + + }, { + key: "setXCrosshairWidth", + value: function setXCrosshairWidth() { + var w = this.w; + var ttCtx = this.ttCtx; // set xcrosshairs width + + var xcrosshairs = ttCtx.getElXCrosshairs(); + ttCtx.xcrosshairsWidth = parseInt(w.config.xaxis.crosshairs.width, 10); + + if (!w.globals.comboCharts) { + if (w.config.xaxis.crosshairs.width === 'tickWidth') { + var count = w.globals.labels.length; + ttCtx.xcrosshairsWidth = w.globals.gridWidth / count; + } else if (w.config.xaxis.crosshairs.width === 'barWidth') { + var bar = w.globals.dom.baseEl.querySelector('.apexcharts-bar-area'); + + if (bar !== null) { + var barWidth = parseFloat(bar.getAttribute('barWidth')); + ttCtx.xcrosshairsWidth = barWidth; + } else { + ttCtx.xcrosshairsWidth = 1; + } + } + } else { + var _bar = w.globals.dom.baseEl.querySelector('.apexcharts-bar-area'); + + if (_bar !== null && w.config.xaxis.crosshairs.width === 'barWidth') { + var _barWidth = parseFloat(_bar.getAttribute('barWidth')); + + ttCtx.xcrosshairsWidth = _barWidth; + } else { + if (w.config.xaxis.crosshairs.width === 'tickWidth') { + var _count = w.globals.labels.length; + ttCtx.xcrosshairsWidth = w.globals.gridWidth / _count; + } + } + } + + if (w.globals.isBarHorizontal) { + ttCtx.xcrosshairsWidth = 0; + } + + if (xcrosshairs !== null && ttCtx.xcrosshairsWidth > 0) { + xcrosshairs.setAttribute('width', ttCtx.xcrosshairsWidth); + } + } + }, { + key: "handleYCrosshair", + value: function handleYCrosshair() { + var w = this.w; + var ttCtx = this.ttCtx; // set ycrosshairs height + + ttCtx.ycrosshairs = w.globals.dom.baseEl.querySelector('.apexcharts-ycrosshairs'); + ttCtx.ycrosshairsHidden = w.globals.dom.baseEl.querySelector('.apexcharts-ycrosshairs-hidden'); + } + }, { + key: "drawYaxisTooltipText", + value: function drawYaxisTooltipText(index, clientY, xyRatios) { + var ttCtx = this.ttCtx; + var w = this.w; + var lbFormatter = w.globals.yLabelFormatters[index]; + + if (ttCtx.yaxisTooltips[index]) { + var elGrid = ttCtx.getElGrid(); + var seriesBound = elGrid.getBoundingClientRect(); + var hoverY = (clientY - seriesBound.top) * xyRatios.yRatio[index]; + var height = w.globals.maxYArr[index] - w.globals.minYArr[index]; + var val = w.globals.minYArr[index] + (height - hoverY); + ttCtx.tooltipPosition.moveYCrosshairs(clientY - seriesBound.top); + ttCtx.yaxisTooltipText[index].innerHTML = lbFormatter(val); + ttCtx.tooltipPosition.moveYAxisTooltip(index); + } + } + }]); + + return AxesTooltip; + }(); + + /** + * ApexCharts Core Tooltip Class to handle the tooltip generation. + * + * @module Tooltip + **/ + + var Tooltip = /*#__PURE__*/function () { + function Tooltip(ctx) { + _classCallCheck(this, Tooltip); + + this.ctx = ctx; + this.w = ctx.w; + var w = this.w; + this.tConfig = w.config.tooltip; + this.tooltipUtil = new Utils(this); + this.tooltipLabels = new Labels(this); + this.tooltipPosition = new Position(this); + this.marker = new Marker(this); + this.intersect = new Intersect(this); + this.axesTooltip = new AxesTooltip(this); + this.showOnIntersect = this.tConfig.intersect; + this.showTooltipTitle = this.tConfig.x.show; + this.fixedTooltip = this.tConfig.fixed.enabled; + this.xaxisTooltip = null; + this.yaxisTTEls = null; + this.isBarShared = !w.globals.isBarHorizontal && this.tConfig.shared; + this.lastHoverTime = Date.now(); + } + + _createClass(Tooltip, [{ + key: "getElTooltip", + value: function getElTooltip(ctx) { + if (!ctx) ctx = this; + if (!ctx.w.globals.dom.baseEl) return null; + return ctx.w.globals.dom.baseEl.querySelector('.apexcharts-tooltip'); + } + }, { + key: "getElXCrosshairs", + value: function getElXCrosshairs() { + return this.w.globals.dom.baseEl.querySelector('.apexcharts-xcrosshairs'); + } + }, { + key: "getElGrid", + value: function getElGrid() { + return this.w.globals.dom.baseEl.querySelector('.apexcharts-grid'); + } + }, { + key: "drawTooltip", + value: function drawTooltip(xyRatios) { + var w = this.w; + this.xyRatios = xyRatios; + this.isXAxisTooltipEnabled = w.config.xaxis.tooltip.enabled && w.globals.axisCharts; + this.yaxisTooltips = w.config.yaxis.map(function (y, i) { + return y.show && y.tooltip.enabled && w.globals.axisCharts ? true : false; + }); + this.allTooltipSeriesGroups = []; + + if (!w.globals.axisCharts) { + this.showTooltipTitle = false; + } + + var tooltipEl = document.createElement('div'); + tooltipEl.classList.add('apexcharts-tooltip'); + + if (w.config.tooltip.cssClass) { + tooltipEl.classList.add(w.config.tooltip.cssClass); + } + + tooltipEl.classList.add("apexcharts-theme-".concat(this.tConfig.theme)); + w.globals.dom.elWrap.appendChild(tooltipEl); + + if (w.globals.axisCharts) { + this.axesTooltip.drawXaxisTooltip(); + this.axesTooltip.drawYaxisTooltip(); + this.axesTooltip.setXCrosshairWidth(); + this.axesTooltip.handleYCrosshair(); + var xAxis = new XAxis(this.ctx); + this.xAxisTicksPositions = xAxis.getXAxisTicksPositions(); + } // we forcefully set intersect true for these conditions + + + if ((w.globals.comboCharts || this.tConfig.intersect || w.config.chart.type === 'rangeBar') && !this.tConfig.shared) { + this.showOnIntersect = true; + } + + if (w.config.markers.size === 0 || w.globals.markers.largestSize === 0) { + // when user don't want to show points all the time, but only on when hovering on series + this.marker.drawDynamicPoints(this); + } // no visible series, exit + + + if (w.globals.collapsedSeries.length === w.globals.series.length) return; + this.dataPointsDividedHeight = w.globals.gridHeight / w.globals.dataPoints; + this.dataPointsDividedWidth = w.globals.gridWidth / w.globals.dataPoints; + + if (this.showTooltipTitle) { + this.tooltipTitle = document.createElement('div'); + this.tooltipTitle.classList.add('apexcharts-tooltip-title'); + this.tooltipTitle.style.fontFamily = this.tConfig.style.fontFamily || w.config.chart.fontFamily; + this.tooltipTitle.style.fontSize = this.tConfig.style.fontSize; + tooltipEl.appendChild(this.tooltipTitle); + } + + var ttItemsCnt = w.globals.series.length; // whether shared or not, default is shared + + if ((w.globals.xyCharts || w.globals.comboCharts) && this.tConfig.shared) { + if (!this.showOnIntersect) { + ttItemsCnt = w.globals.series.length; + } else { + ttItemsCnt = 1; + } + } + + this.legendLabels = w.globals.dom.baseEl.querySelectorAll('.apexcharts-legend-text'); + this.ttItems = this.createTTElements(ttItemsCnt); + this.addSVGEvents(); + } + }, { + key: "createTTElements", + value: function createTTElements(ttItemsCnt) { + var _this = this; + + var w = this.w; + var ttItems = []; + var tooltipEl = this.getElTooltip(); + + var _loop = function _loop(i) { + var gTxt = document.createElement('div'); + gTxt.classList.add('apexcharts-tooltip-series-group'); + gTxt.style.order = w.config.tooltip.inverseOrder ? ttItemsCnt - i : i + 1; + + if (_this.tConfig.shared && _this.tConfig.enabledOnSeries && Array.isArray(_this.tConfig.enabledOnSeries)) { + if (_this.tConfig.enabledOnSeries.indexOf(i) < 0) { + gTxt.classList.add('apexcharts-tooltip-series-group-hidden'); + } + } + + var point = document.createElement('span'); + point.classList.add('apexcharts-tooltip-marker'); + point.style.backgroundColor = w.globals.colors[i]; + gTxt.appendChild(point); + var gYZ = document.createElement('div'); + gYZ.classList.add('apexcharts-tooltip-text'); + gYZ.style.fontFamily = _this.tConfig.style.fontFamily || w.config.chart.fontFamily; + gYZ.style.fontSize = _this.tConfig.style.fontSize; + ['y', 'goals', 'z'].forEach(function (g) { + var gValText = document.createElement('div'); + gValText.classList.add("apexcharts-tooltip-".concat(g, "-group")); + var txtLabel = document.createElement('span'); + txtLabel.classList.add("apexcharts-tooltip-text-".concat(g, "-label")); + gValText.appendChild(txtLabel); + var txtValue = document.createElement('span'); + txtValue.classList.add("apexcharts-tooltip-text-".concat(g, "-value")); + gValText.appendChild(txtValue); + gYZ.appendChild(gValText); + }); + gTxt.appendChild(gYZ); + tooltipEl.appendChild(gTxt); + ttItems.push(gTxt); + }; + + for (var i = 0; i < ttItemsCnt; i++) { + _loop(i); + } + + return ttItems; + } + }, { + key: "addSVGEvents", + value: function addSVGEvents() { + var w = this.w; + var type = w.config.chart.type; + var tooltipEl = this.getElTooltip(); + var commonBar = !!(type === 'bar' || type === 'candlestick' || type === 'boxPlot' || type === 'rangeBar'); + var chartWithmarkers = type === 'area' || type === 'line' || type === 'scatter' || type === 'bubble' || type === 'radar'; + var hoverArea = w.globals.dom.Paper.node; + var elGrid = this.getElGrid(); + + if (elGrid) { + this.seriesBound = elGrid.getBoundingClientRect(); + } + + var tooltipY = []; + var tooltipX = []; + var seriesHoverParams = { + hoverArea: hoverArea, + elGrid: elGrid, + tooltipEl: tooltipEl, + tooltipY: tooltipY, + tooltipX: tooltipX, + ttItems: this.ttItems + }; + var points; + + if (w.globals.axisCharts) { + if (chartWithmarkers) { + points = w.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:longestSeries='true'] .apexcharts-marker"); + } else if (commonBar) { + points = w.globals.dom.baseEl.querySelectorAll('.apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-boxPlot-area, .apexcharts-series .apexcharts-rangebar-area'); + } else if (type === 'heatmap' || type === 'treemap') { + points = w.globals.dom.baseEl.querySelectorAll('.apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap'); + } + + if (points && points.length) { + for (var p = 0; p < points.length; p++) { + tooltipY.push(points[p].getAttribute('cy')); + tooltipX.push(points[p].getAttribute('cx')); + } + } + } + + var validSharedChartTypes = w.globals.xyCharts && !this.showOnIntersect || w.globals.comboCharts && !this.showOnIntersect || commonBar && this.tooltipUtil.hasBars() && this.tConfig.shared; + + if (validSharedChartTypes) { + this.addPathsEventListeners([hoverArea], seriesHoverParams); + } else if (commonBar && !w.globals.comboCharts || chartWithmarkers && this.showOnIntersect) { + this.addDatapointEventsListeners(seriesHoverParams); + } else if (!w.globals.axisCharts || type === 'heatmap' || type === 'treemap') { + var seriesAll = w.globals.dom.baseEl.querySelectorAll('.apexcharts-series'); + this.addPathsEventListeners(seriesAll, seriesHoverParams); + } + + if (this.showOnIntersect) { + var lineAreaPoints = w.globals.dom.baseEl.querySelectorAll('.apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker'); + + if (lineAreaPoints.length > 0) { + // if we find any lineSeries, addEventListeners for them + this.addPathsEventListeners(lineAreaPoints, seriesHoverParams); + } // combo charts may have bars, so add event listeners here too + + + if (this.tooltipUtil.hasBars() && !this.tConfig.shared) { + this.addDatapointEventsListeners(seriesHoverParams); + } + } + } + }, { + key: "drawFixedTooltipRect", + value: function drawFixedTooltipRect() { + var w = this.w; + var tooltipEl = this.getElTooltip(); + var tooltipRect = tooltipEl.getBoundingClientRect(); + var ttWidth = tooltipRect.width + 10; + var ttHeight = tooltipRect.height + 10; + var x = this.tConfig.fixed.offsetX; + var y = this.tConfig.fixed.offsetY; + var fixed = this.tConfig.fixed.position.toLowerCase(); + + if (fixed.indexOf('right') > -1) { + x = x + w.globals.svgWidth - ttWidth + 10; + } + + if (fixed.indexOf('bottom') > -1) { + y = y + w.globals.svgHeight - ttHeight - 10; + } + + tooltipEl.style.left = x + 'px'; + tooltipEl.style.top = y + 'px'; + return { + x: x, + y: y, + ttWidth: ttWidth, + ttHeight: ttHeight + }; + } + }, { + key: "addDatapointEventsListeners", + value: function addDatapointEventsListeners(seriesHoverParams) { + var w = this.w; + var points = w.globals.dom.baseEl.querySelectorAll('.apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area'); + this.addPathsEventListeners(points, seriesHoverParams); + } + }, { + key: "addPathsEventListeners", + value: function addPathsEventListeners(paths, opts) { + var self = this; + + var _loop2 = function _loop2(p) { + var extendedOpts = { + paths: paths[p], + tooltipEl: opts.tooltipEl, + tooltipY: opts.tooltipY, + tooltipX: opts.tooltipX, + elGrid: opts.elGrid, + hoverArea: opts.hoverArea, + ttItems: opts.ttItems + }; + var events = ['mousemove', 'mouseup', 'touchmove', 'mouseout', 'touchend']; + events.map(function (ev) { + return paths[p].addEventListener(ev, self.onSeriesHover.bind(self, extendedOpts), { + capture: false, + passive: true + }); + }); + }; + + for (var p = 0; p < paths.length; p++) { + _loop2(p); + } + } + /* + ** Check to see if the tooltips should be updated based on a mouse / touch event + */ + + }, { + key: "onSeriesHover", + value: function onSeriesHover(opt, e) { + var _this2 = this; + + // If a user is moving their mouse quickly, don't bother updating the tooltip every single frame + var targetDelay = 100; + var timeSinceLastUpdate = Date.now() - this.lastHoverTime; + + if (timeSinceLastUpdate >= targetDelay) { + // The tooltip was last updated over 100ms ago - redraw it even if the user is still moving their + // mouse so they get some feedback that their moves are being registered + this.seriesHover(opt, e); + } else { + // The tooltip was last updated less than 100ms ago + // Cancel any other delayed draw, so we don't show stale data + clearTimeout(this.seriesHoverTimeout); // Schedule the next draw so that it happens about 100ms after the last update + + this.seriesHoverTimeout = setTimeout(function () { + _this2.seriesHover(opt, e); + }, targetDelay - timeSinceLastUpdate); + } + } + /* + ** The actual series hover function + */ + + }, { + key: "seriesHover", + value: function seriesHover(opt, e) { + var _this3 = this; + + this.lastHoverTime = Date.now(); + var chartGroups = []; + var w = this.w; // if user has more than one charts in group, we need to sync + + if (w.config.chart.group) { + chartGroups = this.ctx.getGroupedCharts(); + } + + if (w.globals.axisCharts && (w.globals.minX === -Infinity && w.globals.maxX === Infinity || w.globals.dataPoints === 0)) { + return; + } + + if (chartGroups.length) { + chartGroups.forEach(function (ch) { + var tooltipEl = _this3.getElTooltip(ch); + + var newOpts = { + paths: opt.paths, + tooltipEl: tooltipEl, + tooltipY: opt.tooltipY, + tooltipX: opt.tooltipX, + elGrid: opt.elGrid, + hoverArea: opt.hoverArea, + ttItems: ch.w.globals.tooltip.ttItems + }; // all the charts should have the same minX and maxX (same xaxis) for multiple tooltips to work correctly + + if (ch.w.globals.minX === _this3.w.globals.minX && ch.w.globals.maxX === _this3.w.globals.maxX) { + ch.w.globals.tooltip.seriesHoverByContext({ + chartCtx: ch, + ttCtx: ch.w.globals.tooltip, + opt: newOpts, + e: e + }); + } + }); + } else { + this.seriesHoverByContext({ + chartCtx: this.ctx, + ttCtx: this.w.globals.tooltip, + opt: opt, + e: e + }); + } + } + }, { + key: "seriesHoverByContext", + value: function seriesHoverByContext(_ref) { + var chartCtx = _ref.chartCtx, + ttCtx = _ref.ttCtx, + opt = _ref.opt, + e = _ref.e; + var w = chartCtx.w; + var tooltipEl = this.getElTooltip(); + if (!tooltipEl) return; // tooltipRect is calculated on every mousemove, because the text is dynamic + + ttCtx.tooltipRect = { + x: 0, + y: 0, + ttWidth: tooltipEl.getBoundingClientRect().width, + ttHeight: tooltipEl.getBoundingClientRect().height + }; + ttCtx.e = e; // highlight the current hovered bars + + if (ttCtx.tooltipUtil.hasBars() && !w.globals.comboCharts && !ttCtx.isBarShared) { + if (this.tConfig.onDatasetHover.highlightDataSeries) { + var series = new Series(chartCtx); + series.toggleSeriesOnHover(e, e.target.parentNode); + } + } + + if (ttCtx.fixedTooltip) { + ttCtx.drawFixedTooltipRect(); + } + + if (w.globals.axisCharts) { + ttCtx.axisChartsTooltips({ + e: e, + opt: opt, + tooltipRect: ttCtx.tooltipRect + }); + } else { + // non-plot charts i.e pie/donut/circle + ttCtx.nonAxisChartsTooltips({ + e: e, + opt: opt, + tooltipRect: ttCtx.tooltipRect + }); + } + } // tooltip handling for line/area/bar/columns/scatter + + }, { + key: "axisChartsTooltips", + value: function axisChartsTooltips(_ref2) { + var e = _ref2.e, + opt = _ref2.opt; + var w = this.w; + var x, y; + var seriesBound = opt.elGrid.getBoundingClientRect(); + var clientX = e.type === 'touchmove' ? e.touches[0].clientX : e.clientX; + var clientY = e.type === 'touchmove' ? e.touches[0].clientY : e.clientY; + this.clientY = clientY; + this.clientX = clientX; + w.globals.capturedSeriesIndex = -1; + w.globals.capturedDataPointIndex = -1; + + if (clientY < seriesBound.top || clientY > seriesBound.top + seriesBound.height) { + this.handleMouseOut(opt); + return; + } + + if (Array.isArray(this.tConfig.enabledOnSeries) && !w.config.tooltip.shared) { + var index = parseInt(opt.paths.getAttribute('index'), 10); + + if (this.tConfig.enabledOnSeries.indexOf(index) < 0) { + this.handleMouseOut(opt); + return; + } + } + + var tooltipEl = this.getElTooltip(); + var xcrosshairs = this.getElXCrosshairs(); + var isStickyTooltip = w.globals.xyCharts || w.config.chart.type === 'bar' && !w.globals.isBarHorizontal && this.tooltipUtil.hasBars() && this.tConfig.shared || w.globals.comboCharts && this.tooltipUtil.hasBars(); + + if (e.type === 'mousemove' || e.type === 'touchmove' || e.type === 'mouseup') { + // there is no series to hover over + if (w.globals.collapsedSeries.length + w.globals.ancillaryCollapsedSeries.length === w.globals.series.length) { + return; + } + + if (xcrosshairs !== null) { + xcrosshairs.classList.add('apexcharts-active'); + } + + var hasYAxisTooltip = this.yaxisTooltips.filter(function (b) { + return b === true; + }); + + if (this.ycrosshairs !== null && hasYAxisTooltip.length) { + this.ycrosshairs.classList.add('apexcharts-active'); + } + + if (isStickyTooltip && !this.showOnIntersect) { + this.handleStickyTooltip(e, clientX, clientY, opt); + } else { + if (w.config.chart.type === 'heatmap' || w.config.chart.type === 'treemap') { + var markerXY = this.intersect.handleHeatTreeTooltip({ + e: e, + opt: opt, + x: x, + y: y, + type: w.config.chart.type + }); + x = markerXY.x; + y = markerXY.y; + tooltipEl.style.left = x + 'px'; + tooltipEl.style.top = y + 'px'; + } else { + if (this.tooltipUtil.hasBars()) { + this.intersect.handleBarTooltip({ + e: e, + opt: opt + }); + } + + if (this.tooltipUtil.hasMarkers()) { + // intersect - line/area/scatter/bubble + this.intersect.handleMarkerTooltip({ + e: e, + opt: opt, + x: x, + y: y + }); + } + } + } + + if (this.yaxisTooltips.length) { + for (var yt = 0; yt < w.config.yaxis.length; yt++) { + this.axesTooltip.drawYaxisTooltipText(yt, clientY, this.xyRatios); + } + } + + opt.tooltipEl.classList.add('apexcharts-active'); + } else if (e.type === 'mouseout' || e.type === 'touchend') { + this.handleMouseOut(opt); + } + } // tooltip handling for pie/donuts + + }, { + key: "nonAxisChartsTooltips", + value: function nonAxisChartsTooltips(_ref3) { + var e = _ref3.e, + opt = _ref3.opt, + tooltipRect = _ref3.tooltipRect; + var w = this.w; + var rel = opt.paths.getAttribute('rel'); + var tooltipEl = this.getElTooltip(); + var seriesBound = w.globals.dom.elWrap.getBoundingClientRect(); + + if (e.type === 'mousemove' || e.type === 'touchmove') { + tooltipEl.classList.add('apexcharts-active'); + this.tooltipLabels.drawSeriesTexts({ + ttItems: opt.ttItems, + i: parseInt(rel, 10) - 1, + shared: false + }); + var x = w.globals.clientX - seriesBound.left - tooltipRect.ttWidth / 2; + var y = w.globals.clientY - seriesBound.top - tooltipRect.ttHeight - 10; + tooltipEl.style.left = x + 'px'; + tooltipEl.style.top = y + 'px'; + + if (w.config.legend.tooltipHoverFormatter) { + var legendFormatter = w.config.legend.tooltipHoverFormatter; + var i = rel - 1; + var legendName = this.legendLabels[i].getAttribute('data:default-text'); + var text = legendFormatter(legendName, { + seriesIndex: i, + dataPointIndex: i, + w: w + }); + this.legendLabels[i].innerHTML = text; + } + } else if (e.type === 'mouseout' || e.type === 'touchend') { + tooltipEl.classList.remove('apexcharts-active'); + + if (w.config.legend.tooltipHoverFormatter) { + this.legendLabels.forEach(function (l) { + var defaultText = l.getAttribute('data:default-text'); + l.innerHTML = decodeURIComponent(defaultText); + }); + } + } + } + }, { + key: "handleStickyTooltip", + value: function handleStickyTooltip(e, clientX, clientY, opt) { + var w = this.w; + var capj = this.tooltipUtil.getNearestValues({ + context: this, + hoverArea: opt.hoverArea, + elGrid: opt.elGrid, + clientX: clientX, + clientY: clientY + }); + var j = capj.j; + var capturedSeries = capj.capturedSeries; + var bounds = opt.elGrid.getBoundingClientRect(); + + if (capj.hoverX < 0 || capj.hoverX > bounds.width) { + this.handleMouseOut(opt); + return; + } + + if (capturedSeries !== null) { + this.handleStickyCapturedSeries(e, capturedSeries, opt, j); + } else { + // couldn't capture any series. check if shared X is same, + // if yes, draw a grouped tooltip + if (this.tooltipUtil.isXoverlap(j) || w.globals.isBarHorizontal) { + this.create(e, this, 0, j, opt.ttItems); + } + } + } + }, { + key: "handleStickyCapturedSeries", + value: function handleStickyCapturedSeries(e, capturedSeries, opt, j) { + var w = this.w; + + if (!this.tConfig.shared) { + var ignoreNull = w.globals.series[capturedSeries][j] === null; + + if (ignoreNull) { + this.handleMouseOut(opt); + return; + } + } + + if (typeof w.globals.series[capturedSeries][j] !== 'undefined') { + if (this.tConfig.shared && this.tooltipUtil.isXoverlap(j) && this.tooltipUtil.isInitialSeriesSameLen()) { + this.create(e, this, capturedSeries, j, opt.ttItems); + } else { + this.create(e, this, capturedSeries, j, opt.ttItems, false); + } + } else { + if (this.tooltipUtil.isXoverlap(j)) { + this.create(e, this, 0, j, opt.ttItems); + } + } + } + }, { + key: "deactivateHoverFilter", + value: function deactivateHoverFilter() { + var w = this.w; + var graphics = new Graphics(this.ctx); + var allPaths = w.globals.dom.Paper.select(".apexcharts-bar-area"); + + for (var b = 0; b < allPaths.length; b++) { + graphics.pathMouseLeave(allPaths[b]); + } + } + }, { + key: "handleMouseOut", + value: function handleMouseOut(opt) { + var w = this.w; + var xcrosshairs = this.getElXCrosshairs(); + opt.tooltipEl.classList.remove('apexcharts-active'); + this.deactivateHoverFilter(); + + if (w.config.chart.type !== 'bubble') { + this.marker.resetPointsSize(); + } + + if (xcrosshairs !== null) { + xcrosshairs.classList.remove('apexcharts-active'); + } + + if (this.ycrosshairs !== null) { + this.ycrosshairs.classList.remove('apexcharts-active'); + } + + if (this.isXAxisTooltipEnabled) { + this.xaxisTooltip.classList.remove('apexcharts-active'); + } + + if (this.yaxisTooltips.length) { + if (this.yaxisTTEls === null) { + this.yaxisTTEls = w.globals.dom.baseEl.querySelectorAll('.apexcharts-yaxistooltip'); + } + + for (var i = 0; i < this.yaxisTTEls.length; i++) { + this.yaxisTTEls[i].classList.remove('apexcharts-active'); + } + } + + if (w.config.legend.tooltipHoverFormatter) { + this.legendLabels.forEach(function (l) { + var defaultText = l.getAttribute('data:default-text'); + l.innerHTML = decodeURIComponent(defaultText); + }); + } + } + }, { + key: "markerClick", + value: function markerClick(e, seriesIndex, dataPointIndex) { + var w = this.w; + + if (typeof w.config.chart.events.markerClick === 'function') { + w.config.chart.events.markerClick(e, this.ctx, { + seriesIndex: seriesIndex, + dataPointIndex: dataPointIndex, + w: w + }); + } + + this.ctx.events.fireEvent('markerClick', [e, this.ctx, { + seriesIndex: seriesIndex, + dataPointIndex: dataPointIndex, + w: w + }]); + } + }, { + key: "create", + value: function create(e, context, capturedSeries, j, ttItems) { + var shared = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null; + var w = this.w; + var ttCtx = context; + + if (e.type === 'mouseup') { + this.markerClick(e, capturedSeries, j); + } + + if (shared === null) shared = this.tConfig.shared; + var hasMarkers = this.tooltipUtil.hasMarkers(); + var bars = this.tooltipUtil.getElBars(); + + if (w.config.legend.tooltipHoverFormatter) { + var legendFormatter = w.config.legend.tooltipHoverFormatter; + var els = Array.from(this.legendLabels); // reset all legend values first + + els.forEach(function (l) { + var legendName = l.getAttribute('data:default-text'); + l.innerHTML = decodeURIComponent(legendName); + }); // for irregular time series + + for (var i = 0; i < els.length; i++) { + var l = els[i]; + var lsIndex = parseInt(l.getAttribute('i'), 10); + var legendName = decodeURIComponent(l.getAttribute('data:default-text')); + var text = legendFormatter(legendName, { + seriesIndex: shared ? lsIndex : capturedSeries, + dataPointIndex: j, + w: w + }); + + if (!shared) { + l.innerHTML = lsIndex === capturedSeries ? text : legendName; + + if (capturedSeries === lsIndex) { + break; + } + } else { + l.innerHTML = w.globals.collapsedSeriesIndices.indexOf(lsIndex) < 0 ? text : legendName; + } + } + } + + if (shared) { + ttCtx.tooltipLabels.drawSeriesTexts({ + ttItems: ttItems, + i: capturedSeries, + j: j, + shared: this.showOnIntersect ? false : this.tConfig.shared + }); + + if (hasMarkers) { + if (w.globals.markers.largestSize > 0) { + ttCtx.marker.enlargePoints(j); + } else { + ttCtx.tooltipPosition.moveDynamicPointsOnHover(j); + } + } + + if (this.tooltipUtil.hasBars()) { + this.barSeriesHeight = this.tooltipUtil.getBarsHeight(bars); + + if (this.barSeriesHeight > 0) { + // hover state, activate snap filter + var graphics = new Graphics(this.ctx); + var paths = w.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(j, "']")); // de-activate first + + this.deactivateHoverFilter(); + this.tooltipPosition.moveStickyTooltipOverBars(j); + + for (var b = 0; b < paths.length; b++) { + graphics.pathMouseEnter(paths[b]); + } + } + } + } else { + ttCtx.tooltipLabels.drawSeriesTexts({ + shared: false, + ttItems: ttItems, + i: capturedSeries, + j: j + }); + + if (this.tooltipUtil.hasBars()) { + ttCtx.tooltipPosition.moveStickyTooltipOverBars(j); + } + + if (hasMarkers) { + ttCtx.tooltipPosition.moveMarkers(capturedSeries, j); + } + } + } + }]); + + return Tooltip; + }(); + + /** + * ApexCharts BarStacked Class responsible for drawing both Stacked Columns and Bars. + * + * @module BarStacked + * The whole calculation for stacked bar/column is different from normal bar/column, + * hence it makes sense to derive a new class for it extending most of the props of Parent Bar + **/ + + var BarStacked = /*#__PURE__*/function (_Bar) { + _inherits(BarStacked, _Bar); + + var _super = _createSuper(BarStacked); + + function BarStacked() { + _classCallCheck(this, BarStacked); + + return _super.apply(this, arguments); + } + + _createClass(BarStacked, [{ + key: "draw", + value: function draw(series, seriesIndex) { + var _this = this; + + var w = this.w; + this.graphics = new Graphics(this.ctx); + this.bar = new Bar(this.ctx, this.xyRatios); + var coreUtils = new CoreUtils(this.ctx, w); + series = coreUtils.getLogSeries(series); + this.yRatio = coreUtils.getLogYRatios(this.yRatio); + this.barHelpers.initVariables(series); + + if (w.config.chart.stackType === '100%') { + series = w.globals.seriesPercent.slice(); + } + + this.series = series; + this.totalItems = 0; + this.prevY = []; // y position on chart + + this.prevX = []; // x position on chart + + this.prevYF = []; // y position including shapes on chart + + this.prevXF = []; // x position including shapes on chart + + this.prevYVal = []; // y values (series[i][j]) in columns + + this.prevXVal = []; // x values (series[i][j]) in bars + + this.xArrj = []; // xj indicates x position on graph in bars + + this.xArrjF = []; // xjF indicates bar's x position + roundedShape's positions in bars + + this.xArrjVal = []; // x val means the actual series's y values in horizontal/bars + + this.yArrj = []; // yj indicates y position on graph in columns + + this.yArrjF = []; // yjF indicates bar's y position + roundedShape's positions in columns + + this.yArrjVal = []; // y val means the actual series's y values in columns + + for (var sl = 0; sl < series.length; sl++) { + if (series[sl].length > 0) { + this.totalItems += series[sl].length; + } + } + + var ret = this.graphics.group({ + class: 'apexcharts-bar-series apexcharts-plot-series' + }); + var x = 0; + var y = 0; + + var _loop = function _loop(i, bc) { + var xDivision = void 0; // xDivision is the GRIDWIDTH divided by number of datapoints (columns) + + var yDivision = void 0; // yDivision is the GRIDHEIGHT divided by number of datapoints (bars) + + var zeroH = void 0; // zeroH is the baseline where 0 meets y axis + + var zeroW = void 0; // zeroW is the baseline where 0 meets x axis + + var xArrValues = []; + var yArrValues = []; + var realIndex = w.globals.comboCharts ? seriesIndex[i] : i; + + if (_this.yRatio.length > 1) { + _this.yaxisIndex = realIndex; + } + + _this.isReversed = w.config.yaxis[_this.yaxisIndex] && w.config.yaxis[_this.yaxisIndex].reversed; // el to which series will be drawn + + var elSeries = _this.graphics.group({ + class: "apexcharts-series", + seriesName: Utils$1.escapeString(w.globals.seriesNames[realIndex]), + rel: i + 1, + 'data:realIndex': realIndex + }); + + _this.ctx.series.addCollapsedClassToSeries(elSeries, realIndex); // eldatalabels + + + var elDataLabelsWrap = _this.graphics.group({ + class: 'apexcharts-datalabels', + 'data:realIndex': realIndex + }); + + var barHeight = 0; + var barWidth = 0; + + var initPositions = _this.initialPositions(x, y, xDivision, yDivision, zeroH, zeroW); + + y = initPositions.y; + barHeight = initPositions.barHeight; + yDivision = initPositions.yDivision; + zeroW = initPositions.zeroW; + x = initPositions.x; + barWidth = initPositions.barWidth; + xDivision = initPositions.xDivision; + zeroH = initPositions.zeroH; + _this.yArrj = []; + _this.yArrjF = []; + _this.yArrjVal = []; + _this.xArrj = []; + _this.xArrjF = []; + _this.xArrjVal = []; // if (!this.horizontal) { + // this.xArrj.push(x + barWidth / 2) + // } + // fix issue #1215; + // where all stack bar disappear after collapsing the first series + // sol: if only 1 arr in this.prevY(this.prevY.length === 1) and all are NaN + + if (_this.prevY.length === 1 && _this.prevY[0].every(function (val) { + return isNaN(val); + })) { + // make this.prevY[0] all zeroH + _this.prevY[0] = _this.prevY[0].map(function (val) { + return zeroH; + }); // make this.prevYF[0] all 0 + + _this.prevYF[0] = _this.prevYF[0].map(function (val) { + return 0; + }); + } + + for (var j = 0; j < w.globals.dataPoints; j++) { + var strokeWidth = _this.barHelpers.getStrokeWidth(i, j, realIndex); + + var commonPathOpts = { + indexes: { + i: i, + j: j, + realIndex: realIndex, + bc: bc + }, + strokeWidth: strokeWidth, + x: x, + y: y, + elSeries: elSeries + }; + var paths = null; + + if (_this.isHorizontal) { + paths = _this.drawStackedBarPaths(_objectSpread2(_objectSpread2({}, commonPathOpts), {}, { + zeroW: zeroW, + barHeight: barHeight, + yDivision: yDivision + })); + barWidth = _this.series[i][j] / _this.invertedYRatio; + } else { + paths = _this.drawStackedColumnPaths(_objectSpread2(_objectSpread2({}, commonPathOpts), {}, { + xDivision: xDivision, + barWidth: barWidth, + zeroH: zeroH + })); + barHeight = _this.series[i][j] / _this.yRatio[_this.yaxisIndex]; + } + + y = paths.y; + x = paths.x; + xArrValues.push(x); + yArrValues.push(y); + + var pathFill = _this.barHelpers.getPathFillColor(series, i, j, realIndex); + + elSeries = _this.renderSeries({ + realIndex: realIndex, + pathFill: pathFill, + j: j, + i: i, + pathFrom: paths.pathFrom, + pathTo: paths.pathTo, + strokeWidth: strokeWidth, + elSeries: elSeries, + x: x, + y: y, + series: series, + barHeight: barHeight, + barWidth: barWidth, + elDataLabelsWrap: elDataLabelsWrap, + type: 'bar', + visibleSeries: 0 + }); + } // push all x val arrays into main xArr + + + w.globals.seriesXvalues[realIndex] = xArrValues; + w.globals.seriesYvalues[realIndex] = yArrValues; // push all current y values array to main PrevY Array + + _this.prevY.push(_this.yArrj); + + _this.prevYF.push(_this.yArrjF); + + _this.prevYVal.push(_this.yArrjVal); + + _this.prevX.push(_this.xArrj); + + _this.prevXF.push(_this.xArrjF); + + _this.prevXVal.push(_this.xArrjVal); + + ret.add(elSeries); + }; + + for (var i = 0, bc = 0; i < series.length; i++, bc++) { + _loop(i, bc); + } + + return ret; + } + }, { + key: "initialPositions", + value: function initialPositions(x, y, xDivision, yDivision, zeroH, zeroW) { + var w = this.w; + var barHeight, barWidth; + + if (this.isHorizontal) { + // height divided into equal parts + yDivision = w.globals.gridHeight / w.globals.dataPoints; + barHeight = yDivision; + barHeight = barHeight * parseInt(w.config.plotOptions.bar.barHeight, 10) / 100; + zeroW = this.baseLineInvertedY + w.globals.padHorizontal + (this.isReversed ? w.globals.gridWidth : 0) - (this.isReversed ? this.baseLineInvertedY * 2 : 0); // initial y position is half of barHeight * half of number of Bars + + y = (yDivision - barHeight) / 2; + } else { + // width divided into equal parts + xDivision = w.globals.gridWidth / w.globals.dataPoints; + barWidth = xDivision; + + if (w.globals.isXNumeric && w.globals.dataPoints > 1) { + // the check (w.globals.dataPoints > 1) fixes apexcharts.js #1617 + xDivision = w.globals.minXDiff / this.xRatio; + barWidth = xDivision * parseInt(this.barOptions.columnWidth, 10) / 100; + } else { + barWidth = barWidth * parseInt(w.config.plotOptions.bar.columnWidth, 10) / 100; + } + + zeroH = this.baseLineY[this.yaxisIndex] + (this.isReversed ? w.globals.gridHeight : 0) - (this.isReversed ? this.baseLineY[this.yaxisIndex] * 2 : 0); // initial x position is one third of barWidth + + x = w.globals.padHorizontal + (xDivision - barWidth) / 2; + } + + return { + x: x, + y: y, + yDivision: yDivision, + xDivision: xDivision, + barHeight: barHeight, + barWidth: barWidth, + zeroH: zeroH, + zeroW: zeroW + }; + } + }, { + key: "drawStackedBarPaths", + value: function drawStackedBarPaths(_ref) { + var indexes = _ref.indexes, + barHeight = _ref.barHeight, + strokeWidth = _ref.strokeWidth, + zeroW = _ref.zeroW, + x = _ref.x, + y = _ref.y, + yDivision = _ref.yDivision, + elSeries = _ref.elSeries; + var w = this.w; + var barYPosition = y; + var barXPosition; + var i = indexes.i; + var j = indexes.j; + var prevBarW = 0; + + for (var k = 0; k < this.prevXF.length; k++) { + prevBarW = prevBarW + this.prevXF[k][j]; + } + + if (i > 0) { + var bXP = zeroW; + + if (this.prevXVal[i - 1][j] < 0) { + bXP = this.series[i][j] >= 0 ? this.prevX[i - 1][j] + prevBarW - (this.isReversed ? prevBarW : 0) * 2 : this.prevX[i - 1][j]; + } else if (this.prevXVal[i - 1][j] >= 0) { + bXP = this.series[i][j] >= 0 ? this.prevX[i - 1][j] : this.prevX[i - 1][j] - prevBarW + (this.isReversed ? prevBarW : 0) * 2; + } + + barXPosition = bXP; + } else { + // the first series will not have prevX values + barXPosition = zeroW; + } + + if (this.series[i][j] === null) { + x = barXPosition; + } else { + x = barXPosition + this.series[i][j] / this.invertedYRatio - (this.isReversed ? this.series[i][j] / this.invertedYRatio : 0) * 2; + } + + var paths = this.barHelpers.getBarpaths({ + barYPosition: barYPosition, + barHeight: barHeight, + x1: barXPosition, + x2: x, + strokeWidth: strokeWidth, + series: this.series, + realIndex: indexes.realIndex, + i: i, + j: j, + w: w + }); + this.barHelpers.barBackground({ + j: j, + i: i, + y1: barYPosition, + y2: barHeight, + elSeries: elSeries + }); + y = y + yDivision; + return { + pathTo: paths.pathTo, + pathFrom: paths.pathFrom, + x: x, + y: y + }; + } + }, { + key: "drawStackedColumnPaths", + value: function drawStackedColumnPaths(_ref2) { + var indexes = _ref2.indexes, + x = _ref2.x, + y = _ref2.y, + xDivision = _ref2.xDivision, + barWidth = _ref2.barWidth, + zeroH = _ref2.zeroH; + _ref2.strokeWidth; + var elSeries = _ref2.elSeries; + var w = this.w; + var i = indexes.i; + var j = indexes.j; + var bc = indexes.bc; + + if (w.globals.isXNumeric) { + var seriesVal = w.globals.seriesX[i][j]; + if (!seriesVal) seriesVal = 0; + x = (seriesVal - w.globals.minX) / this.xRatio - barWidth / 2; + } + + var barXPosition = x; + var barYPosition; + var prevBarH = 0; + + for (var k = 0; k < this.prevYF.length; k++) { + // fix issue #1215 + // in case where this.prevYF[k][j] is NaN, use 0 instead + prevBarH = prevBarH + (!isNaN(this.prevYF[k][j]) ? this.prevYF[k][j] : 0); + } + + if (i > 0 && !w.globals.isXNumeric || i > 0 && w.globals.isXNumeric && w.globals.seriesX[i - 1][j] === w.globals.seriesX[i][j]) { + var bYP; + var prevYValue; + var p = Math.min(this.yRatio.length + 1, i + 1); + + if (this.prevY[i - 1] !== undefined) { + for (var ii = 1; ii < p; ii++) { + if (!isNaN(this.prevY[i - ii][j])) { + // find the previous available value to give prevYValue + prevYValue = this.prevY[i - ii][j]; // if found it, break the loop + + break; + } + } + } + + for (var _ii = 1; _ii < p; _ii++) { + // find the previous available value(non-NaN) to give bYP + if (this.prevYVal[i - _ii][j] < 0) { + bYP = this.series[i][j] >= 0 ? prevYValue - prevBarH + (this.isReversed ? prevBarH : 0) * 2 : prevYValue; // found it? break the loop + + break; + } else if (this.prevYVal[i - _ii][j] >= 0) { + bYP = this.series[i][j] >= 0 ? prevYValue : prevYValue + prevBarH - (this.isReversed ? prevBarH : 0) * 2; // found it? break the loop + + break; + } + } + + if (typeof bYP === 'undefined') bYP = w.globals.gridHeight; // if this.prevYF[0] is all 0 resulted from line #486 + // AND every arr starting from the second only contains NaN + + if (this.prevYF[0].every(function (val) { + return val === 0; + }) && this.prevYF.slice(1, i).every(function (arr) { + return arr.every(function (val) { + return isNaN(val); + }); + })) { + // Use the same calc way as line #485 + barYPosition = w.globals.gridHeight - zeroH; + } else { + // Nothing special + barYPosition = bYP; + } + } else { + // the first series will not have prevY values, also if the prev index's series X doesn't matches the current index's series X, then start from zero + barYPosition = w.globals.gridHeight - zeroH; + } + + y = barYPosition - this.series[i][j] / this.yRatio[this.yaxisIndex] + (this.isReversed ? this.series[i][j] / this.yRatio[this.yaxisIndex] : 0) * 2; + var paths = this.barHelpers.getColumnPaths({ + barXPosition: barXPosition, + barWidth: barWidth, + y1: barYPosition, + y2: y, + yRatio: this.yRatio[this.yaxisIndex], + strokeWidth: this.strokeWidth, + series: this.series, + realIndex: indexes.realIndex, + i: i, + j: j, + w: w + }); + this.barHelpers.barBackground({ + bc: bc, + j: j, + i: i, + x1: barXPosition, + x2: barWidth, + elSeries: elSeries + }); + x = x + xDivision; + return { + pathTo: paths.pathTo, + pathFrom: paths.pathFrom, + x: w.globals.isXNumeric ? x - xDivision : x, + y: y + }; + } + }]); + + return BarStacked; + }(Bar); + + /** + * ApexCharts BoxCandleStick Class responsible for drawing both Stacked Columns and Bars. + * + * @module BoxCandleStick + **/ + + var BoxCandleStick = /*#__PURE__*/function (_Bar) { + _inherits(BoxCandleStick, _Bar); + + var _super = _createSuper(BoxCandleStick); + + function BoxCandleStick() { + _classCallCheck(this, BoxCandleStick); + + return _super.apply(this, arguments); + } + + _createClass(BoxCandleStick, [{ + key: "draw", + value: function draw(series, seriesIndex) { + var _this = this; + + var w = this.w; + var graphics = new Graphics(this.ctx); + var fill = new Fill(this.ctx); + this.candlestickOptions = this.w.config.plotOptions.candlestick; + this.boxOptions = this.w.config.plotOptions.boxPlot; + this.isHorizontal = w.config.plotOptions.bar.horizontal; + var coreUtils = new CoreUtils(this.ctx, w); + series = coreUtils.getLogSeries(series); + this.series = series; + this.yRatio = coreUtils.getLogYRatios(this.yRatio); + this.barHelpers.initVariables(series); + var ret = graphics.group({ + class: "apexcharts-".concat(w.config.chart.type, "-series apexcharts-plot-series") + }); + + var _loop = function _loop(i) { + _this.isBoxPlot = w.config.chart.type === 'boxPlot' || w.config.series[i].type === 'boxPlot'; + var x = void 0, + y = void 0, + xDivision = void 0, + // xDivision is the GRIDWIDTH divided by number of datapoints (columns) + yDivision = void 0, + // yDivision is the GRIDHEIGHT divided by number of datapoints (bars) + zeroH = void 0, + // zeroH is the baseline where 0 meets y axis + zeroW = void 0; // zeroW is the baseline where 0 meets x axis + + var yArrj = []; // hold y values of current iterating series + + var xArrj = []; // hold x values of current iterating series + + var realIndex = w.globals.comboCharts ? seriesIndex[i] : i; // el to which series will be drawn + + var elSeries = graphics.group({ + class: "apexcharts-series", + seriesName: Utils$1.escapeString(w.globals.seriesNames[realIndex]), + rel: i + 1, + 'data:realIndex': realIndex + }); + + _this.ctx.series.addCollapsedClassToSeries(elSeries, realIndex); + + if (series[i].length > 0) { + _this.visibleI = _this.visibleI + 1; + } + + var barHeight = 0; + var barWidth = 0; + + if (_this.yRatio.length > 1) { + _this.yaxisIndex = realIndex; + } + + var initPositions = _this.barHelpers.initialPositions(); + + y = initPositions.y; + barHeight = initPositions.barHeight; + yDivision = initPositions.yDivision; + zeroW = initPositions.zeroW; + x = initPositions.x; + barWidth = initPositions.barWidth; + xDivision = initPositions.xDivision; + zeroH = initPositions.zeroH; + xArrj.push(x + barWidth / 2); // eldatalabels + + var elDataLabelsWrap = graphics.group({ + class: 'apexcharts-datalabels', + 'data:realIndex': realIndex + }); + + var _loop2 = function _loop2(j) { + var strokeWidth = _this.barHelpers.getStrokeWidth(i, j, realIndex); + + var paths = null; + var pathsParams = { + indexes: { + i: i, + j: j, + realIndex: realIndex + }, + x: x, + y: y, + strokeWidth: strokeWidth, + elSeries: elSeries + }; + + if (_this.isHorizontal) { + paths = _this.drawHorizontalBoxPaths(_objectSpread2(_objectSpread2({}, pathsParams), {}, { + yDivision: yDivision, + barHeight: barHeight, + zeroW: zeroW + })); + } else { + paths = _this.drawVerticalBoxPaths(_objectSpread2(_objectSpread2({}, pathsParams), {}, { + xDivision: xDivision, + barWidth: barWidth, + zeroH: zeroH + })); + } + + y = paths.y; + x = paths.x; // push current X + + if (j > 0) { + xArrj.push(x + barWidth / 2); + } + + yArrj.push(y); + paths.pathTo.forEach(function (pathTo, pi) { + var lineFill = !_this.isBoxPlot && _this.candlestickOptions.wick.useFillColor ? paths.color[pi] : w.globals.stroke.colors[i]; + var pathFill = fill.fillPath({ + seriesNumber: realIndex, + dataPointIndex: j, + color: paths.color[pi], + value: series[i][j] + }); + + _this.renderSeries({ + realIndex: realIndex, + pathFill: pathFill, + lineFill: lineFill, + j: j, + i: i, + pathFrom: paths.pathFrom, + pathTo: pathTo, + strokeWidth: strokeWidth, + elSeries: elSeries, + x: x, + y: y, + series: series, + barHeight: barHeight, + barWidth: barWidth, + elDataLabelsWrap: elDataLabelsWrap, + visibleSeries: _this.visibleI, + type: w.config.chart.type + }); + }); + }; + + for (var j = 0; j < w.globals.dataPoints; j++) { + _loop2(j); + } // push all x val arrays into main xArr + + + w.globals.seriesXvalues[realIndex] = xArrj; + w.globals.seriesYvalues[realIndex] = yArrj; + ret.add(elSeries); + }; + + for (var i = 0; i < series.length; i++) { + _loop(i); + } + + return ret; + } + }, { + key: "drawVerticalBoxPaths", + value: function drawVerticalBoxPaths(_ref) { + var indexes = _ref.indexes, + x = _ref.x; + _ref.y; + var xDivision = _ref.xDivision, + barWidth = _ref.barWidth, + zeroH = _ref.zeroH, + strokeWidth = _ref.strokeWidth; + var w = this.w; + var graphics = new Graphics(this.ctx); + var i = indexes.i; + var j = indexes.j; + var isPositive = true; + var colorPos = w.config.plotOptions.candlestick.colors.upward; + var colorNeg = w.config.plotOptions.candlestick.colors.downward; + var color = ''; + + if (this.isBoxPlot) { + color = [this.boxOptions.colors.lower, this.boxOptions.colors.upper]; + } + + var yRatio = this.yRatio[this.yaxisIndex]; + var realIndex = indexes.realIndex; + var ohlc = this.getOHLCValue(realIndex, j); + var l1 = zeroH; + var l2 = zeroH; + + if (ohlc.o > ohlc.c) { + isPositive = false; + } + + var y1 = Math.min(ohlc.o, ohlc.c); + var y2 = Math.max(ohlc.o, ohlc.c); + var m = ohlc.m; + + if (w.globals.isXNumeric) { + x = (w.globals.seriesX[realIndex][j] - w.globals.minX) / this.xRatio - barWidth / 2; + } + + var barXPosition = x + barWidth * this.visibleI; + + if (typeof this.series[i][j] === 'undefined' || this.series[i][j] === null) { + y1 = zeroH; + y2 = zeroH; + } else { + y1 = zeroH - y1 / yRatio; + y2 = zeroH - y2 / yRatio; + l1 = zeroH - ohlc.h / yRatio; + l2 = zeroH - ohlc.l / yRatio; + m = zeroH - ohlc.m / yRatio; + } + + var pathTo = graphics.move(barXPosition, zeroH); + var pathFrom = graphics.move(barXPosition + barWidth / 2, y1); + + if (w.globals.previousPaths.length > 0) { + pathFrom = this.getPreviousPath(realIndex, j, true); + } + + if (this.isBoxPlot) { + pathTo = [graphics.move(barXPosition, y1) + graphics.line(barXPosition + barWidth / 2, y1) + graphics.line(barXPosition + barWidth / 2, l1) + graphics.line(barXPosition + barWidth / 4, l1) + graphics.line(barXPosition + barWidth - barWidth / 4, l1) + graphics.line(barXPosition + barWidth / 2, l1) + graphics.line(barXPosition + barWidth / 2, y1) + graphics.line(barXPosition + barWidth, y1) + graphics.line(barXPosition + barWidth, m) + graphics.line(barXPosition, m) + graphics.line(barXPosition, y1 + strokeWidth / 2), graphics.move(barXPosition, m) + graphics.line(barXPosition + barWidth, m) + graphics.line(barXPosition + barWidth, y2) + graphics.line(barXPosition + barWidth / 2, y2) + graphics.line(barXPosition + barWidth / 2, l2) + graphics.line(barXPosition + barWidth - barWidth / 4, l2) + graphics.line(barXPosition + barWidth / 4, l2) + graphics.line(barXPosition + barWidth / 2, l2) + graphics.line(barXPosition + barWidth / 2, y2) + graphics.line(barXPosition, y2) + graphics.line(barXPosition, m) + 'z']; + } else { + // candlestick + pathTo = [graphics.move(barXPosition, y2) + graphics.line(barXPosition + barWidth / 2, y2) + graphics.line(barXPosition + barWidth / 2, l1) + graphics.line(barXPosition + barWidth / 2, y2) + graphics.line(barXPosition + barWidth, y2) + graphics.line(barXPosition + barWidth, y1) + graphics.line(barXPosition + barWidth / 2, y1) + graphics.line(barXPosition + barWidth / 2, l2) + graphics.line(barXPosition + barWidth / 2, y1) + graphics.line(barXPosition, y1) + graphics.line(barXPosition, y2 - strokeWidth / 2)]; + } + + pathFrom = pathFrom + graphics.move(barXPosition, y1); + + if (!w.globals.isXNumeric) { + x = x + xDivision; + } + + return { + pathTo: pathTo, + pathFrom: pathFrom, + x: x, + y: y2, + barXPosition: barXPosition, + color: this.isBoxPlot ? color : isPositive ? [colorPos] : [colorNeg] + }; + } + }, { + key: "drawHorizontalBoxPaths", + value: function drawHorizontalBoxPaths(_ref2) { + var indexes = _ref2.indexes; + _ref2.x; + var y = _ref2.y, + yDivision = _ref2.yDivision, + barHeight = _ref2.barHeight, + zeroW = _ref2.zeroW, + strokeWidth = _ref2.strokeWidth; + var w = this.w; + var graphics = new Graphics(this.ctx); + var i = indexes.i; + var j = indexes.j; + var color = this.boxOptions.colors.lower; + + if (this.isBoxPlot) { + color = [this.boxOptions.colors.lower, this.boxOptions.colors.upper]; + } + + var yRatio = this.invertedYRatio; + var realIndex = indexes.realIndex; + var ohlc = this.getOHLCValue(realIndex, j); + var l1 = zeroW; + var l2 = zeroW; + var x1 = Math.min(ohlc.o, ohlc.c); + var x2 = Math.max(ohlc.o, ohlc.c); + var m = ohlc.m; + + if (w.globals.isXNumeric) { + y = (w.globals.seriesX[realIndex][j] - w.globals.minX) / this.invertedXRatio - barHeight / 2; + } + + var barYPosition = y + barHeight * this.visibleI; + + if (typeof this.series[i][j] === 'undefined' || this.series[i][j] === null) { + x1 = zeroW; + x2 = zeroW; + } else { + x1 = zeroW + x1 / yRatio; + x2 = zeroW + x2 / yRatio; + l1 = zeroW + ohlc.h / yRatio; + l2 = zeroW + ohlc.l / yRatio; + m = zeroW + ohlc.m / yRatio; + } + + var pathTo = graphics.move(zeroW, barYPosition); + var pathFrom = graphics.move(x1, barYPosition + barHeight / 2); + + if (w.globals.previousPaths.length > 0) { + pathFrom = this.getPreviousPath(realIndex, j, true); + } + + pathTo = [graphics.move(x1, barYPosition) + graphics.line(x1, barYPosition + barHeight / 2) + graphics.line(l1, barYPosition + barHeight / 2) + graphics.line(l1, barYPosition + barHeight / 2 - barHeight / 4) + graphics.line(l1, barYPosition + barHeight / 2 + barHeight / 4) + graphics.line(l1, barYPosition + barHeight / 2) + graphics.line(x1, barYPosition + barHeight / 2) + graphics.line(x1, barYPosition + barHeight) + graphics.line(m, barYPosition + barHeight) + graphics.line(m, barYPosition) + graphics.line(x1 + strokeWidth / 2, barYPosition), graphics.move(m, barYPosition) + graphics.line(m, barYPosition + barHeight) + graphics.line(x2, barYPosition + barHeight) + graphics.line(x2, barYPosition + barHeight / 2) + graphics.line(l2, barYPosition + barHeight / 2) + graphics.line(l2, barYPosition + barHeight - barHeight / 4) + graphics.line(l2, barYPosition + barHeight / 4) + graphics.line(l2, barYPosition + barHeight / 2) + graphics.line(x2, barYPosition + barHeight / 2) + graphics.line(x2, barYPosition) + graphics.line(m, barYPosition) + 'z']; + pathFrom = pathFrom + graphics.move(x1, barYPosition); + + if (!w.globals.isXNumeric) { + y = y + yDivision; + } + + return { + pathTo: pathTo, + pathFrom: pathFrom, + x: x2, + y: y, + barYPosition: barYPosition, + color: color + }; + } + }, { + key: "getOHLCValue", + value: function getOHLCValue(i, j) { + var w = this.w; + return { + o: this.isBoxPlot ? w.globals.seriesCandleH[i][j] : w.globals.seriesCandleO[i][j], + h: this.isBoxPlot ? w.globals.seriesCandleO[i][j] : w.globals.seriesCandleH[i][j], + m: w.globals.seriesCandleM[i][j], + l: this.isBoxPlot ? w.globals.seriesCandleC[i][j] : w.globals.seriesCandleL[i][j], + c: this.isBoxPlot ? w.globals.seriesCandleL[i][j] : w.globals.seriesCandleC[i][j] + }; + } + }]); + + return BoxCandleStick; + }(Bar); + + var TreemapHelpers = /*#__PURE__*/function () { + function TreemapHelpers(ctx) { + _classCallCheck(this, TreemapHelpers); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(TreemapHelpers, [{ + key: "checkColorRange", + value: function checkColorRange() { + var w = this.w; + var negRange = false; + var chartOpts = w.config.plotOptions[w.config.chart.type]; + + if (chartOpts.colorScale.ranges.length > 0) { + chartOpts.colorScale.ranges.map(function (range, index) { + if (range.from <= 0) { + negRange = true; + } + }); + } + + return negRange; + } + }, { + key: "getShadeColor", + value: function getShadeColor(chartType, i, j, negRange) { + var w = this.w; + var colorShadePercent = 1; + var shadeIntensity = w.config.plotOptions[chartType].shadeIntensity; + var colorProps = this.determineColor(chartType, i, j); + + if (w.globals.hasNegs || negRange) { + if (w.config.plotOptions[chartType].reverseNegativeShade) { + if (colorProps.percent < 0) { + colorShadePercent = colorProps.percent / 100 * (shadeIntensity * 1.25); + } else { + colorShadePercent = (1 - colorProps.percent / 100) * (shadeIntensity * 1.25); + } + } else { + if (colorProps.percent <= 0) { + colorShadePercent = 1 - (1 + colorProps.percent / 100) * shadeIntensity; + } else { + colorShadePercent = (1 - colorProps.percent / 100) * shadeIntensity; + } + } + } else { + colorShadePercent = 1 - colorProps.percent / 100; + + if (chartType === 'treemap') { + colorShadePercent = (1 - colorProps.percent / 100) * (shadeIntensity * 1.25); + } + } + + var color = colorProps.color; + var utils = new Utils$1(); + + if (w.config.plotOptions[chartType].enableShades) { + if (this.w.config.theme.mode === 'dark') { + color = Utils$1.hexToRgba(utils.shadeColor(colorShadePercent * -1, colorProps.color), w.config.fill.opacity); + } else { + color = Utils$1.hexToRgba(utils.shadeColor(colorShadePercent, colorProps.color), w.config.fill.opacity); + } + } + + return { + color: color, + colorProps: colorProps + }; + } + }, { + key: "determineColor", + value: function determineColor(chartType, i, j) { + var w = this.w; + var val = w.globals.series[i][j]; + var chartOpts = w.config.plotOptions[chartType]; + var seriesNumber = chartOpts.colorScale.inverse ? j : i; + + if (chartOpts.distributed && w.config.chart.type === 'treemap') { + seriesNumber = j; + } + + var color = w.globals.colors[seriesNumber]; + var foreColor = null; + var min = Math.min.apply(Math, _toConsumableArray(w.globals.series[i])); + var max = Math.max.apply(Math, _toConsumableArray(w.globals.series[i])); + + if (!chartOpts.distributed && chartType === 'heatmap') { + min = w.globals.minY; + max = w.globals.maxY; + } + + if (typeof chartOpts.colorScale.min !== 'undefined') { + min = chartOpts.colorScale.min < w.globals.minY ? chartOpts.colorScale.min : w.globals.minY; + max = chartOpts.colorScale.max > w.globals.maxY ? chartOpts.colorScale.max : w.globals.maxY; + } + + var total = Math.abs(max) + Math.abs(min); + var percent = 100 * val / (total === 0 ? total - 0.000001 : total); + + if (chartOpts.colorScale.ranges.length > 0) { + var colorRange = chartOpts.colorScale.ranges; + colorRange.map(function (range, index) { + if (val >= range.from && val <= range.to) { + color = range.color; + foreColor = range.foreColor ? range.foreColor : null; + min = range.from; + max = range.to; + var rTotal = Math.abs(max) + Math.abs(min); + percent = 100 * val / (rTotal === 0 ? rTotal - 0.000001 : rTotal); + } + }); + } + + return { + color: color, + foreColor: foreColor, + percent: percent + }; + } + }, { + key: "calculateDataLabels", + value: function calculateDataLabels(_ref) { + var text = _ref.text, + x = _ref.x, + y = _ref.y, + i = _ref.i, + j = _ref.j, + colorProps = _ref.colorProps, + fontSize = _ref.fontSize; + var w = this.w; + var dataLabelsConfig = w.config.dataLabels; + var graphics = new Graphics(this.ctx); + var dataLabels = new DataLabels(this.ctx); + var elDataLabelsWrap = null; + + if (dataLabelsConfig.enabled) { + elDataLabelsWrap = graphics.group({ + class: 'apexcharts-data-labels' + }); + var offX = dataLabelsConfig.offsetX; + var offY = dataLabelsConfig.offsetY; + var dataLabelsX = x + offX; + var dataLabelsY = y + parseFloat(dataLabelsConfig.style.fontSize) / 3 + offY; + dataLabels.plotDataLabelsText({ + x: dataLabelsX, + y: dataLabelsY, + text: text, + i: i, + j: j, + color: colorProps.foreColor, + parent: elDataLabelsWrap, + fontSize: fontSize, + dataLabelsConfig: dataLabelsConfig + }); + } + + return elDataLabelsWrap; + } + }, { + key: "addListeners", + value: function addListeners(elRect) { + var graphics = new Graphics(this.ctx); + elRect.node.addEventListener('mouseenter', graphics.pathMouseEnter.bind(this, elRect)); + elRect.node.addEventListener('mouseleave', graphics.pathMouseLeave.bind(this, elRect)); + elRect.node.addEventListener('mousedown', graphics.pathMouseDown.bind(this, elRect)); + } + }]); + + return TreemapHelpers; + }(); + + /** + * ApexCharts HeatMap Class. + * @module HeatMap + **/ + + var HeatMap = /*#__PURE__*/function () { + function HeatMap(ctx, xyRatios) { + _classCallCheck(this, HeatMap); + + this.ctx = ctx; + this.w = ctx.w; + this.xRatio = xyRatios.xRatio; + this.yRatio = xyRatios.yRatio; + this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation; + this.helpers = new TreemapHelpers(ctx); + this.rectRadius = this.w.config.plotOptions.heatmap.radius; + this.strokeWidth = this.w.config.stroke.show ? this.w.config.stroke.width : 0; + } + + _createClass(HeatMap, [{ + key: "draw", + value: function draw(series) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var ret = graphics.group({ + class: 'apexcharts-heatmap' + }); + ret.attr('clip-path', "url(#gridRectMask".concat(w.globals.cuid, ")")); // width divided into equal parts + + var xDivision = w.globals.gridWidth / w.globals.dataPoints; + var yDivision = w.globals.gridHeight / w.globals.series.length; + var y1 = 0; + var rev = false; + this.negRange = this.helpers.checkColorRange(); + var heatSeries = series.slice(); + + if (w.config.yaxis[0].reversed) { + rev = true; + heatSeries.reverse(); + } + + for (var i = rev ? 0 : heatSeries.length - 1; rev ? i < heatSeries.length : i >= 0; rev ? i++ : i--) { + // el to which series will be drawn + var elSeries = graphics.group({ + class: "apexcharts-series apexcharts-heatmap-series", + seriesName: Utils$1.escapeString(w.globals.seriesNames[i]), + rel: i + 1, + 'data:realIndex': i + }); + this.ctx.series.addCollapsedClassToSeries(elSeries, i); + + if (w.config.chart.dropShadow.enabled) { + var shadow = w.config.chart.dropShadow; + var filters = new Filters(this.ctx); + filters.dropShadow(elSeries, shadow, i); + } + + var x1 = 0; + var shadeIntensity = w.config.plotOptions.heatmap.shadeIntensity; + + for (var j = 0; j < heatSeries[i].length; j++) { + var heatColor = this.helpers.getShadeColor(w.config.chart.type, i, j, this.negRange); + var color = heatColor.color; + var heatColorProps = heatColor.colorProps; + + if (w.config.fill.type === 'image') { + var fill = new Fill(this.ctx); + color = fill.fillPath({ + seriesNumber: i, + dataPointIndex: j, + opacity: w.globals.hasNegs ? heatColorProps.percent < 0 ? 1 - (1 + heatColorProps.percent / 100) : shadeIntensity + heatColorProps.percent / 100 : heatColorProps.percent / 100, + patternID: Utils$1.randomId(), + width: w.config.fill.image.width ? w.config.fill.image.width : xDivision, + height: w.config.fill.image.height ? w.config.fill.image.height : yDivision + }); + } + + var radius = this.rectRadius; + var rect = graphics.drawRect(x1, y1, xDivision, yDivision, radius); + rect.attr({ + cx: x1, + cy: y1 + }); + rect.node.classList.add('apexcharts-heatmap-rect'); + elSeries.add(rect); + rect.attr({ + fill: color, + i: i, + index: i, + j: j, + val: heatSeries[i][j], + 'stroke-width': this.strokeWidth, + stroke: w.config.plotOptions.heatmap.useFillColorAsStroke ? color : w.globals.stroke.colors[0], + color: color + }); + this.helpers.addListeners(rect); + + if (w.config.chart.animations.enabled && !w.globals.dataChanged) { + var speed = 1; + + if (!w.globals.resized) { + speed = w.config.chart.animations.speed; + } + + this.animateHeatMap(rect, x1, y1, xDivision, yDivision, speed); + } + + if (w.globals.dataChanged) { + var _speed = 1; + + if (this.dynamicAnim.enabled && w.globals.shouldAnimate) { + _speed = this.dynamicAnim.speed; + var colorFrom = w.globals.previousPaths[i] && w.globals.previousPaths[i][j] && w.globals.previousPaths[i][j].color; + if (!colorFrom) colorFrom = 'rgba(255, 255, 255, 0)'; + this.animateHeatColor(rect, Utils$1.isColorHex(colorFrom) ? colorFrom : Utils$1.rgb2hex(colorFrom), Utils$1.isColorHex(color) ? color : Utils$1.rgb2hex(color), _speed); + } + } + + var formatter = w.config.dataLabels.formatter; + var formattedText = formatter(w.globals.series[i][j], { + value: w.globals.series[i][j], + seriesIndex: i, + dataPointIndex: j, + w: w + }); + var dataLabels = this.helpers.calculateDataLabels({ + text: formattedText, + x: x1 + xDivision / 2, + y: y1 + yDivision / 2, + i: i, + j: j, + colorProps: heatColorProps, + series: heatSeries + }); + + if (dataLabels !== null) { + elSeries.add(dataLabels); + } + + x1 = x1 + xDivision; + } + + y1 = y1 + yDivision; + ret.add(elSeries); + } // adjust yaxis labels for heatmap + + + var yAxisScale = w.globals.yAxisScale[0].result.slice(); + + if (w.config.yaxis[0].reversed) { + yAxisScale.unshift(''); + } else { + yAxisScale.push(''); + } + + w.globals.yAxisScale[0].result = yAxisScale; + var divisor = w.globals.gridHeight / w.globals.series.length; + w.config.yaxis[0].labels.offsetY = -(divisor / 2); + return ret; + } + }, { + key: "animateHeatMap", + value: function animateHeatMap(el, x, y, width, height, speed) { + var animations = new Animations(this.ctx); + animations.animateRect(el, { + x: x + width / 2, + y: y + height / 2, + width: 0, + height: 0 + }, { + x: x, + y: y, + width: width, + height: height + }, speed, function () { + animations.animationCompleted(el); + }); + } + }, { + key: "animateHeatColor", + value: function animateHeatColor(el, colorFrom, colorTo, speed) { + el.attr({ + fill: colorFrom + }).animate(speed).attr({ + fill: colorTo + }); + } + }]); + + return HeatMap; + }(); + + var CircularChartsHelpers = /*#__PURE__*/function () { + function CircularChartsHelpers(ctx) { + _classCallCheck(this, CircularChartsHelpers); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(CircularChartsHelpers, [{ + key: "drawYAxisTexts", + value: function drawYAxisTexts(x, y, i, text) { + var w = this.w; + var yaxisConfig = w.config.yaxis[0]; + var formatter = w.globals.yLabelFormatters[0]; + var graphics = new Graphics(this.ctx); + var yaxisLabel = graphics.drawText({ + x: x + yaxisConfig.labels.offsetX, + y: y + yaxisConfig.labels.offsetY, + text: formatter(text, i), + textAnchor: 'middle', + fontSize: yaxisConfig.labels.style.fontSize, + fontFamily: yaxisConfig.labels.style.fontFamily, + foreColor: Array.isArray(yaxisConfig.labels.style.colors) ? yaxisConfig.labels.style.colors[i] : yaxisConfig.labels.style.colors + }); + return yaxisLabel; + } + }]); + + return CircularChartsHelpers; + }(); + + /** + * ApexCharts Pie Class for drawing Pie / Donut Charts. + * @module Pie + **/ + + var Pie = /*#__PURE__*/function () { + function Pie(ctx) { + _classCallCheck(this, Pie); + + this.ctx = ctx; + this.w = ctx.w; + var w = this.w; + this.chartType = this.w.config.chart.type; + this.initialAnim = this.w.config.chart.animations.enabled; + this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled; + this.animBeginArr = [0]; + this.animDur = 0; + this.donutDataLabels = this.w.config.plotOptions.pie.donut.labels; + this.lineColorArr = w.globals.stroke.colors !== undefined ? w.globals.stroke.colors : w.globals.colors; + this.defaultSize = Math.min(w.globals.gridWidth, w.globals.gridHeight); + this.centerY = this.defaultSize / 2; + this.centerX = w.globals.gridWidth / 2; + + if (w.config.chart.type === 'radialBar') { + this.fullAngle = 360; + } else { + this.fullAngle = Math.abs(w.config.plotOptions.pie.endAngle - w.config.plotOptions.pie.startAngle); + } + + this.initialAngle = w.config.plotOptions.pie.startAngle % this.fullAngle; + w.globals.radialSize = this.defaultSize / 2.05 - w.config.stroke.width - (!w.config.chart.sparkline.enabled ? w.config.chart.dropShadow.blur : 0); + this.donutSize = w.globals.radialSize * parseInt(w.config.plotOptions.pie.donut.size, 10) / 100; + this.maxY = 0; + this.sliceLabels = []; + this.sliceSizes = []; + this.prevSectorAngleArr = []; // for dynamic animations + } + + _createClass(Pie, [{ + key: "draw", + value: function draw(series) { + var _this = this; + + var self = this; + var w = this.w; + var graphics = new Graphics(this.ctx); + this.ret = graphics.group({ + class: 'apexcharts-pie' + }); + if (w.globals.noData) return this.ret; + var total = 0; + + for (var k = 0; k < series.length; k++) { + // CALCULATE THE TOTAL + total += Utils$1.negToZero(series[k]); + } + + var sectorAngleArr = []; // el to which series will be drawn + + var elSeries = graphics.group(); // prevent division by zero error if there is no data + + if (total === 0) { + total = 0.00001; + } + + series.forEach(function (m) { + _this.maxY = Math.max(_this.maxY, m); + }); // override maxY if user provided in config + + if (w.config.yaxis[0].max) { + this.maxY = w.config.yaxis[0].max; + } + + if (w.config.grid.position === 'back' && this.chartType === 'polarArea') { + this.drawPolarElements(this.ret); + } + + for (var i = 0; i < series.length; i++) { + // CALCULATE THE ANGLES + var angle = this.fullAngle * Utils$1.negToZero(series[i]) / total; + sectorAngleArr.push(angle); + + if (this.chartType === 'polarArea') { + sectorAngleArr[i] = this.fullAngle / series.length; + this.sliceSizes.push(w.globals.radialSize * series[i] / this.maxY); + } else { + this.sliceSizes.push(w.globals.radialSize); + } + } + + if (w.globals.dataChanged) { + var prevTotal = 0; + + for (var _k = 0; _k < w.globals.previousPaths.length; _k++) { + // CALCULATE THE PREV TOTAL + prevTotal += Utils$1.negToZero(w.globals.previousPaths[_k]); + } + + var previousAngle; + + for (var _i = 0; _i < w.globals.previousPaths.length; _i++) { + // CALCULATE THE PREVIOUS ANGLES + previousAngle = this.fullAngle * Utils$1.negToZero(w.globals.previousPaths[_i]) / prevTotal; + this.prevSectorAngleArr.push(previousAngle); + } + } // on small chart size after few count of resizes browser window donutSize can be negative + + + if (this.donutSize < 0) { + this.donutSize = 0; + } + + var scaleSize = w.config.plotOptions.pie.customScale; + var halfW = w.globals.gridWidth / 2; + var halfH = w.globals.gridHeight / 2; + var translateX = halfW - w.globals.gridWidth / 2 * scaleSize; + var translateY = halfH - w.globals.gridHeight / 2 * scaleSize; + + if (this.chartType === 'donut') { + // draw the inner circle and add some text to it + var circle = graphics.drawCircle(this.donutSize); + circle.attr({ + cx: this.centerX, + cy: this.centerY, + fill: w.config.plotOptions.pie.donut.background ? w.config.plotOptions.pie.donut.background : 'transparent' + }); + elSeries.add(circle); + } + + var elG = self.drawArcs(sectorAngleArr, series); // add slice dataLabels at the end + + this.sliceLabels.forEach(function (s) { + elG.add(s); + }); + elSeries.attr({ + transform: "translate(".concat(translateX, ", ").concat(translateY, ") scale(").concat(scaleSize, ")") + }); + elSeries.add(elG); + this.ret.add(elSeries); + + if (this.donutDataLabels.show) { + var dataLabels = this.renderInnerDataLabels(this.donutDataLabels, { + hollowSize: this.donutSize, + centerX: this.centerX, + centerY: this.centerY, + opacity: this.donutDataLabels.show, + translateX: translateX, + translateY: translateY + }); + this.ret.add(dataLabels); + } + + if (w.config.grid.position === 'front' && this.chartType === 'polarArea') { + this.drawPolarElements(this.ret); + } + + return this.ret; + } // core function for drawing pie arcs + + }, { + key: "drawArcs", + value: function drawArcs(sectorAngleArr, series) { + var w = this.w; + var filters = new Filters(this.ctx); + var graphics = new Graphics(this.ctx); + var fill = new Fill(this.ctx); + var g = graphics.group({ + class: 'apexcharts-slices' + }); + var startAngle = this.initialAngle; + var prevStartAngle = this.initialAngle; + var endAngle = this.initialAngle; + var prevEndAngle = this.initialAngle; + this.strokeWidth = w.config.stroke.show ? w.config.stroke.width : 0; + + for (var i = 0; i < sectorAngleArr.length; i++) { + var elPieArc = graphics.group({ + class: "apexcharts-series apexcharts-pie-series", + seriesName: Utils$1.escapeString(w.globals.seriesNames[i]), + rel: i + 1, + 'data:realIndex': i + }); + g.add(elPieArc); + startAngle = endAngle; + prevStartAngle = prevEndAngle; + endAngle = startAngle + sectorAngleArr[i]; + prevEndAngle = prevStartAngle + this.prevSectorAngleArr[i]; + var angle = endAngle < startAngle ? this.fullAngle + endAngle - startAngle : endAngle - startAngle; + var pathFill = fill.fillPath({ + seriesNumber: i, + size: this.sliceSizes[i], + value: series[i] + }); // additionally, pass size for gradient drawing in the fillPath function + + var path = this.getChangedPath(prevStartAngle, prevEndAngle); + var elPath = graphics.drawPath({ + d: path, + stroke: Array.isArray(this.lineColorArr) ? this.lineColorArr[i] : this.lineColorArr, + strokeWidth: 0, + fill: pathFill, + fillOpacity: w.config.fill.opacity, + classes: "apexcharts-pie-area apexcharts-".concat(this.chartType.toLowerCase(), "-slice-").concat(i) + }); + elPath.attr({ + index: 0, + j: i + }); + filters.setSelectionFilter(elPath, 0, i); + + if (w.config.chart.dropShadow.enabled) { + var shadow = w.config.chart.dropShadow; + filters.dropShadow(elPath, shadow, i); + } + + this.addListeners(elPath, this.donutDataLabels); + Graphics.setAttrs(elPath.node, { + 'data:angle': angle, + 'data:startAngle': startAngle, + 'data:strokeWidth': this.strokeWidth, + 'data:value': series[i] + }); + var labelPosition = { + x: 0, + y: 0 + }; + + if (this.chartType === 'pie' || this.chartType === 'polarArea') { + labelPosition = Utils$1.polarToCartesian(this.centerX, this.centerY, w.globals.radialSize / 1.25 + w.config.plotOptions.pie.dataLabels.offset, (startAngle + angle / 2) % this.fullAngle); + } else if (this.chartType === 'donut') { + labelPosition = Utils$1.polarToCartesian(this.centerX, this.centerY, (w.globals.radialSize + this.donutSize) / 2 + w.config.plotOptions.pie.dataLabels.offset, (startAngle + angle / 2) % this.fullAngle); + } + + elPieArc.add(elPath); // Animation code starts + + var dur = 0; + + if (this.initialAnim && !w.globals.resized && !w.globals.dataChanged) { + dur = angle / this.fullAngle * w.config.chart.animations.speed; + if (dur === 0) dur = 1; + this.animDur = dur + this.animDur; + this.animBeginArr.push(this.animDur); + } else { + this.animBeginArr.push(0); + } + + if (this.dynamicAnim && w.globals.dataChanged) { + this.animatePaths(elPath, { + size: this.sliceSizes[i], + endAngle: endAngle, + startAngle: startAngle, + prevStartAngle: prevStartAngle, + prevEndAngle: prevEndAngle, + animateStartingPos: true, + i: i, + animBeginArr: this.animBeginArr, + shouldSetPrevPaths: true, + dur: w.config.chart.animations.dynamicAnimation.speed + }); + } else { + this.animatePaths(elPath, { + size: this.sliceSizes[i], + endAngle: endAngle, + startAngle: startAngle, + i: i, + totalItems: sectorAngleArr.length - 1, + animBeginArr: this.animBeginArr, + dur: dur + }); + } // animation code ends + + + if (w.config.plotOptions.pie.expandOnClick && this.chartType !== 'polarArea') { + elPath.click(this.pieClicked.bind(this, i)); + } + + if (typeof w.globals.selectedDataPoints[0] !== 'undefined' && w.globals.selectedDataPoints[0].indexOf(i) > -1) { + this.pieClicked(i); + } + + if (w.config.dataLabels.enabled) { + var xPos = labelPosition.x; + var yPos = labelPosition.y; + var text = 100 * angle / this.fullAngle + '%'; + + if (angle !== 0 && w.config.plotOptions.pie.dataLabels.minAngleToShowLabel < sectorAngleArr[i]) { + var formatter = w.config.dataLabels.formatter; + + if (formatter !== undefined) { + text = formatter(w.globals.seriesPercent[i][0], { + seriesIndex: i, + w: w + }); + } + + var foreColor = w.globals.dataLabels.style.colors[i]; + var elPieLabelWrap = graphics.group({ + class: "apexcharts-datalabels" + }); + var elPieLabel = graphics.drawText({ + x: xPos, + y: yPos, + text: text, + textAnchor: 'middle', + fontSize: w.config.dataLabels.style.fontSize, + fontFamily: w.config.dataLabels.style.fontFamily, + fontWeight: w.config.dataLabels.style.fontWeight, + foreColor: foreColor + }); + elPieLabelWrap.add(elPieLabel); + + if (w.config.dataLabels.dropShadow.enabled) { + var textShadow = w.config.dataLabels.dropShadow; + filters.dropShadow(elPieLabel, textShadow); + } + + elPieLabel.node.classList.add('apexcharts-pie-label'); + + if (w.config.chart.animations.animate && w.globals.resized === false) { + elPieLabel.node.classList.add('apexcharts-pie-label-delay'); + elPieLabel.node.style.animationDelay = w.config.chart.animations.speed / 940 + 's'; + } + + this.sliceLabels.push(elPieLabelWrap); + } + } + } + + return g; + } + }, { + key: "addListeners", + value: function addListeners(elPath, dataLabels) { + var graphics = new Graphics(this.ctx); // append filters on mouseenter and mouseleave + + elPath.node.addEventListener('mouseenter', graphics.pathMouseEnter.bind(this, elPath)); + elPath.node.addEventListener('mouseleave', graphics.pathMouseLeave.bind(this, elPath)); + elPath.node.addEventListener('mouseleave', this.revertDataLabelsInner.bind(this, elPath.node, dataLabels)); + elPath.node.addEventListener('mousedown', graphics.pathMouseDown.bind(this, elPath)); + + if (!this.donutDataLabels.total.showAlways) { + elPath.node.addEventListener('mouseenter', this.printDataLabelsInner.bind(this, elPath.node, dataLabels)); + elPath.node.addEventListener('mousedown', this.printDataLabelsInner.bind(this, elPath.node, dataLabels)); + } + } // This function can be used for other circle charts too + + }, { + key: "animatePaths", + value: function animatePaths(el, opts) { + var w = this.w; + var me = this; + var angle = opts.endAngle < opts.startAngle ? this.fullAngle + opts.endAngle - opts.startAngle : opts.endAngle - opts.startAngle; + var prevAngle = angle; + var fromStartAngle = opts.startAngle; + var toStartAngle = opts.startAngle; + + if (opts.prevStartAngle !== undefined && opts.prevEndAngle !== undefined) { + fromStartAngle = opts.prevEndAngle; + prevAngle = opts.prevEndAngle < opts.prevStartAngle ? this.fullAngle + opts.prevEndAngle - opts.prevStartAngle : opts.prevEndAngle - opts.prevStartAngle; + } + + if (opts.i === w.config.series.length - 1) { + // some adjustments for the last overlapping paths + if (angle + toStartAngle > this.fullAngle) { + opts.endAngle = opts.endAngle - (angle + toStartAngle); + } else if (angle + toStartAngle < this.fullAngle) { + opts.endAngle = opts.endAngle + (this.fullAngle - (angle + toStartAngle)); + } + } + + if (angle === this.fullAngle) angle = this.fullAngle - 0.01; + me.animateArc(el, fromStartAngle, toStartAngle, angle, prevAngle, opts); + } + }, { + key: "animateArc", + value: function animateArc(el, fromStartAngle, toStartAngle, angle, prevAngle, opts) { + var me = this; + var w = this.w; + var animations = new Animations(this.ctx); + var size = opts.size; + var path; + + if (isNaN(fromStartAngle) || isNaN(prevAngle)) { + fromStartAngle = toStartAngle; + prevAngle = angle; + opts.dur = 0; + } + + var currAngle = angle; + var startAngle = toStartAngle; + var fromAngle = fromStartAngle < toStartAngle ? this.fullAngle + fromStartAngle - toStartAngle : fromStartAngle - toStartAngle; + + if (w.globals.dataChanged && opts.shouldSetPrevPaths) { + // to avoid flicker when updating, set prev path first and then animate from there + if (opts.prevEndAngle) { + path = me.getPiePath({ + me: me, + startAngle: opts.prevStartAngle, + angle: opts.prevEndAngle < opts.prevStartAngle ? this.fullAngle + opts.prevEndAngle - opts.prevStartAngle : opts.prevEndAngle - opts.prevStartAngle, + size: size + }); + el.attr({ + d: path + }); + } + } + + if (opts.dur !== 0) { + el.animate(opts.dur, w.globals.easing, opts.animBeginArr[opts.i]).afterAll(function () { + if (me.chartType === 'pie' || me.chartType === 'donut' || me.chartType === 'polarArea') { + this.animate(w.config.chart.animations.dynamicAnimation.speed).attr({ + 'stroke-width': me.strokeWidth + }); + } + + if (opts.i === w.config.series.length - 1) { + animations.animationCompleted(el); + } + }).during(function (pos) { + currAngle = fromAngle + (angle - fromAngle) * pos; + + if (opts.animateStartingPos) { + currAngle = prevAngle + (angle - prevAngle) * pos; + startAngle = fromStartAngle - prevAngle + (toStartAngle - (fromStartAngle - prevAngle)) * pos; + } + + path = me.getPiePath({ + me: me, + startAngle: startAngle, + angle: currAngle, + size: size + }); + el.node.setAttribute('data:pathOrig', path); + el.attr({ + d: path + }); + }); + } else { + path = me.getPiePath({ + me: me, + startAngle: startAngle, + angle: angle, + size: size + }); + + if (!opts.isTrack) { + w.globals.animationEnded = true; + } + + el.node.setAttribute('data:pathOrig', path); + el.attr({ + d: path, + 'stroke-width': me.strokeWidth + }); + } + } + }, { + key: "pieClicked", + value: function pieClicked(i) { + var w = this.w; + var me = this; + var path; + var size = me.sliceSizes[i] + (w.config.plotOptions.pie.expandOnClick ? 4 : 0); + var elPath = w.globals.dom.Paper.select(".apexcharts-".concat(me.chartType.toLowerCase(), "-slice-").concat(i)).members[0]; + + if (elPath.attr('data:pieClicked') === 'true') { + elPath.attr({ + 'data:pieClicked': 'false' + }); + this.revertDataLabelsInner(elPath.node, this.donutDataLabels); + var origPath = elPath.attr('data:pathOrig'); + elPath.attr({ + d: origPath + }); + return; + } else { + // reset all elems + var allEls = w.globals.dom.baseEl.getElementsByClassName('apexcharts-pie-area'); + Array.prototype.forEach.call(allEls, function (pieSlice) { + pieSlice.setAttribute('data:pieClicked', 'false'); + var origPath = pieSlice.getAttribute('data:pathOrig'); + pieSlice.setAttribute('d', origPath); + }); + elPath.attr('data:pieClicked', 'true'); + } + + var startAngle = parseInt(elPath.attr('data:startAngle'), 10); + var angle = parseInt(elPath.attr('data:angle'), 10); + path = me.getPiePath({ + me: me, + startAngle: startAngle, + angle: angle, + size: size + }); + if (angle === 360) return; + elPath.plot(path); + } + }, { + key: "getChangedPath", + value: function getChangedPath(prevStartAngle, prevEndAngle) { + var path = ''; + + if (this.dynamicAnim && this.w.globals.dataChanged) { + path = this.getPiePath({ + me: this, + startAngle: prevStartAngle, + angle: prevEndAngle - prevStartAngle, + size: this.size + }); + } + + return path; + } + }, { + key: "getPiePath", + value: function getPiePath(_ref) { + var me = _ref.me, + startAngle = _ref.startAngle, + angle = _ref.angle, + size = _ref.size; + var path; + var startDeg = startAngle; + var startRadians = Math.PI * (startDeg - 90) / 180; + var endDeg = angle + startAngle; // prevent overlap + + if (Math.ceil(endDeg) >= this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle) { + endDeg = this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle - 0.01; + } + + if (Math.ceil(endDeg) > this.fullAngle) endDeg -= this.fullAngle; + var endRadians = Math.PI * (endDeg - 90) / 180; + var x1 = me.centerX + size * Math.cos(startRadians); + var y1 = me.centerY + size * Math.sin(startRadians); + var x2 = me.centerX + size * Math.cos(endRadians); + var y2 = me.centerY + size * Math.sin(endRadians); + var startInner = Utils$1.polarToCartesian(me.centerX, me.centerY, me.donutSize, endDeg); + var endInner = Utils$1.polarToCartesian(me.centerX, me.centerY, me.donutSize, startDeg); + var largeArc = angle > 180 ? 1 : 0; + var pathBeginning = ['M', x1, y1, 'A', size, size, 0, largeArc, 1, x2, y2]; + + if (me.chartType === 'donut') { + path = [].concat(pathBeginning, ['L', startInner.x, startInner.y, 'A', me.donutSize, me.donutSize, 0, largeArc, 0, endInner.x, endInner.y, 'L', x1, y1, 'z']).join(' '); + } else if (me.chartType === 'pie' || me.chartType === 'polarArea') { + path = [].concat(pathBeginning, ['L', me.centerX, me.centerY, 'L', x1, y1]).join(' '); + } else { + path = [].concat(pathBeginning).join(' '); + } + + return path; + } + }, { + key: "drawPolarElements", + value: function drawPolarElements(parent) { + var w = this.w; + var scale = new Range$1(this.ctx); + var graphics = new Graphics(this.ctx); + var helpers = new CircularChartsHelpers(this.ctx); + var gCircles = graphics.group(); + var gYAxis = graphics.group(); + var yScale = scale.niceScale(0, Math.ceil(this.maxY), w.config.yaxis[0].tickAmount, 0, true); + var yTexts = yScale.result.reverse(); + var len = yScale.result.length; + this.maxY = yScale.niceMax; + var circleSize = w.globals.radialSize; + var diff = circleSize / (len - 1); + + for (var i = 0; i < len - 1; i++) { + var circle = graphics.drawCircle(circleSize); + circle.attr({ + cx: this.centerX, + cy: this.centerY, + fill: 'none', + 'stroke-width': w.config.plotOptions.polarArea.rings.strokeWidth, + stroke: w.config.plotOptions.polarArea.rings.strokeColor + }); + + if (w.config.yaxis[0].show) { + var yLabel = helpers.drawYAxisTexts(this.centerX, this.centerY - circleSize + parseInt(w.config.yaxis[0].labels.style.fontSize, 10) / 2, i, yTexts[i]); + gYAxis.add(yLabel); + } + + gCircles.add(circle); + circleSize = circleSize - diff; + } + + this.drawSpokes(parent); + parent.add(gCircles); + parent.add(gYAxis); + } + }, { + key: "renderInnerDataLabels", + value: function renderInnerDataLabels(dataLabelsConfig, opts) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var g = graphics.group({ + class: 'apexcharts-datalabels-group', + transform: "translate(".concat(opts.translateX ? opts.translateX : 0, ", ").concat(opts.translateY ? opts.translateY : 0, ") scale(").concat(w.config.plotOptions.pie.customScale, ")") + }); + var showTotal = dataLabelsConfig.total.show; + g.node.style.opacity = opts.opacity; + var x = opts.centerX; + var y = opts.centerY; + var labelColor, valueColor; + + if (dataLabelsConfig.name.color === undefined) { + labelColor = w.globals.colors[0]; + } else { + labelColor = dataLabelsConfig.name.color; + } + + var labelFontSize = dataLabelsConfig.name.fontSize; + var labelFontFamily = dataLabelsConfig.name.fontFamily; + var labelFontWeight = dataLabelsConfig.name.fontWeight; + + if (dataLabelsConfig.value.color === undefined) { + valueColor = w.config.chart.foreColor; + } else { + valueColor = dataLabelsConfig.value.color; + } + + var lbFormatter = dataLabelsConfig.value.formatter; + var val = ''; + var name = ''; + + if (showTotal) { + labelColor = dataLabelsConfig.total.color; + labelFontSize = dataLabelsConfig.total.fontSize; + labelFontFamily = dataLabelsConfig.total.fontFamily; + labelFontWeight = dataLabelsConfig.total.fontWeight; + name = dataLabelsConfig.total.label; + val = dataLabelsConfig.total.formatter(w); + } else { + if (w.globals.series.length === 1) { + val = lbFormatter(w.globals.series[0], w); + name = w.globals.seriesNames[0]; + } + } + + if (name) { + name = dataLabelsConfig.name.formatter(name, dataLabelsConfig.total.show, w); + } + + if (dataLabelsConfig.name.show) { + var elLabel = graphics.drawText({ + x: x, + y: y + parseFloat(dataLabelsConfig.name.offsetY), + text: name, + textAnchor: 'middle', + foreColor: labelColor, + fontSize: labelFontSize, + fontWeight: labelFontWeight, + fontFamily: labelFontFamily + }); + elLabel.node.classList.add('apexcharts-datalabel-label'); + g.add(elLabel); + } + + if (dataLabelsConfig.value.show) { + var valOffset = dataLabelsConfig.name.show ? parseFloat(dataLabelsConfig.value.offsetY) + 16 : dataLabelsConfig.value.offsetY; + var elValue = graphics.drawText({ + x: x, + y: y + valOffset, + text: val, + textAnchor: 'middle', + foreColor: valueColor, + fontWeight: dataLabelsConfig.value.fontWeight, + fontSize: dataLabelsConfig.value.fontSize, + fontFamily: dataLabelsConfig.value.fontFamily + }); + elValue.node.classList.add('apexcharts-datalabel-value'); + g.add(elValue); + } // for a multi-series circle chart, we need to show total value instead of first series labels + + + return g; + } + /** + * + * @param {string} name - The name of the series + * @param {string} val - The value of that series + * @param {object} el - Optional el (indicates which series was hovered/clicked). If this param is not present, means we need to show total + */ + + }, { + key: "printInnerLabels", + value: function printInnerLabels(labelsConfig, name, val, el) { + var w = this.w; + var labelColor; + + if (el) { + if (labelsConfig.name.color === undefined) { + labelColor = w.globals.colors[parseInt(el.parentNode.getAttribute('rel'), 10) - 1]; + } else { + labelColor = labelsConfig.name.color; + } + } else { + if (w.globals.series.length > 1 && labelsConfig.total.show) { + labelColor = labelsConfig.total.color; + } + } + + var elLabel = w.globals.dom.baseEl.querySelector('.apexcharts-datalabel-label'); + var elValue = w.globals.dom.baseEl.querySelector('.apexcharts-datalabel-value'); + var lbFormatter = labelsConfig.value.formatter; + val = lbFormatter(val, w); // we need to show Total Val - so get the formatter of it + + if (!el && typeof labelsConfig.total.formatter === 'function') { + val = labelsConfig.total.formatter(w); + } + + var isTotal = name === labelsConfig.total.label; + name = labelsConfig.name.formatter(name, isTotal, w); + + if (elLabel !== null) { + elLabel.textContent = name; + } + + if (elValue !== null) { + elValue.textContent = val; + } + + if (elLabel !== null) { + elLabel.style.fill = labelColor; + } + } + }, { + key: "printDataLabelsInner", + value: function printDataLabelsInner(el, dataLabelsConfig) { + var w = this.w; + var val = el.getAttribute('data:value'); + var name = w.globals.seriesNames[parseInt(el.parentNode.getAttribute('rel'), 10) - 1]; + + if (w.globals.series.length > 1) { + this.printInnerLabels(dataLabelsConfig, name, val, el); + } + + var dataLabelsGroup = w.globals.dom.baseEl.querySelector('.apexcharts-datalabels-group'); + + if (dataLabelsGroup !== null) { + dataLabelsGroup.style.opacity = 1; + } + } + }, { + key: "drawSpokes", + value: function drawSpokes(parent) { + var _this2 = this; + + var w = this.w; + var graphics = new Graphics(this.ctx); + var spokeConfig = w.config.plotOptions.polarArea.spokes; + if (spokeConfig.strokeWidth === 0) return; + var spokes = []; + var angleDivision = 360 / w.globals.series.length; + + for (var i = 0; i < w.globals.series.length; i++) { + spokes.push(Utils$1.polarToCartesian(this.centerX, this.centerY, w.globals.radialSize, w.config.plotOptions.pie.startAngle + angleDivision * i)); + } + + spokes.forEach(function (p, i) { + var line = graphics.drawLine(p.x, p.y, _this2.centerX, _this2.centerY, Array.isArray(spokeConfig.connectorColors) ? spokeConfig.connectorColors[i] : spokeConfig.connectorColors); + parent.add(line); + }); + } + }, { + key: "revertDataLabelsInner", + value: function revertDataLabelsInner(elem, dataLabelsConfig, event) { + var _this3 = this; + + var w = this.w; + var dataLabelsGroup = w.globals.dom.baseEl.querySelector('.apexcharts-datalabels-group'); + var sliceOut = false; + var slices = w.globals.dom.baseEl.getElementsByClassName("apexcharts-pie-area"); + + var selectSlice = function selectSlice(_ref2) { + var makeSliceOut = _ref2.makeSliceOut, + printLabel = _ref2.printLabel; + Array.prototype.forEach.call(slices, function (s) { + if (s.getAttribute('data:pieClicked') === 'true') { + if (makeSliceOut) { + sliceOut = true; + } + + if (printLabel) { + _this3.printDataLabelsInner(s, dataLabelsConfig); + } + } + }); + }; + + selectSlice({ + makeSliceOut: true, + printLabel: false + }); + + if (dataLabelsConfig.total.show && w.globals.series.length > 1) { + if (sliceOut && !dataLabelsConfig.total.showAlways) { + selectSlice({ + makeSliceOut: false, + printLabel: true + }); + } else { + this.printInnerLabels(dataLabelsConfig, dataLabelsConfig.total.label, dataLabelsConfig.total.formatter(w)); + } + } else { + selectSlice({ + makeSliceOut: false, + printLabel: true + }); + + if (!sliceOut) { + if (w.globals.selectedDataPoints.length && w.globals.series.length > 1) { + if (w.globals.selectedDataPoints[0].length > 0) { + var index = w.globals.selectedDataPoints[0]; + var el = w.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(), "-slice-").concat(index)); + this.printDataLabelsInner(el, dataLabelsConfig); + } else if (dataLabelsGroup && w.globals.selectedDataPoints.length && w.globals.selectedDataPoints[0].length === 0) { + dataLabelsGroup.style.opacity = 0; + } + } else { + if (dataLabelsGroup && w.globals.series.length > 1) { + dataLabelsGroup.style.opacity = 0; + } + } + } + } + } + }]); + + return Pie; + }(); + + /** + * ApexCharts Radar Class for Spider/Radar Charts. + * @module Radar + **/ + + var Radar = /*#__PURE__*/function () { + function Radar(ctx) { + _classCallCheck(this, Radar); + + this.ctx = ctx; + this.w = ctx.w; + this.chartType = this.w.config.chart.type; + this.initialAnim = this.w.config.chart.animations.enabled; + this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled; + this.animDur = 0; + var w = this.w; + this.graphics = new Graphics(this.ctx); + this.lineColorArr = w.globals.stroke.colors !== undefined ? w.globals.stroke.colors : w.globals.colors; + this.defaultSize = w.globals.svgHeight < w.globals.svgWidth ? w.globals.gridHeight + w.globals.goldenPadding * 1.5 : w.globals.gridWidth; + this.isLog = w.config.yaxis[0].logarithmic; + this.coreUtils = new CoreUtils(this.ctx); + this.maxValue = this.isLog ? this.coreUtils.getLogVal(w.globals.maxY, 0) : w.globals.maxY; + this.minValue = this.isLog ? this.coreUtils.getLogVal(this.w.globals.minY, 0) : w.globals.minY; + this.polygons = w.config.plotOptions.radar.polygons; + this.strokeWidth = w.config.stroke.show ? w.config.stroke.width : 0; + this.size = this.defaultSize / 2.1 - this.strokeWidth - w.config.chart.dropShadow.blur; + + if (w.config.xaxis.labels.show) { + this.size = this.size - w.globals.xAxisLabelsWidth / 1.75; + } + + if (w.config.plotOptions.radar.size !== undefined) { + this.size = w.config.plotOptions.radar.size; + } + + this.dataRadiusOfPercent = []; + this.dataRadius = []; + this.angleArr = []; + this.yaxisLabelsTextsPos = []; + } + + _createClass(Radar, [{ + key: "draw", + value: function draw(series) { + var _this = this; + + var w = this.w; + var fill = new Fill(this.ctx); + var allSeries = []; + var dataLabels = new DataLabels(this.ctx); + + if (series.length) { + this.dataPointsLen = series[w.globals.maxValsInArrayIndex].length; + } + + this.disAngle = Math.PI * 2 / this.dataPointsLen; + var halfW = w.globals.gridWidth / 2; + var halfH = w.globals.gridHeight / 2; + var translateX = halfW + w.config.plotOptions.radar.offsetX; + var translateY = halfH + w.config.plotOptions.radar.offsetY; + var ret = this.graphics.group({ + class: 'apexcharts-radar-series apexcharts-plot-series', + transform: "translate(".concat(translateX || 0, ", ").concat(translateY || 0, ")") + }); + var dataPointsPos = []; + var elPointsMain = null; + var elDataPointsMain = null; + this.yaxisLabels = this.graphics.group({ + class: 'apexcharts-yaxis' + }); + series.forEach(function (s, i) { + var longestSeries = s.length === w.globals.dataPoints; // el to which series will be drawn + + var elSeries = _this.graphics.group().attr({ + class: "apexcharts-series", + 'data:longestSeries': longestSeries, + seriesName: Utils$1.escapeString(w.globals.seriesNames[i]), + rel: i + 1, + 'data:realIndex': i + }); + + _this.dataRadiusOfPercent[i] = []; + _this.dataRadius[i] = []; + _this.angleArr[i] = []; + s.forEach(function (dv, j) { + var range = Math.abs(_this.maxValue - _this.minValue); + dv = dv + Math.abs(_this.minValue); + + if (_this.isLog) { + dv = _this.coreUtils.getLogVal(dv, 0); + } + + _this.dataRadiusOfPercent[i][j] = dv / range; + _this.dataRadius[i][j] = _this.dataRadiusOfPercent[i][j] * _this.size; + _this.angleArr[i][j] = j * _this.disAngle; + }); + dataPointsPos = _this.getDataPointsPos(_this.dataRadius[i], _this.angleArr[i]); + + var paths = _this.createPaths(dataPointsPos, { + x: 0, + y: 0 + }); // points + + + elPointsMain = _this.graphics.group({ + class: 'apexcharts-series-markers-wrap apexcharts-element-hidden' + }); // datapoints + + elDataPointsMain = _this.graphics.group({ + class: "apexcharts-datalabels", + 'data:realIndex': i + }); + w.globals.delayedElements.push({ + el: elPointsMain.node, + index: i + }); + var defaultRenderedPathOptions = { + i: i, + realIndex: i, + animationDelay: i, + initialSpeed: w.config.chart.animations.speed, + dataChangeSpeed: w.config.chart.animations.dynamicAnimation.speed, + className: "apexcharts-radar", + shouldClipToGrid: false, + bindEventsOnPaths: false, + stroke: w.globals.stroke.colors[i], + strokeLineCap: w.config.stroke.lineCap + }; + var pathFrom = null; + + if (w.globals.previousPaths.length > 0) { + pathFrom = _this.getPreviousPath(i); + } + + for (var p = 0; p < paths.linePathsTo.length; p++) { + var renderedLinePath = _this.graphics.renderPaths(_objectSpread2(_objectSpread2({}, defaultRenderedPathOptions), {}, { + pathFrom: pathFrom === null ? paths.linePathsFrom[p] : pathFrom, + pathTo: paths.linePathsTo[p], + strokeWidth: Array.isArray(_this.strokeWidth) ? _this.strokeWidth[i] : _this.strokeWidth, + fill: 'none', + drawShadow: false + })); + + elSeries.add(renderedLinePath); + var pathFill = fill.fillPath({ + seriesNumber: i + }); + + var renderedAreaPath = _this.graphics.renderPaths(_objectSpread2(_objectSpread2({}, defaultRenderedPathOptions), {}, { + pathFrom: pathFrom === null ? paths.areaPathsFrom[p] : pathFrom, + pathTo: paths.areaPathsTo[p], + strokeWidth: 0, + fill: pathFill, + drawShadow: false + })); + + if (w.config.chart.dropShadow.enabled) { + var filters = new Filters(_this.ctx); + var shadow = w.config.chart.dropShadow; + filters.dropShadow(renderedAreaPath, Object.assign({}, shadow, { + noUserSpaceOnUse: true + }), i); + } + + elSeries.add(renderedAreaPath); + } + + s.forEach(function (sj, j) { + var markers = new Markers(_this.ctx); + var opts = markers.getMarkerConfig({ + cssClass: 'apexcharts-marker', + seriesIndex: i, + dataPointIndex: j + }); + + var point = _this.graphics.drawMarker(dataPointsPos[j].x, dataPointsPos[j].y, opts); + + point.attr('rel', j); + point.attr('j', j); + point.attr('index', i); + point.node.setAttribute('default-marker-size', opts.pSize); + + var elPointsWrap = _this.graphics.group({ + class: 'apexcharts-series-markers' + }); + + if (elPointsWrap) { + elPointsWrap.add(point); + } + + elPointsMain.add(elPointsWrap); + elSeries.add(elPointsMain); + var dataLabelsConfig = w.config.dataLabels; + + if (dataLabelsConfig.enabled) { + var text = dataLabelsConfig.formatter(w.globals.series[i][j], { + seriesIndex: i, + dataPointIndex: j, + w: w + }); + dataLabels.plotDataLabelsText({ + x: dataPointsPos[j].x, + y: dataPointsPos[j].y, + text: text, + textAnchor: 'middle', + i: i, + j: i, + parent: elDataPointsMain, + offsetCorrection: false, + dataLabelsConfig: _objectSpread2({}, dataLabelsConfig) + }); + } + + elSeries.add(elDataPointsMain); + }); + allSeries.push(elSeries); + }); + this.drawPolygons({ + parent: ret + }); + + if (w.config.xaxis.labels.show) { + var xaxisTexts = this.drawXAxisTexts(); + ret.add(xaxisTexts); + } + + allSeries.forEach(function (elS) { + ret.add(elS); + }); + ret.add(this.yaxisLabels); + return ret; + } + }, { + key: "drawPolygons", + value: function drawPolygons(opts) { + var _this2 = this; + + var w = this.w; + var parent = opts.parent; + var helpers = new CircularChartsHelpers(this.ctx); + var yaxisTexts = w.globals.yAxisScale[0].result.reverse(); + var layers = yaxisTexts.length; + var radiusSizes = []; + var layerDis = this.size / (layers - 1); + + for (var i = 0; i < layers; i++) { + radiusSizes[i] = layerDis * i; + } + + radiusSizes.reverse(); + var polygonStrings = []; + var lines = []; + radiusSizes.forEach(function (radiusSize, r) { + var polygon = Utils$1.getPolygonPos(radiusSize, _this2.dataPointsLen); + var string = ''; + polygon.forEach(function (p, i) { + if (r === 0) { + var line = _this2.graphics.drawLine(p.x, p.y, 0, 0, Array.isArray(_this2.polygons.connectorColors) ? _this2.polygons.connectorColors[i] : _this2.polygons.connectorColors); + + lines.push(line); + } + + if (i === 0) { + _this2.yaxisLabelsTextsPos.push({ + x: p.x, + y: p.y + }); + } + + string += p.x + ',' + p.y + ' '; + }); + polygonStrings.push(string); + }); + polygonStrings.forEach(function (p, i) { + var strokeColors = _this2.polygons.strokeColors; + var strokeWidth = _this2.polygons.strokeWidth; + + var polygon = _this2.graphics.drawPolygon(p, Array.isArray(strokeColors) ? strokeColors[i] : strokeColors, Array.isArray(strokeWidth) ? strokeWidth[i] : strokeWidth, w.globals.radarPolygons.fill.colors[i]); + + parent.add(polygon); + }); + lines.forEach(function (l) { + parent.add(l); + }); + + if (w.config.yaxis[0].show) { + this.yaxisLabelsTextsPos.forEach(function (p, i) { + var yText = helpers.drawYAxisTexts(p.x, p.y, i, yaxisTexts[i]); + + _this2.yaxisLabels.add(yText); + }); + } + } + }, { + key: "drawXAxisTexts", + value: function drawXAxisTexts() { + var _this3 = this; + + var w = this.w; + var xaxisLabelsConfig = w.config.xaxis.labels; + var elXAxisWrap = this.graphics.group({ + class: 'apexcharts-xaxis' + }); + var polygonPos = Utils$1.getPolygonPos(this.size, this.dataPointsLen); + w.globals.labels.forEach(function (label, i) { + var formatter = w.config.xaxis.labels.formatter; + var dataLabels = new DataLabels(_this3.ctx); + + if (polygonPos[i]) { + var textPos = _this3.getTextPos(polygonPos[i], _this3.size); + + var text = formatter(label, { + seriesIndex: -1, + dataPointIndex: i, + w: w + }); + dataLabels.plotDataLabelsText({ + x: textPos.newX, + y: textPos.newY, + text: text, + textAnchor: textPos.textAnchor, + i: i, + j: i, + parent: elXAxisWrap, + color: Array.isArray(xaxisLabelsConfig.style.colors) && xaxisLabelsConfig.style.colors[i] ? xaxisLabelsConfig.style.colors[i] : '#a8a8a8', + dataLabelsConfig: _objectSpread2({ + textAnchor: textPos.textAnchor, + dropShadow: { + enabled: false + } + }, xaxisLabelsConfig), + offsetCorrection: false + }); + } + }); + return elXAxisWrap; + } + }, { + key: "createPaths", + value: function createPaths(pos, origin) { + var _this4 = this; + + var linePathsTo = []; + var linePathsFrom = []; + var areaPathsTo = []; + var areaPathsFrom = []; + + if (pos.length) { + linePathsFrom = [this.graphics.move(origin.x, origin.y)]; + areaPathsFrom = [this.graphics.move(origin.x, origin.y)]; + var linePathTo = this.graphics.move(pos[0].x, pos[0].y); + var areaPathTo = this.graphics.move(pos[0].x, pos[0].y); + pos.forEach(function (p, i) { + linePathTo += _this4.graphics.line(p.x, p.y); + areaPathTo += _this4.graphics.line(p.x, p.y); + + if (i === pos.length - 1) { + linePathTo += 'Z'; + areaPathTo += 'Z'; + } + }); + linePathsTo.push(linePathTo); + areaPathsTo.push(areaPathTo); + } + + return { + linePathsFrom: linePathsFrom, + linePathsTo: linePathsTo, + areaPathsFrom: areaPathsFrom, + areaPathsTo: areaPathsTo + }; + } + }, { + key: "getTextPos", + value: function getTextPos(pos, polygonSize) { + var limit = 10; + var textAnchor = 'middle'; + var newX = pos.x; + var newY = pos.y; + + if (Math.abs(pos.x) >= limit) { + if (pos.x > 0) { + textAnchor = 'start'; + newX += 10; + } else if (pos.x < 0) { + textAnchor = 'end'; + newX -= 10; + } + } else { + textAnchor = 'middle'; + } + + if (Math.abs(pos.y) >= polygonSize - limit) { + if (pos.y < 0) { + newY -= 10; + } else if (pos.y > 0) { + newY += 10; + } + } + + return { + textAnchor: textAnchor, + newX: newX, + newY: newY + }; + } + }, { + key: "getPreviousPath", + value: function getPreviousPath(realIndex) { + var w = this.w; + var pathFrom = null; + + for (var pp = 0; pp < w.globals.previousPaths.length; pp++) { + var gpp = w.globals.previousPaths[pp]; + + if (gpp.paths.length > 0 && parseInt(gpp.realIndex, 10) === parseInt(realIndex, 10)) { + if (typeof w.globals.previousPaths[pp].paths[0] !== 'undefined') { + pathFrom = w.globals.previousPaths[pp].paths[0].d; + } + } + } + + return pathFrom; + } + }, { + key: "getDataPointsPos", + value: function getDataPointsPos(dataRadiusArr, angleArr) { + var dataPointsLen = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.dataPointsLen; + dataRadiusArr = dataRadiusArr || []; + angleArr = angleArr || []; + var dataPointsPosArray = []; + + for (var j = 0; j < dataPointsLen; j++) { + var curPointPos = {}; + curPointPos.x = dataRadiusArr[j] * Math.sin(angleArr[j]); + curPointPos.y = -dataRadiusArr[j] * Math.cos(angleArr[j]); + dataPointsPosArray.push(curPointPos); + } + + return dataPointsPosArray; + } + }]); + + return Radar; + }(); + + /** + * ApexCharts Radial Class for drawing Circle / Semi Circle Charts. + * @module Radial + **/ + + var Radial = /*#__PURE__*/function (_Pie) { + _inherits(Radial, _Pie); + + var _super = _createSuper(Radial); + + function Radial(ctx) { + var _this; + + _classCallCheck(this, Radial); + + _this = _super.call(this, ctx); + _this.ctx = ctx; + _this.w = ctx.w; + _this.animBeginArr = [0]; + _this.animDur = 0; + var w = _this.w; + _this.startAngle = w.config.plotOptions.radialBar.startAngle; + _this.endAngle = w.config.plotOptions.radialBar.endAngle; + _this.totalAngle = Math.abs(w.config.plotOptions.radialBar.endAngle - w.config.plotOptions.radialBar.startAngle); + _this.trackStartAngle = w.config.plotOptions.radialBar.track.startAngle; + _this.trackEndAngle = w.config.plotOptions.radialBar.track.endAngle; + _this.donutDataLabels = _this.w.config.plotOptions.radialBar.dataLabels; + _this.radialDataLabels = _this.donutDataLabels; // make a copy for easy reference + + if (!_this.trackStartAngle) _this.trackStartAngle = _this.startAngle; + if (!_this.trackEndAngle) _this.trackEndAngle = _this.endAngle; + if (_this.endAngle === 360) _this.endAngle = 359.99; + _this.margin = parseInt(w.config.plotOptions.radialBar.track.margin, 10); + return _this; + } + + _createClass(Radial, [{ + key: "draw", + value: function draw(series) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var ret = graphics.group({ + class: 'apexcharts-radialbar' + }); + if (w.globals.noData) return ret; + var elSeries = graphics.group(); + var centerY = this.defaultSize / 2; + var centerX = w.globals.gridWidth / 2; + var size = this.defaultSize / 2.05; + + if (!w.config.chart.sparkline.enabled) { + size = size - w.config.stroke.width - w.config.chart.dropShadow.blur; + } + + var colorArr = w.globals.fill.colors; + + if (w.config.plotOptions.radialBar.track.show) { + var elTracks = this.drawTracks({ + size: size, + centerX: centerX, + centerY: centerY, + colorArr: colorArr, + series: series + }); + elSeries.add(elTracks); + } + + var elG = this.drawArcs({ + size: size, + centerX: centerX, + centerY: centerY, + colorArr: colorArr, + series: series + }); + var totalAngle = 360; + + if (w.config.plotOptions.radialBar.startAngle < 0) { + totalAngle = this.totalAngle; + } + + var angleRatio = (360 - totalAngle) / 360; + w.globals.radialSize = size - size * angleRatio; + + if (this.radialDataLabels.value.show) { + var offset = Math.max(this.radialDataLabels.value.offsetY, this.radialDataLabels.name.offsetY); + w.globals.radialSize += offset * angleRatio; + } + + elSeries.add(elG.g); + + if (w.config.plotOptions.radialBar.hollow.position === 'front') { + elG.g.add(elG.elHollow); + + if (elG.dataLabels) { + elG.g.add(elG.dataLabels); + } + } + + ret.add(elSeries); + return ret; + } + }, { + key: "drawTracks", + value: function drawTracks(opts) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var g = graphics.group({ + class: 'apexcharts-tracks' + }); + var filters = new Filters(this.ctx); + var fill = new Fill(this.ctx); + var strokeWidth = this.getStrokeWidth(opts); + opts.size = opts.size - strokeWidth / 2; + + for (var i = 0; i < opts.series.length; i++) { + var elRadialBarTrack = graphics.group({ + class: 'apexcharts-radialbar-track apexcharts-track' + }); + g.add(elRadialBarTrack); + elRadialBarTrack.attr({ + rel: i + 1 + }); + opts.size = opts.size - strokeWidth - this.margin; + var trackConfig = w.config.plotOptions.radialBar.track; + var pathFill = fill.fillPath({ + seriesNumber: 0, + size: opts.size, + fillColors: Array.isArray(trackConfig.background) ? trackConfig.background[i] : trackConfig.background, + solid: true + }); + var startAngle = this.trackStartAngle; + var endAngle = this.trackEndAngle; + if (Math.abs(endAngle) + Math.abs(startAngle) >= 360) endAngle = 360 - Math.abs(this.startAngle) - 0.1; + var elPath = graphics.drawPath({ + d: '', + stroke: pathFill, + strokeWidth: strokeWidth * parseInt(trackConfig.strokeWidth, 10) / 100, + fill: 'none', + strokeOpacity: trackConfig.opacity, + classes: 'apexcharts-radialbar-area' + }); + + if (trackConfig.dropShadow.enabled) { + var shadow = trackConfig.dropShadow; + filters.dropShadow(elPath, shadow); + } + + elRadialBarTrack.add(elPath); + elPath.attr('id', 'apexcharts-radialbarTrack-' + i); + this.animatePaths(elPath, { + centerX: opts.centerX, + centerY: opts.centerY, + endAngle: endAngle, + startAngle: startAngle, + size: opts.size, + i: i, + totalItems: 2, + animBeginArr: 0, + dur: 0, + isTrack: true, + easing: w.globals.easing + }); + } + + return g; + } + }, { + key: "drawArcs", + value: function drawArcs(opts) { + var w = this.w; // size, donutSize, centerX, centerY, colorArr, lineColorArr, sectorAngleArr, series + + var graphics = new Graphics(this.ctx); + var fill = new Fill(this.ctx); + var filters = new Filters(this.ctx); + var g = graphics.group(); + var strokeWidth = this.getStrokeWidth(opts); + opts.size = opts.size - strokeWidth / 2; + var hollowFillID = w.config.plotOptions.radialBar.hollow.background; + var hollowSize = opts.size - strokeWidth * opts.series.length - this.margin * opts.series.length - strokeWidth * parseInt(w.config.plotOptions.radialBar.track.strokeWidth, 10) / 100 / 2; + var hollowRadius = hollowSize - w.config.plotOptions.radialBar.hollow.margin; + + if (w.config.plotOptions.radialBar.hollow.image !== undefined) { + hollowFillID = this.drawHollowImage(opts, g, hollowSize, hollowFillID); + } + + var elHollow = this.drawHollow({ + size: hollowRadius, + centerX: opts.centerX, + centerY: opts.centerY, + fill: hollowFillID ? hollowFillID : 'transparent' + }); + + if (w.config.plotOptions.radialBar.hollow.dropShadow.enabled) { + var shadow = w.config.plotOptions.radialBar.hollow.dropShadow; + filters.dropShadow(elHollow, shadow); + } + + var shown = 1; + + if (!this.radialDataLabels.total.show && w.globals.series.length > 1) { + shown = 0; + } + + var dataLabels = null; + + if (this.radialDataLabels.show) { + dataLabels = this.renderInnerDataLabels(this.radialDataLabels, { + hollowSize: hollowSize, + centerX: opts.centerX, + centerY: opts.centerY, + opacity: shown + }); + } + + if (w.config.plotOptions.radialBar.hollow.position === 'back') { + g.add(elHollow); + + if (dataLabels) { + g.add(dataLabels); + } + } + + var reverseLoop = false; + + if (w.config.plotOptions.radialBar.inverseOrder) { + reverseLoop = true; + } + + for (var i = reverseLoop ? opts.series.length - 1 : 0; reverseLoop ? i >= 0 : i < opts.series.length; reverseLoop ? i-- : i++) { + var elRadialBarArc = graphics.group({ + class: "apexcharts-series apexcharts-radial-series", + seriesName: Utils$1.escapeString(w.globals.seriesNames[i]) + }); + g.add(elRadialBarArc); + elRadialBarArc.attr({ + rel: i + 1, + 'data:realIndex': i + }); + this.ctx.series.addCollapsedClassToSeries(elRadialBarArc, i); + opts.size = opts.size - strokeWidth - this.margin; + var pathFill = fill.fillPath({ + seriesNumber: i, + size: opts.size, + value: opts.series[i] + }); + var startAngle = this.startAngle; + var prevStartAngle = void 0; // if data exceeds 100, make it 100 + + var dataValue = Utils$1.negToZero(opts.series[i] > 100 ? 100 : opts.series[i]) / 100; + var endAngle = Math.round(this.totalAngle * dataValue) + this.startAngle; + var prevEndAngle = void 0; + + if (w.globals.dataChanged) { + prevStartAngle = this.startAngle; + prevEndAngle = Math.round(this.totalAngle * Utils$1.negToZero(w.globals.previousPaths[i]) / 100) + prevStartAngle; + } + + var currFullAngle = Math.abs(endAngle) + Math.abs(startAngle); + + if (currFullAngle >= 360) { + endAngle = endAngle - 0.01; + } + + var prevFullAngle = Math.abs(prevEndAngle) + Math.abs(prevStartAngle); + + if (prevFullAngle >= 360) { + prevEndAngle = prevEndAngle - 0.01; + } + + var angle = endAngle - startAngle; + var dashArray = Array.isArray(w.config.stroke.dashArray) ? w.config.stroke.dashArray[i] : w.config.stroke.dashArray; + var elPath = graphics.drawPath({ + d: '', + stroke: pathFill, + strokeWidth: strokeWidth, + fill: 'none', + fillOpacity: w.config.fill.opacity, + classes: 'apexcharts-radialbar-area apexcharts-radialbar-slice-' + i, + strokeDashArray: dashArray + }); + Graphics.setAttrs(elPath.node, { + 'data:angle': angle, + 'data:value': opts.series[i] + }); + + if (w.config.chart.dropShadow.enabled) { + var _shadow = w.config.chart.dropShadow; + filters.dropShadow(elPath, _shadow, i); + } + + filters.setSelectionFilter(elPath, 0, i); + this.addListeners(elPath, this.radialDataLabels); + elRadialBarArc.add(elPath); + elPath.attr({ + index: 0, + j: i + }); + var dur = 0; + + if (this.initialAnim && !w.globals.resized && !w.globals.dataChanged) { + dur = w.config.chart.animations.speed; + } + + if (w.globals.dataChanged) { + dur = w.config.chart.animations.dynamicAnimation.speed; + } + + this.animDur = dur / (opts.series.length * 1.2) + this.animDur; + this.animBeginArr.push(this.animDur); + this.animatePaths(elPath, { + centerX: opts.centerX, + centerY: opts.centerY, + endAngle: endAngle, + startAngle: startAngle, + prevEndAngle: prevEndAngle, + prevStartAngle: prevStartAngle, + size: opts.size, + i: i, + totalItems: 2, + animBeginArr: this.animBeginArr, + dur: dur, + shouldSetPrevPaths: true, + easing: w.globals.easing + }); + } + + return { + g: g, + elHollow: elHollow, + dataLabels: dataLabels + }; + } + }, { + key: "drawHollow", + value: function drawHollow(opts) { + var graphics = new Graphics(this.ctx); + var circle = graphics.drawCircle(opts.size * 2); + circle.attr({ + class: 'apexcharts-radialbar-hollow', + cx: opts.centerX, + cy: opts.centerY, + r: opts.size, + fill: opts.fill + }); + return circle; + } + }, { + key: "drawHollowImage", + value: function drawHollowImage(opts, g, hollowSize, hollowFillID) { + var w = this.w; + var fill = new Fill(this.ctx); + var randID = Utils$1.randomId(); + var hollowFillImg = w.config.plotOptions.radialBar.hollow.image; + + if (w.config.plotOptions.radialBar.hollow.imageClipped) { + fill.clippedImgArea({ + width: hollowSize, + height: hollowSize, + image: hollowFillImg, + patternID: "pattern".concat(w.globals.cuid).concat(randID) + }); + hollowFillID = "url(#pattern".concat(w.globals.cuid).concat(randID, ")"); + } else { + var imgWidth = w.config.plotOptions.radialBar.hollow.imageWidth; + var imgHeight = w.config.plotOptions.radialBar.hollow.imageHeight; + + if (imgWidth === undefined && imgHeight === undefined) { + var image = w.globals.dom.Paper.image(hollowFillImg).loaded(function (loader) { + this.move(opts.centerX - loader.width / 2 + w.config.plotOptions.radialBar.hollow.imageOffsetX, opts.centerY - loader.height / 2 + w.config.plotOptions.radialBar.hollow.imageOffsetY); + }); + g.add(image); + } else { + var _image = w.globals.dom.Paper.image(hollowFillImg).loaded(function (loader) { + this.move(opts.centerX - imgWidth / 2 + w.config.plotOptions.radialBar.hollow.imageOffsetX, opts.centerY - imgHeight / 2 + w.config.plotOptions.radialBar.hollow.imageOffsetY); + this.size(imgWidth, imgHeight); + }); + + g.add(_image); + } + } + + return hollowFillID; + } + }, { + key: "getStrokeWidth", + value: function getStrokeWidth(opts) { + var w = this.w; + return opts.size * (100 - parseInt(w.config.plotOptions.radialBar.hollow.size, 10)) / 100 / (opts.series.length + 1) - this.margin; + } + }]); + + return Radial; + }(Pie); + + var Helpers = /*#__PURE__*/function () { + function Helpers(lineCtx) { + _classCallCheck(this, Helpers); + + this.w = lineCtx.w; + this.lineCtx = lineCtx; + } + + _createClass(Helpers, [{ + key: "sameValueSeriesFix", + value: function sameValueSeriesFix(i, series) { + var w = this.w; + + if (w.config.chart.type === 'line' && (w.config.fill.type === 'gradient' || w.config.fill.type[i] === 'gradient')) { + var coreUtils = new CoreUtils(this.lineCtx.ctx, w); // a small adjustment to allow gradient line to draw correctly for all same values + + /* #fix https://github.com/apexcharts/apexcharts.js/issues/358 */ + + if (coreUtils.seriesHaveSameValues(i)) { + var gSeries = series[i].slice(); + gSeries[gSeries.length - 1] = gSeries[gSeries.length - 1] + 0.000001; + series[i] = gSeries; + } + } + + return series; + } + }, { + key: "calculatePoints", + value: function calculatePoints(_ref) { + var series = _ref.series, + realIndex = _ref.realIndex, + x = _ref.x, + y = _ref.y, + i = _ref.i, + j = _ref.j, + prevY = _ref.prevY; + var w = this.w; + var ptX = []; + var ptY = []; + + if (j === 0) { + var xPT1st = this.lineCtx.categoryAxisCorrection + w.config.markers.offsetX; // the first point for line series + // we need to check whether it's not a time series, because a time series may + // start from the middle of the x axis + + if (w.globals.isXNumeric) { + xPT1st = (w.globals.seriesX[realIndex][0] - w.globals.minX) / this.lineCtx.xRatio + w.config.markers.offsetX; + } // push 2 points for the first data values + + + ptX.push(xPT1st); + ptY.push(Utils$1.isNumber(series[i][0]) ? prevY + w.config.markers.offsetY : null); + ptX.push(x + w.config.markers.offsetX); + ptY.push(Utils$1.isNumber(series[i][j + 1]) ? y + w.config.markers.offsetY : null); + } else { + ptX.push(x + w.config.markers.offsetX); + ptY.push(Utils$1.isNumber(series[i][j + 1]) ? y + w.config.markers.offsetY : null); + } + + var pointsPos = { + x: ptX, + y: ptY + }; + return pointsPos; + } + }, { + key: "checkPreviousPaths", + value: function checkPreviousPaths(_ref2) { + var pathFromLine = _ref2.pathFromLine, + pathFromArea = _ref2.pathFromArea, + realIndex = _ref2.realIndex; + var w = this.w; + + for (var pp = 0; pp < w.globals.previousPaths.length; pp++) { + var gpp = w.globals.previousPaths[pp]; + + if ((gpp.type === 'line' || gpp.type === 'area') && gpp.paths.length > 0 && parseInt(gpp.realIndex, 10) === parseInt(realIndex, 10)) { + if (gpp.type === 'line') { + this.lineCtx.appendPathFrom = false; + pathFromLine = w.globals.previousPaths[pp].paths[0].d; + } else if (gpp.type === 'area') { + this.lineCtx.appendPathFrom = false; + pathFromArea = w.globals.previousPaths[pp].paths[0].d; + + if (w.config.stroke.show && w.globals.previousPaths[pp].paths[1]) { + pathFromLine = w.globals.previousPaths[pp].paths[1].d; + } + } + } + } + + return { + pathFromLine: pathFromLine, + pathFromArea: pathFromArea + }; + } + }, { + key: "determineFirstPrevY", + value: function determineFirstPrevY(_ref3) { + var i = _ref3.i, + series = _ref3.series, + prevY = _ref3.prevY, + lineYPosition = _ref3.lineYPosition; + var w = this.w; + + if (typeof series[i][0] !== 'undefined') { + if (w.config.chart.stacked) { + if (i > 0) { + // 1st y value of previous series + lineYPosition = this.lineCtx.prevSeriesY[i - 1][0]; + } else { + // the first series will not have prevY values + lineYPosition = this.lineCtx.zeroY; + } + } else { + lineYPosition = this.lineCtx.zeroY; + } + + prevY = lineYPosition - series[i][0] / this.lineCtx.yRatio[this.lineCtx.yaxisIndex] + (this.lineCtx.isReversed ? series[i][0] / this.lineCtx.yRatio[this.lineCtx.yaxisIndex] : 0) * 2; + } else { + // the first value in the current series is null + if (w.config.chart.stacked && i > 0 && typeof series[i][0] === 'undefined') { + // check for undefined value (undefined value will occur when we clear the series while user clicks on legend to hide serieses) + for (var s = i - 1; s >= 0; s--) { + // for loop to get to 1st previous value until we get it + if (series[s][0] !== null && typeof series[s][0] !== 'undefined') { + lineYPosition = this.lineCtx.prevSeriesY[s][0]; + prevY = lineYPosition; + break; + } + } + } + } + + return { + prevY: prevY, + lineYPosition: lineYPosition + }; + } + }]); + + return Helpers; + }(); + + /** + * ApexCharts Line Class responsible for drawing Line / Area Charts. + * This class is also responsible for generating values for Bubble/Scatter charts, so need to rename it to Axis Charts to avoid confusions + * @module Line + **/ + + var Line = /*#__PURE__*/function () { + function Line(ctx, xyRatios, isPointsChart) { + _classCallCheck(this, Line); + + this.ctx = ctx; + this.w = ctx.w; + this.xyRatios = xyRatios; + this.pointsChart = !(this.w.config.chart.type !== 'bubble' && this.w.config.chart.type !== 'scatter') || isPointsChart; + this.scatter = new Scatter(this.ctx); + this.noNegatives = this.w.globals.minX === Number.MAX_VALUE; + this.lineHelpers = new Helpers(this); + this.markers = new Markers(this.ctx); + this.prevSeriesY = []; + this.categoryAxisCorrection = 0; + this.yaxisIndex = 0; + } + + _createClass(Line, [{ + key: "draw", + value: function draw(series, ptype, seriesIndex) { + var w = this.w; + var graphics = new Graphics(this.ctx); + var type = w.globals.comboCharts ? ptype : w.config.chart.type; + var ret = graphics.group({ + class: "apexcharts-".concat(type, "-series apexcharts-plot-series") + }); + var coreUtils = new CoreUtils(this.ctx, w); + this.yRatio = this.xyRatios.yRatio; + this.zRatio = this.xyRatios.zRatio; + this.xRatio = this.xyRatios.xRatio; + this.baseLineY = this.xyRatios.baseLineY; + series = coreUtils.getLogSeries(series); + this.yRatio = coreUtils.getLogYRatios(this.yRatio); // push all series in an array, so we can draw in reverse order (for stacked charts) + + var allSeries = []; + + for (var i = 0; i < series.length; i++) { + series = this.lineHelpers.sameValueSeriesFix(i, series); + var realIndex = w.globals.comboCharts ? seriesIndex[i] : i; + + this._initSerieVariables(series, i, realIndex); + + var yArrj = []; // hold y values of current iterating series + + var xArrj = []; // hold x values of current iterating series + + var x = w.globals.padHorizontal + this.categoryAxisCorrection; + var y = 1; + var linePaths = []; + var areaPaths = []; + this.ctx.series.addCollapsedClassToSeries(this.elSeries, realIndex); + + if (w.globals.isXNumeric && w.globals.seriesX.length > 0) { + x = (w.globals.seriesX[realIndex][0] - w.globals.minX) / this.xRatio; + } + + xArrj.push(x); + var pX = x; + var pY = void 0; + var prevX = pX; + var prevY = this.zeroY; + var lineYPosition = 0; // the first value in the current series is not null or undefined + + var firstPrevY = this.lineHelpers.determineFirstPrevY({ + i: i, + series: series, + prevY: prevY, + lineYPosition: lineYPosition + }); + prevY = firstPrevY.prevY; + yArrj.push(prevY); + pY = prevY; + + var pathsFrom = this._calculatePathsFrom({ + series: series, + i: i, + realIndex: realIndex, + prevX: prevX, + prevY: prevY + }); + + var paths = this._iterateOverDataPoints({ + series: series, + realIndex: realIndex, + i: i, + x: x, + y: y, + pX: pX, + pY: pY, + pathsFrom: pathsFrom, + linePaths: linePaths, + areaPaths: areaPaths, + seriesIndex: seriesIndex, + lineYPosition: lineYPosition, + xArrj: xArrj, + yArrj: yArrj + }); + + this._handlePaths({ + type: type, + realIndex: realIndex, + i: i, + paths: paths + }); + + this.elSeries.add(this.elPointsMain); + this.elSeries.add(this.elDataLabelsWrap); + allSeries.push(this.elSeries); + } + + if (w.config.chart.stacked) { + for (var s = allSeries.length; s > 0; s--) { + ret.add(allSeries[s - 1]); + } + } else { + for (var _s = 0; _s < allSeries.length; _s++) { + ret.add(allSeries[_s]); + } + } + + return ret; + } + }, { + key: "_initSerieVariables", + value: function _initSerieVariables(series, i, realIndex) { + var w = this.w; + var graphics = new Graphics(this.ctx); // width divided into equal parts + + this.xDivision = w.globals.gridWidth / (w.globals.dataPoints - (w.config.xaxis.tickPlacement === 'on' ? 1 : 0)); + this.strokeWidth = Array.isArray(w.config.stroke.width) ? w.config.stroke.width[realIndex] : w.config.stroke.width; + + if (this.yRatio.length > 1) { + this.yaxisIndex = realIndex; + } + + this.isReversed = w.config.yaxis[this.yaxisIndex] && w.config.yaxis[this.yaxisIndex].reversed; // zeroY is the 0 value in y series which can be used in negative charts + + this.zeroY = w.globals.gridHeight - this.baseLineY[this.yaxisIndex] - (this.isReversed ? w.globals.gridHeight : 0) + (this.isReversed ? this.baseLineY[this.yaxisIndex] * 2 : 0); + this.areaBottomY = this.zeroY; + + if (this.zeroY > w.globals.gridHeight || w.config.plotOptions.area.fillTo === 'end') { + this.areaBottomY = w.globals.gridHeight; + } + + this.categoryAxisCorrection = this.xDivision / 2; // el to which series will be drawn + + this.elSeries = graphics.group({ + class: "apexcharts-series", + seriesName: Utils$1.escapeString(w.globals.seriesNames[realIndex]) + }); // points + + this.elPointsMain = graphics.group({ + class: 'apexcharts-series-markers-wrap', + 'data:realIndex': realIndex + }); // eldatalabels + + this.elDataLabelsWrap = graphics.group({ + class: 'apexcharts-datalabels', + 'data:realIndex': realIndex + }); + var longestSeries = series[i].length === w.globals.dataPoints; + this.elSeries.attr({ + 'data:longestSeries': longestSeries, + rel: i + 1, + 'data:realIndex': realIndex + }); + this.appendPathFrom = true; + } + }, { + key: "_calculatePathsFrom", + value: function _calculatePathsFrom(_ref) { + var series = _ref.series, + i = _ref.i, + realIndex = _ref.realIndex, + prevX = _ref.prevX, + prevY = _ref.prevY; + var w = this.w; + var graphics = new Graphics(this.ctx); + var linePath, areaPath, pathFromLine, pathFromArea; + + if (series[i][0] === null) { + // when the first value itself is null, we need to move the pointer to a location where a null value is not found + for (var s = 0; s < series[i].length; s++) { + if (series[i][s] !== null) { + prevX = this.xDivision * s; + prevY = this.zeroY - series[i][s] / this.yRatio[this.yaxisIndex]; + linePath = graphics.move(prevX, prevY); + areaPath = graphics.move(prevX, this.areaBottomY); + break; + } + } + } else { + linePath = graphics.move(prevX, prevY); + areaPath = graphics.move(prevX, this.areaBottomY) + graphics.line(prevX, prevY); + } + + pathFromLine = graphics.move(-1, this.zeroY) + graphics.line(-1, this.zeroY); + pathFromArea = graphics.move(-1, this.zeroY) + graphics.line(-1, this.zeroY); + + if (w.globals.previousPaths.length > 0) { + var pathFrom = this.lineHelpers.checkPreviousPaths({ + pathFromLine: pathFromLine, + pathFromArea: pathFromArea, + realIndex: realIndex + }); + pathFromLine = pathFrom.pathFromLine; + pathFromArea = pathFrom.pathFromArea; + } + + return { + prevX: prevX, + prevY: prevY, + linePath: linePath, + areaPath: areaPath, + pathFromLine: pathFromLine, + pathFromArea: pathFromArea + }; + } + }, { + key: "_handlePaths", + value: function _handlePaths(_ref2) { + var type = _ref2.type, + realIndex = _ref2.realIndex, + i = _ref2.i, + paths = _ref2.paths; + var w = this.w; + var graphics = new Graphics(this.ctx); + var fill = new Fill(this.ctx); // push all current y values array to main PrevY Array + + this.prevSeriesY.push(paths.yArrj); // push all x val arrays into main xArr + + w.globals.seriesXvalues[realIndex] = paths.xArrj; + w.globals.seriesYvalues[realIndex] = paths.yArrj; + var forecast = w.config.forecastDataPoints; + + if (forecast.count > 0) { + var forecastCutoff = w.globals.seriesXvalues[realIndex][w.globals.seriesXvalues[realIndex].length - forecast.count - 1]; + var elForecastMask = graphics.drawRect(forecastCutoff, 0, w.globals.gridWidth, w.globals.gridHeight, 0); + w.globals.dom.elForecastMask.appendChild(elForecastMask.node); + var elNonForecastMask = graphics.drawRect(0, 0, forecastCutoff, w.globals.gridHeight, 0); + w.globals.dom.elNonForecastMask.appendChild(elNonForecastMask.node); + } // these elements will be shown after area path animation completes + + + if (!this.pointsChart) { + w.globals.delayedElements.push({ + el: this.elPointsMain.node, + index: realIndex + }); + } + + var defaultRenderedPathOptions = { + i: i, + realIndex: realIndex, + animationDelay: i, + initialSpeed: w.config.chart.animations.speed, + dataChangeSpeed: w.config.chart.animations.dynamicAnimation.speed, + className: "apexcharts-".concat(type) + }; + + if (type === 'area') { + var pathFill = fill.fillPath({ + seriesNumber: realIndex + }); + + for (var p = 0; p < paths.areaPaths.length; p++) { + var renderedPath = graphics.renderPaths(_objectSpread2(_objectSpread2({}, defaultRenderedPathOptions), {}, { + pathFrom: paths.pathFromArea, + pathTo: paths.areaPaths[p], + stroke: 'none', + strokeWidth: 0, + strokeLineCap: null, + fill: pathFill + })); + this.elSeries.add(renderedPath); + } + } + + if (w.config.stroke.show && !this.pointsChart) { + var lineFill = null; + + if (type === 'line') { + lineFill = fill.fillPath({ + seriesNumber: realIndex, + i: i + }); + } else { + if (w.config.stroke.fill.type === 'solid') { + lineFill = w.globals.stroke.colors[realIndex]; + } else { + var prevFill = w.config.fill; + w.config.fill = w.config.stroke.fill; + lineFill = fill.fillPath({ + seriesNumber: realIndex, + i: i + }); + w.config.fill = prevFill; + } + } + + for (var _p = 0; _p < paths.linePaths.length; _p++) { + var linePathCommonOpts = _objectSpread2(_objectSpread2({}, defaultRenderedPathOptions), {}, { + pathFrom: paths.pathFromLine, + pathTo: paths.linePaths[_p], + stroke: lineFill, + strokeWidth: this.strokeWidth, + strokeLineCap: w.config.stroke.lineCap, + fill: 'none' + }); + + var _renderedPath = graphics.renderPaths(linePathCommonOpts); + + this.elSeries.add(_renderedPath); + + if (forecast.count > 0) { + var renderedForecastPath = graphics.renderPaths(linePathCommonOpts); + renderedForecastPath.node.setAttribute('stroke-dasharray', forecast.dashArray); + + if (forecast.strokeWidth) { + renderedForecastPath.node.setAttribute('stroke-width', forecast.strokeWidth); + } + + this.elSeries.add(renderedForecastPath); + renderedForecastPath.attr('clip-path', "url(#forecastMask".concat(w.globals.cuid, ")")); + + _renderedPath.attr('clip-path', "url(#nonForecastMask".concat(w.globals.cuid, ")")); + } + } + } + } + }, { + key: "_iterateOverDataPoints", + value: function _iterateOverDataPoints(_ref3) { + var series = _ref3.series, + realIndex = _ref3.realIndex, + i = _ref3.i, + x = _ref3.x, + y = _ref3.y, + pX = _ref3.pX, + pY = _ref3.pY, + pathsFrom = _ref3.pathsFrom, + linePaths = _ref3.linePaths, + areaPaths = _ref3.areaPaths, + seriesIndex = _ref3.seriesIndex, + lineYPosition = _ref3.lineYPosition, + xArrj = _ref3.xArrj, + yArrj = _ref3.yArrj; + var w = this.w; + var graphics = new Graphics(this.ctx); + var yRatio = this.yRatio; + var prevY = pathsFrom.prevY, + linePath = pathsFrom.linePath, + areaPath = pathsFrom.areaPath, + pathFromLine = pathsFrom.pathFromLine, + pathFromArea = pathsFrom.pathFromArea; + var minY = Utils$1.isNumber(w.globals.minYArr[realIndex]) ? w.globals.minYArr[realIndex] : w.globals.minY; + var iterations = w.globals.dataPoints > 1 ? w.globals.dataPoints - 1 : w.globals.dataPoints; + + for (var j = 0; j < iterations; j++) { + var isNull = typeof series[i][j + 1] === 'undefined' || series[i][j + 1] === null; + + if (w.globals.isXNumeric) { + var sX = w.globals.seriesX[realIndex][j + 1]; + + if (typeof w.globals.seriesX[realIndex][j + 1] === 'undefined') { + /* fix #374 */ + sX = w.globals.seriesX[realIndex][iterations - 1]; + } + + x = (sX - w.globals.minX) / this.xRatio; + } else { + x = x + this.xDivision; + } + + if (w.config.chart.stacked) { + if (i > 0 && w.globals.collapsedSeries.length < w.config.series.length - 1) { + // a collapsed series in a stacked bar chart may provide wrong result for the next series, hence find the prevIndex of prev series which is not collapsed - fixes apexcharts.js#1372 + var prevIndex = function prevIndex(pi) { + var pii = pi; + + for (var cpi = 0; cpi < w.globals.series.length; cpi++) { + if (w.globals.collapsedSeriesIndices.indexOf(pi) > -1) { + pii--; + break; + } + } + + return pii >= 0 ? pii : 0; + }; + + lineYPosition = this.prevSeriesY[prevIndex(i - 1)][j + 1]; + } else { + // the first series will not have prevY values + lineYPosition = this.zeroY; + } + } else { + lineYPosition = this.zeroY; + } + + if (isNull) { + y = lineYPosition - minY / yRatio[this.yaxisIndex] + (this.isReversed ? minY / yRatio[this.yaxisIndex] : 0) * 2; + } else { + y = lineYPosition - series[i][j + 1] / yRatio[this.yaxisIndex] + (this.isReversed ? series[i][j + 1] / yRatio[this.yaxisIndex] : 0) * 2; + } // push current X + + + xArrj.push(x); // push current Y that will be used as next series's bottom position + + yArrj.push(y); + var pointsPos = this.lineHelpers.calculatePoints({ + series: series, + x: x, + y: y, + realIndex: realIndex, + i: i, + j: j, + prevY: prevY + }); + + var calculatedPaths = this._createPaths({ + series: series, + i: i, + realIndex: realIndex, + j: j, + x: x, + y: y, + pX: pX, + pY: pY, + linePath: linePath, + areaPath: areaPath, + linePaths: linePaths, + areaPaths: areaPaths, + seriesIndex: seriesIndex + }); + + areaPaths = calculatedPaths.areaPaths; + linePaths = calculatedPaths.linePaths; + pX = calculatedPaths.pX; + pY = calculatedPaths.pY; + areaPath = calculatedPaths.areaPath; + linePath = calculatedPaths.linePath; + + if (this.appendPathFrom) { + pathFromLine = pathFromLine + graphics.line(x, this.zeroY); + pathFromArea = pathFromArea + graphics.line(x, this.zeroY); + } + + this.handleNullDataPoints(series, pointsPos, i, j, realIndex); + + this._handleMarkersAndLabels({ + pointsPos: pointsPos, + series: series, + x: x, + y: y, + prevY: prevY, + i: i, + j: j, + realIndex: realIndex + }); + } + + return { + yArrj: yArrj, + xArrj: xArrj, + pathFromArea: pathFromArea, + areaPaths: areaPaths, + pathFromLine: pathFromLine, + linePaths: linePaths + }; + } + }, { + key: "_handleMarkersAndLabels", + value: function _handleMarkersAndLabels(_ref4) { + var pointsPos = _ref4.pointsPos; + _ref4.series; + _ref4.x; + _ref4.y; + _ref4.prevY; + var i = _ref4.i, + j = _ref4.j, + realIndex = _ref4.realIndex; + var w = this.w; + var dataLabels = new DataLabels(this.ctx); + + if (!this.pointsChart) { + if (w.globals.series[i].length > 1) { + this.elPointsMain.node.classList.add('apexcharts-element-hidden'); + } + + var elPointsWrap = this.markers.plotChartMarkers(pointsPos, realIndex, j + 1); + + if (elPointsWrap !== null) { + this.elPointsMain.add(elPointsWrap); + } + } else { + // scatter / bubble chart points creation + this.scatter.draw(this.elSeries, j, { + realIndex: realIndex, + pointsPos: pointsPos, + zRatio: this.zRatio, + elParent: this.elPointsMain + }); + } + + var drawnLabels = dataLabels.drawDataLabel(pointsPos, realIndex, j + 1, null); + + if (drawnLabels !== null) { + this.elDataLabelsWrap.add(drawnLabels); + } + } + }, { + key: "_createPaths", + value: function _createPaths(_ref5) { + var series = _ref5.series, + i = _ref5.i, + realIndex = _ref5.realIndex, + j = _ref5.j, + x = _ref5.x, + y = _ref5.y, + pX = _ref5.pX, + pY = _ref5.pY, + linePath = _ref5.linePath, + areaPath = _ref5.areaPath, + linePaths = _ref5.linePaths, + areaPaths = _ref5.areaPaths, + seriesIndex = _ref5.seriesIndex; + var w = this.w; + var graphics = new Graphics(this.ctx); + var curve = w.config.stroke.curve; + var areaBottomY = this.areaBottomY; + + if (Array.isArray(w.config.stroke.curve)) { + if (Array.isArray(seriesIndex)) { + curve = w.config.stroke.curve[seriesIndex[i]]; + } else { + curve = w.config.stroke.curve[i]; + } + } // logic of smooth curve derived from chartist + // CREDITS: https://gionkunz.github.io/chartist-js/ + + + if (curve === 'smooth') { + var length = (x - pX) * 0.35; + + if (w.globals.hasNullValues) { + if (series[i][j] !== null) { + if (series[i][j + 1] !== null) { + linePath = graphics.move(pX, pY) + graphics.curve(pX + length, pY, x - length, y, x + 1, y); + areaPath = graphics.move(pX + 1, pY) + graphics.curve(pX + length, pY, x - length, y, x + 1, y) + graphics.line(x, areaBottomY) + graphics.line(pX, areaBottomY) + 'z'; + } else { + linePath = graphics.move(pX, pY); + areaPath = graphics.move(pX, pY) + 'z'; + } + } + + linePaths.push(linePath); + areaPaths.push(areaPath); + } else { + linePath = linePath + graphics.curve(pX + length, pY, x - length, y, x, y); + areaPath = areaPath + graphics.curve(pX + length, pY, x - length, y, x, y); + } + + pX = x; + pY = y; + + if (j === series[i].length - 2) { + // last loop, close path + areaPath = areaPath + graphics.curve(pX, pY, x, y, x, areaBottomY) + graphics.move(x, y) + 'z'; + + if (!w.globals.hasNullValues) { + linePaths.push(linePath); + areaPaths.push(areaPath); + } + } + } else { + if (series[i][j + 1] === null) { + linePath = linePath + graphics.move(x, y); + var numericOrCatX = w.globals.isXNumeric ? (w.globals.seriesX[realIndex][j] - w.globals.minX) / this.xRatio : x - this.xDivision; + areaPath = areaPath + graphics.line(numericOrCatX, areaBottomY) + graphics.move(x, y) + 'z'; + } + + if (series[i][j] === null) { + linePath = linePath + graphics.move(x, y); + areaPath = areaPath + graphics.move(x, areaBottomY); + } + + if (curve === 'stepline') { + linePath = linePath + graphics.line(x, null, 'H') + graphics.line(null, y, 'V'); + areaPath = areaPath + graphics.line(x, null, 'H') + graphics.line(null, y, 'V'); + } else if (curve === 'straight') { + linePath = linePath + graphics.line(x, y); + areaPath = areaPath + graphics.line(x, y); + } + + if (j === series[i].length - 2) { + // last loop, close path + areaPath = areaPath + graphics.line(x, areaBottomY) + graphics.move(x, y) + 'z'; + linePaths.push(linePath); + areaPaths.push(areaPath); + } + } + + return { + linePaths: linePaths, + areaPaths: areaPaths, + pX: pX, + pY: pY, + linePath: linePath, + areaPath: areaPath + }; + } + }, { + key: "handleNullDataPoints", + value: function handleNullDataPoints(series, pointsPos, i, j, realIndex) { + var w = this.w; + + if (series[i][j] === null && w.config.markers.showNullDataPoints || series[i].length === 1) { + // fixes apexcharts.js#1282, #1252 + var elPointsWrap = this.markers.plotChartMarkers(pointsPos, realIndex, j + 1, this.strokeWidth - w.config.markers.strokeWidth / 2, true); + + if (elPointsWrap !== null) { + this.elPointsMain.add(elPointsWrap); + } + } + } + }]); + + return Line; + }(); + + /* + * treemap-squarify.js - open source implementation of squarified treemaps + * + * Treemap Squared 0.5 - Treemap Charting library + * + * https://github.com/imranghory/treemap-squared/ + * + * Copyright (c) 2012 Imran Ghory (imranghory@gmail.com) + * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license. + * + * + * Implementation of the squarify treemap algorithm described in: + * + * Bruls, Mark; Huizing, Kees; van Wijk, Jarke J. (2000), "Squarified treemaps" + * in de Leeuw, W.; van Liere, R., Data Visualization 2000: + * Proc. Joint Eurographics and IEEE TCVG Symp. on Visualization, Springer-Verlag, pp. 33–42. + * + * Paper is available online at: http://www.win.tue.nl/~vanwijk/stm.pdf + * + * The code in this file is completeley decoupled from the drawing code so it should be trivial + * to port it to any other vector drawing library. Given an array of datapoints this library returns + * an array of cartesian coordinates that represent the rectangles that make up the treemap. + * + * The library also supports multidimensional data (nested treemaps) and performs normalization on the data. + * + * See the README file for more details. + */ + window.TreemapSquared = {}; + + (function () { + + window.TreemapSquared.generate = function () { + function Container(xoffset, yoffset, width, height) { + this.xoffset = xoffset; // offset from the the top left hand corner + + this.yoffset = yoffset; // ditto + + this.height = height; + this.width = width; + + this.shortestEdge = function () { + return Math.min(this.height, this.width); + }; // getCoordinates - for a row of boxes which we've placed + // return an array of their cartesian coordinates + + + this.getCoordinates = function (row) { + var coordinates = []; + var subxoffset = this.xoffset, + subyoffset = this.yoffset; //our offset within the container + + var areawidth = sumArray(row) / this.height; + var areaheight = sumArray(row) / this.width; + var i; + + if (this.width >= this.height) { + for (i = 0; i < row.length; i++) { + coordinates.push([subxoffset, subyoffset, subxoffset + areawidth, subyoffset + row[i] / areawidth]); + subyoffset = subyoffset + row[i] / areawidth; + } + } else { + for (i = 0; i < row.length; i++) { + coordinates.push([subxoffset, subyoffset, subxoffset + row[i] / areaheight, subyoffset + areaheight]); + subxoffset = subxoffset + row[i] / areaheight; + } + } + + return coordinates; + }; // cutArea - once we've placed some boxes into an row we then need to identify the remaining area, + // this function takes the area of the boxes we've placed and calculates the location and + // dimensions of the remaining space and returns a container box defined by the remaining area + + + this.cutArea = function (area) { + var newcontainer; + + if (this.width >= this.height) { + var areawidth = area / this.height; + var newwidth = this.width - areawidth; + newcontainer = new Container(this.xoffset + areawidth, this.yoffset, newwidth, this.height); + } else { + var areaheight = area / this.width; + var newheight = this.height - areaheight; + newcontainer = new Container(this.xoffset, this.yoffset + areaheight, this.width, newheight); + } + + return newcontainer; + }; + } // normalize - the Bruls algorithm assumes we're passing in areas that nicely fit into our + // container box, this method takes our raw data and normalizes the data values into + // area values so that this assumption is valid. + + + function normalize(data, area) { + var normalizeddata = []; + var sum = sumArray(data); + var multiplier = area / sum; + var i; + + for (i = 0; i < data.length; i++) { + normalizeddata[i] = data[i] * multiplier; + } + + return normalizeddata; + } // treemapMultidimensional - takes multidimensional data (aka [[23,11],[11,32]] - nested array) + // and recursively calls itself using treemapSingledimensional + // to create a patchwork of treemaps and merge them + + + function treemapMultidimensional(data, width, height, xoffset, yoffset) { + xoffset = typeof xoffset === 'undefined' ? 0 : xoffset; + yoffset = typeof yoffset === 'undefined' ? 0 : yoffset; + var mergeddata = []; + var mergedtreemap; + var results = []; + var i; + + if (isArray(data[0])) { + // if we've got more dimensions of depth + for (i = 0; i < data.length; i++) { + mergeddata[i] = sumMultidimensionalArray(data[i]); + } + + mergedtreemap = treemapSingledimensional(mergeddata, width, height, xoffset, yoffset); + + for (i = 0; i < data.length; i++) { + results.push(treemapMultidimensional(data[i], mergedtreemap[i][2] - mergedtreemap[i][0], mergedtreemap[i][3] - mergedtreemap[i][1], mergedtreemap[i][0], mergedtreemap[i][1])); + } + } else { + results = treemapSingledimensional(data, width, height, xoffset, yoffset); + } + + return results; + } // treemapSingledimensional - simple wrapper around squarify + + + function treemapSingledimensional(data, width, height, xoffset, yoffset) { + xoffset = typeof xoffset === 'undefined' ? 0 : xoffset; + yoffset = typeof yoffset === 'undefined' ? 0 : yoffset; + var rawtreemap = squarify(normalize(data, width * height), [], new Container(xoffset, yoffset, width, height), []); + return flattenTreemap(rawtreemap); + } // flattenTreemap - squarify implementation returns an array of arrays of coordinates + // because we have a new array everytime we switch to building a new row + // this converts it into an array of coordinates. + + + function flattenTreemap(rawtreemap) { + var flattreemap = []; + var i, j; + + for (i = 0; i < rawtreemap.length; i++) { + for (j = 0; j < rawtreemap[i].length; j++) { + flattreemap.push(rawtreemap[i][j]); + } + } + + return flattreemap; + } // squarify - as per the Bruls paper + // plus coordinates stack and containers so we get + // usable data out of it + + + function squarify(data, currentrow, container, stack) { + var length; + var nextdatapoint; + var newcontainer; + + if (data.length === 0) { + stack.push(container.getCoordinates(currentrow)); + return; + } + + length = container.shortestEdge(); + nextdatapoint = data[0]; + + if (improvesRatio(currentrow, nextdatapoint, length)) { + currentrow.push(nextdatapoint); + squarify(data.slice(1), currentrow, container, stack); + } else { + newcontainer = container.cutArea(sumArray(currentrow), stack); + stack.push(container.getCoordinates(currentrow)); + squarify(data, [], newcontainer, stack); + } + + return stack; + } // improveRatio - implements the worse calculation and comparision as given in Bruls + // (note the error in the original paper; fixed here) + + + function improvesRatio(currentrow, nextnode, length) { + var newrow; + + if (currentrow.length === 0) { + return true; + } + + newrow = currentrow.slice(); + newrow.push(nextnode); + var currentratio = calculateRatio(currentrow, length); + var newratio = calculateRatio(newrow, length); // the pseudocode in the Bruls paper has the direction of the comparison + // wrong, this is the correct one. + + return currentratio >= newratio; + } // calculateRatio - calculates the maximum width to height ratio of the + // boxes in this row + + + function calculateRatio(row, length) { + var min = Math.min.apply(Math, row); + var max = Math.max.apply(Math, row); + var sum = sumArray(row); + return Math.max(Math.pow(length, 2) * max / Math.pow(sum, 2), Math.pow(sum, 2) / (Math.pow(length, 2) * min)); + } // isArray - checks if arr is an array + + + function isArray(arr) { + return arr && arr.constructor === Array; + } // sumArray - sums a single dimensional array + + + function sumArray(arr) { + var sum = 0; + var i; + + for (i = 0; i < arr.length; i++) { + sum += arr[i]; + } + + return sum; + } // sumMultidimensionalArray - sums the values in a nested array (aka [[0,1],[[2,3]]]) + + + function sumMultidimensionalArray(arr) { + var i, + total = 0; + + if (isArray(arr[0])) { + for (i = 0; i < arr.length; i++) { + total += sumMultidimensionalArray(arr[i]); + } + } else { + total = sumArray(arr); + } + + return total; + } + + return treemapMultidimensional; + }(); + })(); + + /** + * ApexCharts TreemapChart Class. + * @module TreemapChart + **/ + + var TreemapChart = /*#__PURE__*/function () { + function TreemapChart(ctx, xyRatios) { + _classCallCheck(this, TreemapChart); + + this.ctx = ctx; + this.w = ctx.w; + this.strokeWidth = this.w.config.stroke.width; + this.helpers = new TreemapHelpers(ctx); + this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation; + this.labels = []; + } + + _createClass(TreemapChart, [{ + key: "draw", + value: function draw(series) { + var _this = this; + + var w = this.w; + var graphics = new Graphics(this.ctx); + var fill = new Fill(this.ctx); + var ret = graphics.group({ + class: 'apexcharts-treemap' + }); + if (w.globals.noData) return ret; + var ser = []; + series.forEach(function (s) { + var d = s.map(function (v) { + return Math.abs(v); + }); + ser.push(d); + }); + this.negRange = this.helpers.checkColorRange(); + w.config.series.forEach(function (s, i) { + s.data.forEach(function (l) { + if (!Array.isArray(_this.labels[i])) _this.labels[i] = []; + + _this.labels[i].push(l.x); + }); + }); + var nodes = window.TreemapSquared.generate(ser, w.globals.gridWidth, w.globals.gridHeight); + nodes.forEach(function (node, i) { + var elSeries = graphics.group({ + class: "apexcharts-series apexcharts-treemap-series", + seriesName: Utils$1.escapeString(w.globals.seriesNames[i]), + rel: i + 1, + 'data:realIndex': i + }); + + if (w.config.chart.dropShadow.enabled) { + var shadow = w.config.chart.dropShadow; + var filters = new Filters(_this.ctx); + filters.dropShadow(ret, shadow, i); + } + + var elDataLabelWrap = graphics.group({ + class: 'apexcharts-data-labels' + }); + node.forEach(function (r, j) { + var x1 = r[0]; + var y1 = r[1]; + var x2 = r[2]; + var y2 = r[3]; + var elRect = graphics.drawRect(x1, y1, x2 - x1, y2 - y1, 0, '#fff', 1, _this.strokeWidth, w.config.plotOptions.treemap.useFillColorAsStroke ? color : w.globals.stroke.colors[i]); + elRect.attr({ + cx: x1, + cy: y1, + index: i, + i: i, + j: j, + width: x2 - x1, + height: y2 - y1 + }); + + var colorProps = _this.helpers.getShadeColor(w.config.chart.type, i, j, _this.negRange); + + var color = colorProps.color; + + if (typeof w.config.series[i].data[j] !== 'undefined' && w.config.series[i].data[j].fillColor) { + color = w.config.series[i].data[j].fillColor; + } + + var pathFill = fill.fillPath({ + color: color, + seriesNumber: i, + dataPointIndex: j + }); + elRect.node.classList.add('apexcharts-treemap-rect'); + elRect.attr({ + fill: pathFill + }); + + _this.helpers.addListeners(elRect); + + var fromRect = { + x: x1 + (x2 - x1) / 2, + y: y1 + (y2 - y1) / 2, + width: 0, + height: 0 + }; + var toRect = { + x: x1, + y: y1, + width: x2 - x1, + height: y2 - y1 + }; + + if (w.config.chart.animations.enabled && !w.globals.dataChanged) { + var speed = 1; + + if (!w.globals.resized) { + speed = w.config.chart.animations.speed; + } + + _this.animateTreemap(elRect, fromRect, toRect, speed); + } + + if (w.globals.dataChanged) { + var _speed = 1; + + if (_this.dynamicAnim.enabled && w.globals.shouldAnimate) { + _speed = _this.dynamicAnim.speed; + + if (w.globals.previousPaths[i] && w.globals.previousPaths[i][j] && w.globals.previousPaths[i][j].rect) { + fromRect = w.globals.previousPaths[i][j].rect; + } + + _this.animateTreemap(elRect, fromRect, toRect, _speed); + } + } + + var fontSize = _this.getFontSize(r); + + var formattedText = w.config.dataLabels.formatter(_this.labels[i][j], { + value: w.globals.series[i][j], + seriesIndex: i, + dataPointIndex: j, + w: w + }); + + var dataLabels = _this.helpers.calculateDataLabels({ + text: formattedText, + x: (x1 + x2) / 2, + y: (y1 + y2) / 2 + _this.strokeWidth / 2 + fontSize / 3, + i: i, + j: j, + colorProps: colorProps, + fontSize: fontSize, + series: series + }); + + if (w.config.dataLabels.enabled && dataLabels) { + _this.rotateToFitLabel(dataLabels, fontSize, formattedText, x1, y1, x2, y2); + } + + elSeries.add(elRect); + + if (dataLabels !== null) { + elSeries.add(dataLabels); + } + }); + elSeries.add(elDataLabelWrap); + ret.add(elSeries); + }); + return ret; + } // This calculates a font-size based upon + // average label length and the size of the box the label is + // going into. The maximum font size is set in chart config. + + }, { + key: "getFontSize", + value: function getFontSize(coordinates) { + var w = this.w; // total length of labels (i.e [["Italy"],["Spain", "Greece"]] -> 16) + + function totalLabelLength(arr) { + var i, + total = 0; + + if (Array.isArray(arr[0])) { + for (i = 0; i < arr.length; i++) { + total += totalLabelLength(arr[i]); + } + } else { + for (i = 0; i < arr.length; i++) { + total += arr[i].length; + } + } + + return total; + } // count of labels (i.e [["Italy"],["Spain", "Greece"]] -> 3) + + + function countLabels(arr) { + var i, + total = 0; + + if (Array.isArray(arr[0])) { + for (i = 0; i < arr.length; i++) { + total += countLabels(arr[i]); + } + } else { + for (i = 0; i < arr.length; i++) { + total += 1; + } + } + + return total; + } + + var averagelabelsize = totalLabelLength(this.labels) / countLabels(this.labels); + + function fontSize(width, height) { + // the font size should be proportional to the size of the box (and the value) + // otherwise you can end up creating a visual distortion where two boxes of identical + // size have different sized labels, and thus make it look as if the two boxes + // represent different sizes + var area = width * height; + var arearoot = Math.pow(area, 0.5); + return Math.min(arearoot / averagelabelsize, parseInt(w.config.dataLabels.style.fontSize, 10)); + } + + return fontSize(coordinates[2] - coordinates[0], coordinates[3] - coordinates[1]); + } + }, { + key: "rotateToFitLabel", + value: function rotateToFitLabel(elText, fontSize, text, x1, y1, x2, y2) { + var graphics = new Graphics(this.ctx); + var textRect = graphics.getTextRects(text, fontSize); //if the label fits better sideways then rotate it + + if (textRect.width + this.w.config.stroke.width + 5 > x2 - x1 && textRect.width <= y2 - y1) { + var labelRotatingCenter = graphics.rotateAroundCenter(elText.node); + elText.node.setAttribute('transform', "rotate(-90 ".concat(labelRotatingCenter.x, " ").concat(labelRotatingCenter.y, ")")); + } + } + }, { + key: "animateTreemap", + value: function animateTreemap(el, fromRect, toRect, speed) { + var animations = new Animations(this.ctx); + animations.animateRect(el, { + x: fromRect.x, + y: fromRect.y, + width: fromRect.width, + height: fromRect.height + }, { + x: toRect.x, + y: toRect.y, + width: toRect.width, + height: toRect.height + }, speed, function () { + animations.animationCompleted(el); + }); + } + }]); + + return TreemapChart; + }(); + + var MINUTES_IN_DAY = 24 * 60; + var SECONDS_IN_DAY = MINUTES_IN_DAY * 60; + var MIN_ZOOM_DAYS = 10 / SECONDS_IN_DAY; + /** + * ApexCharts TimeScale Class for generating time ticks for x-axis. + * + * @module TimeScale + **/ + + var TimeScale = /*#__PURE__*/function () { + function TimeScale(ctx) { + _classCallCheck(this, TimeScale); + + this.ctx = ctx; + this.w = ctx.w; + this.timeScaleArray = []; + this.utc = this.w.config.xaxis.labels.datetimeUTC; + } + + _createClass(TimeScale, [{ + key: "calculateTimeScaleTicks", + value: function calculateTimeScaleTicks(minX, maxX) { + var _this = this; + + var w = this.w; // null check when no series to show + + if (w.globals.allSeriesCollapsed) { + w.globals.labels = []; + w.globals.timescaleLabels = []; + return []; + } + + var dt = new DateTime(this.ctx); + var daysDiff = (maxX - minX) / (1000 * SECONDS_IN_DAY); + this.determineInterval(daysDiff); + w.globals.disableZoomIn = false; + w.globals.disableZoomOut = false; + + if (daysDiff < MIN_ZOOM_DAYS) { + w.globals.disableZoomIn = true; + } else if (daysDiff > 50000) { + w.globals.disableZoomOut = true; + } + + var timeIntervals = dt.getTimeUnitsfromTimestamp(minX, maxX, this.utc); + var daysWidthOnXAxis = w.globals.gridWidth / daysDiff; + var hoursWidthOnXAxis = daysWidthOnXAxis / 24; + var minutesWidthOnXAxis = hoursWidthOnXAxis / 60; + var secondsWidthOnXAxis = minutesWidthOnXAxis / 60; + var numberOfHours = Math.floor(daysDiff * 24); + var numberOfMinutes = Math.floor(daysDiff * MINUTES_IN_DAY); + var numberOfSeconds = Math.floor(daysDiff * SECONDS_IN_DAY); + var numberOfDays = Math.floor(daysDiff); + var numberOfMonths = Math.floor(daysDiff / 30); + var numberOfYears = Math.floor(daysDiff / 365); + var firstVal = { + minMillisecond: timeIntervals.minMillisecond, + minSecond: timeIntervals.minSecond, + minMinute: timeIntervals.minMinute, + minHour: timeIntervals.minHour, + minDate: timeIntervals.minDate, + minMonth: timeIntervals.minMonth, + minYear: timeIntervals.minYear + }; + var currentMillisecond = firstVal.minMillisecond; + var currentSecond = firstVal.minSecond; + var currentMinute = firstVal.minMinute; + var currentHour = firstVal.minHour; + var currentMonthDate = firstVal.minDate; + var currentDate = firstVal.minDate; + var currentMonth = firstVal.minMonth; + var currentYear = firstVal.minYear; + var params = { + firstVal: firstVal, + currentMillisecond: currentMillisecond, + currentSecond: currentSecond, + currentMinute: currentMinute, + currentHour: currentHour, + currentMonthDate: currentMonthDate, + currentDate: currentDate, + currentMonth: currentMonth, + currentYear: currentYear, + daysWidthOnXAxis: daysWidthOnXAxis, + hoursWidthOnXAxis: hoursWidthOnXAxis, + minutesWidthOnXAxis: minutesWidthOnXAxis, + secondsWidthOnXAxis: secondsWidthOnXAxis, + numberOfSeconds: numberOfSeconds, + numberOfMinutes: numberOfMinutes, + numberOfHours: numberOfHours, + numberOfDays: numberOfDays, + numberOfMonths: numberOfMonths, + numberOfYears: numberOfYears + }; + + switch (this.tickInterval) { + case 'years': + { + this.generateYearScale(params); + break; + } + + case 'months': + case 'half_year': + { + this.generateMonthScale(params); + break; + } + + case 'months_days': + case 'months_fortnight': + case 'days': + case 'week_days': + { + this.generateDayScale(params); + break; + } + + case 'hours': + { + this.generateHourScale(params); + break; + } + + case 'minutes_fives': + case 'minutes': + this.generateMinuteScale(params); + break; + + case 'seconds_tens': + case 'seconds_fives': + case 'seconds': + this.generateSecondScale(params); + break; + } // first, we will adjust the month values index + // as in the upper function, it is starting from 0 + // we will start them from 1 + + + var adjustedMonthInTimeScaleArray = this.timeScaleArray.map(function (ts) { + var defaultReturn = { + position: ts.position, + unit: ts.unit, + year: ts.year, + day: ts.day ? ts.day : 1, + hour: ts.hour ? ts.hour : 0, + month: ts.month + 1 + }; + + if (ts.unit === 'month') { + return _objectSpread2(_objectSpread2({}, defaultReturn), {}, { + day: 1, + value: ts.value + 1 + }); + } else if (ts.unit === 'day' || ts.unit === 'hour') { + return _objectSpread2(_objectSpread2({}, defaultReturn), {}, { + value: ts.value + }); + } else if (ts.unit === 'minute') { + return _objectSpread2(_objectSpread2({}, defaultReturn), {}, { + value: ts.value, + minute: ts.value + }); + } else if (ts.unit === 'second') { + return _objectSpread2(_objectSpread2({}, defaultReturn), {}, { + value: ts.value, + minute: ts.minute, + second: ts.second + }); + } + + return ts; + }); + var filteredTimeScale = adjustedMonthInTimeScaleArray.filter(function (ts) { + var modulo = 1; + var ticks = Math.ceil(w.globals.gridWidth / 120); + var value = ts.value; + + if (w.config.xaxis.tickAmount !== undefined) { + ticks = w.config.xaxis.tickAmount; + } + + if (adjustedMonthInTimeScaleArray.length > ticks) { + modulo = Math.floor(adjustedMonthInTimeScaleArray.length / ticks); + } + + var shouldNotSkipUnit = false; // there is a big change in unit i.e days to months + + var shouldNotPrint = false; // should skip these values + + switch (_this.tickInterval) { + case 'years': + // make years label denser + if (ts.unit === 'year') { + shouldNotSkipUnit = true; + } + + break; + + case 'half_year': + modulo = 7; + + if (ts.unit === 'year') { + shouldNotSkipUnit = true; + } + + break; + + case 'months': + modulo = 1; + + if (ts.unit === 'year') { + shouldNotSkipUnit = true; + } + + break; + + case 'months_fortnight': + modulo = 15; + + if (ts.unit === 'year' || ts.unit === 'month') { + shouldNotSkipUnit = true; + } + + if (value === 30) { + shouldNotPrint = true; + } + + break; + + case 'months_days': + modulo = 10; + + if (ts.unit === 'month') { + shouldNotSkipUnit = true; + } + + if (value === 30) { + shouldNotPrint = true; + } + + break; + + case 'week_days': + modulo = 8; + + if (ts.unit === 'month') { + shouldNotSkipUnit = true; + } + + break; + + case 'days': + modulo = 1; + + if (ts.unit === 'month') { + shouldNotSkipUnit = true; + } + + break; + + case 'hours': + if (ts.unit === 'day') { + shouldNotSkipUnit = true; + } + + break; + + case 'minutes_fives': + if (value % 5 !== 0) { + shouldNotPrint = true; + } + + break; + + case 'seconds_tens': + if (value % 10 !== 0) { + shouldNotPrint = true; + } + + break; + + case 'seconds_fives': + if (value % 5 !== 0) { + shouldNotPrint = true; + } + + break; + } + + if (_this.tickInterval === 'hours' || _this.tickInterval === 'minutes_fives' || _this.tickInterval === 'seconds_tens' || _this.tickInterval === 'seconds_fives') { + if (!shouldNotPrint) { + return true; + } + } else { + if ((value % modulo === 0 || shouldNotSkipUnit) && !shouldNotPrint) { + return true; + } + } + }); + return filteredTimeScale; + } + }, { + key: "recalcDimensionsBasedOnFormat", + value: function recalcDimensionsBasedOnFormat(filteredTimeScale, inverted) { + var w = this.w; + var reformattedTimescaleArray = this.formatDates(filteredTimeScale); + var removedOverlappingTS = this.removeOverlappingTS(reformattedTimescaleArray); + w.globals.timescaleLabels = removedOverlappingTS.slice(); // at this stage, we need to re-calculate coords of the grid as timeline labels may have altered the xaxis labels coords + // The reason we can't do this prior to this stage is because timeline labels depends on gridWidth, and as the ticks are calculated based on available gridWidth, there can be unknown number of ticks generated for different minX and maxX + // Dependency on Dimensions(), need to refactor correctly + // TODO - find an alternate way to avoid calling this Heavy method twice + + var dimensions = new Dimensions(this.ctx); + dimensions.plotCoords(); + } + }, { + key: "determineInterval", + value: function determineInterval(daysDiff) { + var yearsDiff = daysDiff / 365; + var hoursDiff = daysDiff * 24; + var minutesDiff = hoursDiff * 60; + var secondsDiff = minutesDiff * 60; + + switch (true) { + case yearsDiff > 5: + this.tickInterval = 'years'; + break; + + case daysDiff > 800: + this.tickInterval = 'half_year'; + break; + + case daysDiff > 180: + this.tickInterval = 'months'; + break; + + case daysDiff > 90: + this.tickInterval = 'months_fortnight'; + break; + + case daysDiff > 60: + this.tickInterval = 'months_days'; + break; + + case daysDiff > 30: + this.tickInterval = 'week_days'; + break; + + case daysDiff > 2: + this.tickInterval = 'days'; + break; + + case hoursDiff > 2.4: + this.tickInterval = 'hours'; + break; + + case minutesDiff > 15: + this.tickInterval = 'minutes_fives'; + break; + + case minutesDiff > 5: + this.tickInterval = 'minutes'; + break; + + case minutesDiff > 1: + this.tickInterval = 'seconds_tens'; + break; + + case secondsDiff > 20: + this.tickInterval = 'seconds_fives'; + break; + + default: + this.tickInterval = 'seconds'; + break; + } + } + }, { + key: "generateYearScale", + value: function generateYearScale(_ref) { + var firstVal = _ref.firstVal, + currentMonth = _ref.currentMonth, + currentYear = _ref.currentYear, + daysWidthOnXAxis = _ref.daysWidthOnXAxis, + numberOfYears = _ref.numberOfYears; + var firstTickValue = firstVal.minYear; + var firstTickPosition = 0; + var dt = new DateTime(this.ctx); + var unit = 'year'; + + if (firstVal.minDate > 1 || firstVal.minMonth > 0) { + var remainingDays = dt.determineRemainingDaysOfYear(firstVal.minYear, firstVal.minMonth, firstVal.minDate); // remainingDaysofFirstMonth is used to reacht the 2nd tick position + + var remainingDaysOfFirstYear = dt.determineDaysOfYear(firstVal.minYear) - remainingDays + 1; // calculate the first tick position + + firstTickPosition = remainingDaysOfFirstYear * daysWidthOnXAxis; + firstTickValue = firstVal.minYear + 1; // push the first tick in the array + + this.timeScaleArray.push({ + position: firstTickPosition, + value: firstTickValue, + unit: unit, + year: firstTickValue, + month: Utils$1.monthMod(currentMonth + 1) + }); + } else if (firstVal.minDate === 1 && firstVal.minMonth === 0) { + // push the first tick in the array + this.timeScaleArray.push({ + position: firstTickPosition, + value: firstTickValue, + unit: unit, + year: currentYear, + month: Utils$1.monthMod(currentMonth + 1) + }); + } + + var year = firstTickValue; + var pos = firstTickPosition; // keep drawing rest of the ticks + + for (var i = 0; i < numberOfYears; i++) { + year++; + pos = dt.determineDaysOfYear(year - 1) * daysWidthOnXAxis + pos; + this.timeScaleArray.push({ + position: pos, + value: year, + unit: unit, + year: year, + month: 1 + }); + } + } + }, { + key: "generateMonthScale", + value: function generateMonthScale(_ref2) { + var firstVal = _ref2.firstVal, + currentMonthDate = _ref2.currentMonthDate, + currentMonth = _ref2.currentMonth, + currentYear = _ref2.currentYear, + daysWidthOnXAxis = _ref2.daysWidthOnXAxis, + numberOfMonths = _ref2.numberOfMonths; + var firstTickValue = currentMonth; + var firstTickPosition = 0; + var dt = new DateTime(this.ctx); + var unit = 'month'; + var yrCounter = 0; + + if (firstVal.minDate > 1) { + // remainingDaysofFirstMonth is used to reacht the 2nd tick position + var remainingDaysOfFirstMonth = dt.determineDaysOfMonths(currentMonth + 1, firstVal.minYear) - currentMonthDate + 1; // calculate the first tick position + + firstTickPosition = remainingDaysOfFirstMonth * daysWidthOnXAxis; + firstTickValue = Utils$1.monthMod(currentMonth + 1); + var year = currentYear + yrCounter; + + var _month = Utils$1.monthMod(firstTickValue); + + var value = firstTickValue; // it's Jan, so update the year + + if (firstTickValue === 0) { + unit = 'year'; + value = year; + _month = 1; + yrCounter += 1; + year = year + yrCounter; + } // push the first tick in the array + + + this.timeScaleArray.push({ + position: firstTickPosition, + value: value, + unit: unit, + year: year, + month: _month + }); + } else { + // push the first tick in the array + this.timeScaleArray.push({ + position: firstTickPosition, + value: firstTickValue, + unit: unit, + year: currentYear, + month: Utils$1.monthMod(currentMonth) + }); + } + + var month = firstTickValue + 1; + var pos = firstTickPosition; // keep drawing rest of the ticks + + for (var i = 0, j = 1; i < numberOfMonths; i++, j++) { + month = Utils$1.monthMod(month); + + if (month === 0) { + unit = 'year'; + yrCounter += 1; + } else { + unit = 'month'; + } + + var _year = this._getYear(currentYear, month, yrCounter); + + pos = dt.determineDaysOfMonths(month, _year) * daysWidthOnXAxis + pos; + var monthVal = month === 0 ? _year : month; + this.timeScaleArray.push({ + position: pos, + value: monthVal, + unit: unit, + year: _year, + month: month === 0 ? 1 : month + }); + month++; + } + } + }, { + key: "generateDayScale", + value: function generateDayScale(_ref3) { + var firstVal = _ref3.firstVal, + currentMonth = _ref3.currentMonth, + currentYear = _ref3.currentYear, + hoursWidthOnXAxis = _ref3.hoursWidthOnXAxis, + numberOfDays = _ref3.numberOfDays; + var dt = new DateTime(this.ctx); + var unit = 'day'; + var firstTickValue = firstVal.minDate + 1; + var date = firstTickValue; + + var changeMonth = function changeMonth(dateVal, month, year) { + var monthdays = dt.determineDaysOfMonths(month + 1, year); + + if (dateVal > monthdays) { + month = month + 1; + date = 1; + unit = 'month'; + val = month; + return month; + } + + return month; + }; + + var remainingHours = 24 - firstVal.minHour; + var yrCounter = 0; // calculate the first tick position + + var firstTickPosition = remainingHours * hoursWidthOnXAxis; + var val = firstTickValue; + var month = changeMonth(date, currentMonth, currentYear); + + if (firstVal.minHour === 0 && firstVal.minDate === 1) { + // the first value is the first day of month + firstTickPosition = 0; + val = Utils$1.monthMod(firstVal.minMonth); + unit = 'month'; + date = firstVal.minDate; + numberOfDays++; + } else if (firstVal.minDate !== 1 && firstVal.minHour === 0 && firstVal.minMinute === 0) { + // fixes apexcharts/apexcharts.js/issues/1730 + firstTickPosition = 0; + firstTickValue = firstVal.minDate; + date = firstTickValue; + val = firstTickValue; // in case it's the last date of month, we need to check it + + month = changeMonth(date, currentMonth, currentYear); + } // push the first tick in the array + + + this.timeScaleArray.push({ + position: firstTickPosition, + value: val, + unit: unit, + year: this._getYear(currentYear, month, yrCounter), + month: Utils$1.monthMod(month), + day: date + }); + var pos = firstTickPosition; // keep drawing rest of the ticks + + for (var i = 0; i < numberOfDays; i++) { + date += 1; + unit = 'day'; + month = changeMonth(date, month, this._getYear(currentYear, month, yrCounter)); + + var year = this._getYear(currentYear, month, yrCounter); + + pos = 24 * hoursWidthOnXAxis + pos; + var value = date === 1 ? Utils$1.monthMod(month) : date; + this.timeScaleArray.push({ + position: pos, + value: value, + unit: unit, + year: year, + month: Utils$1.monthMod(month), + day: value + }); + } + } + }, { + key: "generateHourScale", + value: function generateHourScale(_ref4) { + var firstVal = _ref4.firstVal, + currentDate = _ref4.currentDate, + currentMonth = _ref4.currentMonth, + currentYear = _ref4.currentYear, + minutesWidthOnXAxis = _ref4.minutesWidthOnXAxis, + numberOfHours = _ref4.numberOfHours; + var dt = new DateTime(this.ctx); + var yrCounter = 0; + var unit = 'hour'; + + var changeDate = function changeDate(dateVal, month) { + var monthdays = dt.determineDaysOfMonths(month + 1, currentYear); + + if (dateVal > monthdays) { + date = 1; + month = month + 1; + } + + return { + month: month, + date: date + }; + }; + + var changeMonth = function changeMonth(dateVal, month) { + var monthdays = dt.determineDaysOfMonths(month + 1, currentYear); + + if (dateVal > monthdays) { + month = month + 1; + return month; + } + + return month; + }; // factor in minSeconds as well + + + var remainingMins = 60 - (firstVal.minMinute + firstVal.minSecond / 60.0); + var firstTickPosition = remainingMins * minutesWidthOnXAxis; + var firstTickValue = firstVal.minHour + 1; + var hour = firstTickValue + 1; + + if (remainingMins === 60) { + firstTickPosition = 0; + firstTickValue = firstVal.minHour; + hour = firstTickValue + 1; + } + + var date = currentDate; + var month = changeMonth(date, currentMonth); // push the first tick in the array + + this.timeScaleArray.push({ + position: firstTickPosition, + value: firstTickValue, + unit: unit, + day: date, + hour: hour, + year: currentYear, + month: Utils$1.monthMod(month) + }); + var pos = firstTickPosition; // keep drawing rest of the ticks + + for (var i = 0; i < numberOfHours; i++) { + unit = 'hour'; + + if (hour >= 24) { + hour = 0; + date += 1; + unit = 'day'; + var checkNextMonth = changeDate(date, month); + month = checkNextMonth.month; + month = changeMonth(date, month); + } + + var year = this._getYear(currentYear, month, yrCounter); + + pos = hour === 0 && i === 0 ? remainingMins * minutesWidthOnXAxis : 60 * minutesWidthOnXAxis + pos; + var val = hour === 0 ? date : hour; + this.timeScaleArray.push({ + position: pos, + value: val, + unit: unit, + hour: hour, + day: date, + year: year, + month: Utils$1.monthMod(month) + }); + hour++; + } + } + }, { + key: "generateMinuteScale", + value: function generateMinuteScale(_ref5) { + var currentMillisecond = _ref5.currentMillisecond, + currentSecond = _ref5.currentSecond, + currentMinute = _ref5.currentMinute, + currentHour = _ref5.currentHour, + currentDate = _ref5.currentDate, + currentMonth = _ref5.currentMonth, + currentYear = _ref5.currentYear, + minutesWidthOnXAxis = _ref5.minutesWidthOnXAxis, + secondsWidthOnXAxis = _ref5.secondsWidthOnXAxis, + numberOfMinutes = _ref5.numberOfMinutes; + var yrCounter = 0; + var unit = 'minute'; + var remainingSecs = 60 - currentSecond; + var firstTickPosition = (remainingSecs - currentMillisecond / 1000) * secondsWidthOnXAxis; + var minute = currentMinute + 1; + var date = currentDate; + var month = currentMonth; + var year = currentYear; + var hour = currentHour; + var pos = firstTickPosition; + + for (var i = 0; i < numberOfMinutes; i++) { + if (minute >= 60) { + minute = 0; + hour += 1; + + if (hour === 24) { + hour = 0; + } + } + + this.timeScaleArray.push({ + position: pos, + value: minute, + unit: unit, + hour: hour, + minute: minute, + day: date, + year: this._getYear(year, month, yrCounter), + month: Utils$1.monthMod(month) + }); + pos += minutesWidthOnXAxis; + minute++; + } + } + }, { + key: "generateSecondScale", + value: function generateSecondScale(_ref6) { + var currentMillisecond = _ref6.currentMillisecond, + currentSecond = _ref6.currentSecond, + currentMinute = _ref6.currentMinute, + currentHour = _ref6.currentHour, + currentDate = _ref6.currentDate, + currentMonth = _ref6.currentMonth, + currentYear = _ref6.currentYear, + secondsWidthOnXAxis = _ref6.secondsWidthOnXAxis, + numberOfSeconds = _ref6.numberOfSeconds; + var yrCounter = 0; + var unit = 'second'; + var remainingMillisecs = 1000 - currentMillisecond; + var firstTickPosition = remainingMillisecs / 1000 * secondsWidthOnXAxis; + var second = currentSecond + 1; + var minute = currentMinute; + var date = currentDate; + var month = currentMonth; + var year = currentYear; + var hour = currentHour; + var pos = firstTickPosition; + + for (var i = 0; i < numberOfSeconds; i++) { + if (second >= 60) { + minute++; + second = 0; + + if (minute >= 60) { + hour++; + minute = 0; + + if (hour === 24) { + hour = 0; + } + } + } + + this.timeScaleArray.push({ + position: pos, + value: second, + unit: unit, + hour: hour, + minute: minute, + second: second, + day: date, + year: this._getYear(year, month, yrCounter), + month: Utils$1.monthMod(month) + }); + pos += secondsWidthOnXAxis; + second++; + } + } + }, { + key: "createRawDateString", + value: function createRawDateString(ts, value) { + var raw = ts.year; + + if (ts.month === 0) { + // invalid month, correct it + ts.month = 1; + } + + raw += '-' + ('0' + ts.month.toString()).slice(-2); // unit is day + + if (ts.unit === 'day') { + raw += ts.unit === 'day' ? '-' + ('0' + value).slice(-2) : '-01'; + } else { + raw += '-' + ('0' + (ts.day ? ts.day : '1')).slice(-2); + } // unit is hour + + + if (ts.unit === 'hour') { + raw += ts.unit === 'hour' ? 'T' + ('0' + value).slice(-2) : 'T00'; + } else { + raw += 'T' + ('0' + (ts.hour ? ts.hour : '0')).slice(-2); + } + + if (ts.unit === 'minute') { + raw += ':' + ('0' + value).slice(-2); + } else { + raw += ':' + (ts.minute ? ('0' + ts.minute).slice(-2) : '00'); + } + + if (ts.unit === 'second') { + raw += ':' + ('0' + value).slice(-2); + } else { + raw += ':00'; + } + + if (this.utc) { + raw += '.000Z'; + } + + return raw; + } + }, { + key: "formatDates", + value: function formatDates(filteredTimeScale) { + var _this2 = this; + + var w = this.w; + var reformattedTimescaleArray = filteredTimeScale.map(function (ts) { + var value = ts.value.toString(); + var dt = new DateTime(_this2.ctx); + + var raw = _this2.createRawDateString(ts, value); + + var dateToFormat = dt.getDate(dt.parseDate(raw)); + + if (!_this2.utc) { + // Fixes #1726, #1544, #1485, #1255 + dateToFormat = dt.getDate(dt.parseDateWithTimezone(raw)); + } + + if (w.config.xaxis.labels.format === undefined) { + var customFormat = 'dd MMM'; + var dtFormatter = w.config.xaxis.labels.datetimeFormatter; + if (ts.unit === 'year') customFormat = dtFormatter.year; + if (ts.unit === 'month') customFormat = dtFormatter.month; + if (ts.unit === 'day') customFormat = dtFormatter.day; + if (ts.unit === 'hour') customFormat = dtFormatter.hour; + if (ts.unit === 'minute') customFormat = dtFormatter.minute; + if (ts.unit === 'second') customFormat = dtFormatter.second; + value = dt.formatDate(dateToFormat, customFormat); + } else { + value = dt.formatDate(dateToFormat, w.config.xaxis.labels.format); + } + + return { + dateString: raw, + position: ts.position, + value: value, + unit: ts.unit, + year: ts.year, + month: ts.month + }; + }); + return reformattedTimescaleArray; + } + }, { + key: "removeOverlappingTS", + value: function removeOverlappingTS(arr) { + var _this3 = this; + + var graphics = new Graphics(this.ctx); + var equalLabelLengthFlag = false; // These labels got same length? + + var constantLabelWidth; // If true, what is the constant length to use + + if (arr.length > 0 && // check arr length + arr[0].value && // check arr[0] contains value + arr.every(function (lb) { + return lb.value.length === arr[0].value.length; + }) // check every arr label value is the same as the first one + ) { + equalLabelLengthFlag = true; // These labels got same length + + constantLabelWidth = graphics.getTextRects(arr[0].value).width; // The constant label width to use + } + + var lastDrawnIndex = 0; + var filteredArray = arr.map(function (item, index) { + if (index > 0 && _this3.w.config.xaxis.labels.hideOverlappingLabels) { + var prevLabelWidth = !equalLabelLengthFlag // if vary in label length + ? graphics.getTextRects(arr[lastDrawnIndex].value).width // get individual length + : constantLabelWidth; // else: use constant length + + var prevPos = arr[lastDrawnIndex].position; + var pos = item.position; + + if (pos > prevPos + prevLabelWidth + 10) { + lastDrawnIndex = index; + return item; + } else { + return null; + } + } else { + return item; + } + }); + filteredArray = filteredArray.filter(function (f) { + return f !== null; + }); + return filteredArray; + } + }, { + key: "_getYear", + value: function _getYear(currentYear, month, yrCounter) { + return currentYear + Math.floor(month / 12) + yrCounter; + } + }]); + + return TimeScale; + }(); + + /** + * ApexCharts Core Class responsible for major calculations and creating elements. + * + * @module Core + **/ + + var Core = /*#__PURE__*/function () { + function Core(el, ctx) { + _classCallCheck(this, Core); + + this.ctx = ctx; + this.w = ctx.w; + this.el = el; + } // get data and store into appropriate vars + + + _createClass(Core, [{ + key: "setupElements", + value: function setupElements() { + var gl = this.w.globals; + var cnf = this.w.config; // const graphics = new Graphics(this.ctx) + + var ct = cnf.chart.type; + var axisChartsArrTypes = ['line', 'area', 'bar', 'rangeBar', 'candlestick', 'boxPlot', 'scatter', 'bubble', 'radar', 'heatmap', 'treemap']; + var xyChartsArrTypes = ['line', 'area', 'bar', 'rangeBar', 'candlestick', 'boxPlot', 'scatter', 'bubble']; + gl.axisCharts = axisChartsArrTypes.indexOf(ct) > -1; + gl.xyCharts = xyChartsArrTypes.indexOf(ct) > -1; + gl.isBarHorizontal = (cnf.chart.type === 'bar' || cnf.chart.type === 'rangeBar' || cnf.chart.type === 'boxPlot') && cnf.plotOptions.bar.horizontal; + gl.chartClass = '.apexcharts' + gl.chartID; + gl.dom.baseEl = this.el; + gl.dom.elWrap = document.createElement('div'); + Graphics.setAttrs(gl.dom.elWrap, { + id: gl.chartClass.substring(1), + class: 'apexcharts-canvas ' + gl.chartClass.substring(1) + }); + this.el.appendChild(gl.dom.elWrap); + gl.dom.Paper = new window.SVG.Doc(gl.dom.elWrap); + gl.dom.Paper.attr({ + class: 'apexcharts-svg', + 'xmlns:data': 'ApexChartsNS', + transform: "translate(".concat(cnf.chart.offsetX, ", ").concat(cnf.chart.offsetY, ")") + }); + gl.dom.Paper.node.style.background = cnf.chart.background; + this.setSVGDimensions(); + gl.dom.elGraphical = gl.dom.Paper.group().attr({ + class: 'apexcharts-inner apexcharts-graphical' + }); + gl.dom.elAnnotations = gl.dom.Paper.group().attr({ + class: 'apexcharts-annotations' + }); + gl.dom.elDefs = gl.dom.Paper.defs(); + gl.dom.elLegendWrap = document.createElement('div'); + gl.dom.elLegendWrap.classList.add('apexcharts-legend'); + gl.dom.elWrap.appendChild(gl.dom.elLegendWrap); + gl.dom.Paper.add(gl.dom.elGraphical); + gl.dom.elGraphical.add(gl.dom.elDefs); + } + }, { + key: "plotChartType", + value: function plotChartType(ser, xyRatios) { + var w = this.w; + var cnf = w.config; + var gl = w.globals; + var lineSeries = { + series: [], + i: [] + }; + var areaSeries = { + series: [], + i: [] + }; + var scatterSeries = { + series: [], + i: [] + }; + var bubbleSeries = { + series: [], + i: [] + }; + var columnSeries = { + series: [], + i: [] + }; + var candlestickSeries = { + series: [], + i: [] + }; + var boxplotSeries = { + series: [], + i: [] + }; + gl.series.map(function (series, st) { + var comboCount = 0; // if user has specified a particular type for particular series + + if (typeof ser[st].type !== 'undefined') { + if (ser[st].type === 'column' || ser[st].type === 'bar') { + if (gl.series.length > 1 && cnf.plotOptions.bar.horizontal) { + // horizontal bars not supported in mixed charts, hence show a warning + console.warn('Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`'); + } + + columnSeries.series.push(series); + columnSeries.i.push(st); + comboCount++; + w.globals.columnSeries = columnSeries.series; + } else if (ser[st].type === 'area') { + areaSeries.series.push(series); + areaSeries.i.push(st); + comboCount++; + } else if (ser[st].type === 'line') { + lineSeries.series.push(series); + lineSeries.i.push(st); + comboCount++; + } else if (ser[st].type === 'scatter') { + scatterSeries.series.push(series); + scatterSeries.i.push(st); + } else if (ser[st].type === 'bubble') { + bubbleSeries.series.push(series); + bubbleSeries.i.push(st); + comboCount++; + } else if (ser[st].type === 'candlestick') { + candlestickSeries.series.push(series); + candlestickSeries.i.push(st); + comboCount++; + } else if (ser[st].type === 'boxPlot') { + boxplotSeries.series.push(series); + boxplotSeries.i.push(st); + comboCount++; + } else { + // user has specified type, but it is not valid (other than line/area/column) + console.warn('You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble'); + } + + if (comboCount > 1) { + gl.comboCharts = true; + } + } else { + lineSeries.series.push(series); + lineSeries.i.push(st); + } + }); + var line = new Line(this.ctx, xyRatios); + var boxCandlestick = new BoxCandleStick(this.ctx, xyRatios); + this.ctx.pie = new Pie(this.ctx); + var radialBar = new Radial(this.ctx); + this.ctx.rangeBar = new RangeBar(this.ctx, xyRatios); + var radar = new Radar(this.ctx); + var elGraph = []; + + if (gl.comboCharts) { + if (areaSeries.series.length > 0) { + elGraph.push(line.draw(areaSeries.series, 'area', areaSeries.i)); + } + + if (columnSeries.series.length > 0) { + if (w.config.chart.stacked) { + var barStacked = new BarStacked(this.ctx, xyRatios); + elGraph.push(barStacked.draw(columnSeries.series, columnSeries.i)); + } else { + this.ctx.bar = new Bar(this.ctx, xyRatios); + elGraph.push(this.ctx.bar.draw(columnSeries.series, columnSeries.i)); + } + } + + if (lineSeries.series.length > 0) { + elGraph.push(line.draw(lineSeries.series, 'line', lineSeries.i)); + } + + if (candlestickSeries.series.length > 0) { + elGraph.push(boxCandlestick.draw(candlestickSeries.series, candlestickSeries.i)); + } + + if (boxplotSeries.series.length > 0) { + elGraph.push(boxCandlestick.draw(boxplotSeries.series, boxplotSeries.i)); + } + + if (scatterSeries.series.length > 0) { + var scatterLine = new Line(this.ctx, xyRatios, true); + elGraph.push(scatterLine.draw(scatterSeries.series, 'scatter', scatterSeries.i)); + } + + if (bubbleSeries.series.length > 0) { + var bubbleLine = new Line(this.ctx, xyRatios, true); + elGraph.push(bubbleLine.draw(bubbleSeries.series, 'bubble', bubbleSeries.i)); + } + } else { + switch (cnf.chart.type) { + case 'line': + elGraph = line.draw(gl.series, 'line'); + break; + + case 'area': + elGraph = line.draw(gl.series, 'area'); + break; + + case 'bar': + if (cnf.chart.stacked) { + var _barStacked = new BarStacked(this.ctx, xyRatios); + + elGraph = _barStacked.draw(gl.series); + } else { + this.ctx.bar = new Bar(this.ctx, xyRatios); + elGraph = this.ctx.bar.draw(gl.series); + } + + break; + + case 'candlestick': + var candleStick = new BoxCandleStick(this.ctx, xyRatios); + elGraph = candleStick.draw(gl.series); + break; + + case 'boxPlot': + var boxPlot = new BoxCandleStick(this.ctx, xyRatios); + elGraph = boxPlot.draw(gl.series); + break; + + case 'rangeBar': + elGraph = this.ctx.rangeBar.draw(gl.series); + break; + + case 'heatmap': + var heatmap = new HeatMap(this.ctx, xyRatios); + elGraph = heatmap.draw(gl.series); + break; + + case 'treemap': + var treemap = new TreemapChart(this.ctx, xyRatios); + elGraph = treemap.draw(gl.series); + break; + + case 'pie': + case 'donut': + case 'polarArea': + elGraph = this.ctx.pie.draw(gl.series); + break; + + case 'radialBar': + elGraph = radialBar.draw(gl.series); + break; + + case 'radar': + elGraph = radar.draw(gl.series); + break; + + default: + elGraph = line.draw(gl.series); + } + } + + return elGraph; + } + }, { + key: "setSVGDimensions", + value: function setSVGDimensions() { + var gl = this.w.globals; + var cnf = this.w.config; + gl.svgWidth = cnf.chart.width; + gl.svgHeight = cnf.chart.height; + var elDim = Utils$1.getDimensions(this.el); + var widthUnit = cnf.chart.width.toString().split(/[0-9]+/g).pop(); + + if (widthUnit === '%') { + if (Utils$1.isNumber(elDim[0])) { + if (elDim[0].width === 0) { + elDim = Utils$1.getDimensions(this.el.parentNode); + } + + gl.svgWidth = elDim[0] * parseInt(cnf.chart.width, 10) / 100; + } + } else if (widthUnit === 'px' || widthUnit === '') { + gl.svgWidth = parseInt(cnf.chart.width, 10); + } + + var heightUnit = cnf.chart.height.toString().split(/[0-9]+/g).pop(); + + if (gl.svgHeight !== 'auto' && gl.svgHeight !== '') { + if (heightUnit === '%') { + var elParentDim = Utils$1.getDimensions(this.el.parentNode); + gl.svgHeight = elParentDim[1] * parseInt(cnf.chart.height, 10) / 100; + } else { + gl.svgHeight = parseInt(cnf.chart.height, 10); + } + } else { + if (gl.axisCharts) { + gl.svgHeight = gl.svgWidth / 1.61; + } else { + gl.svgHeight = gl.svgWidth / 1.2; + } + } + + if (gl.svgWidth < 0) gl.svgWidth = 0; + if (gl.svgHeight < 0) gl.svgHeight = 0; + Graphics.setAttrs(gl.dom.Paper.node, { + width: gl.svgWidth, + height: gl.svgHeight + }); + + if (heightUnit !== '%') { + // fixes https://github.com/apexcharts/apexcharts.js/issues/2059 + var offsetY = cnf.chart.sparkline.enabled ? 0 : gl.axisCharts ? cnf.chart.parentHeightOffset : 0; + gl.dom.Paper.node.parentNode.parentNode.style.minHeight = gl.svgHeight + offsetY + 'px'; + } + + gl.dom.elWrap.style.width = gl.svgWidth + 'px'; + gl.dom.elWrap.style.height = gl.svgHeight + 'px'; + } + }, { + key: "shiftGraphPosition", + value: function shiftGraphPosition() { + var gl = this.w.globals; + var tY = gl.translateY; + var tX = gl.translateX; + var scalingAttrs = { + transform: 'translate(' + tX + ', ' + tY + ')' + }; + Graphics.setAttrs(gl.dom.elGraphical.node, scalingAttrs); + } // To prevent extra spacings in the bottom of the chart, we need to recalculate the height for pie/donut/radialbar charts + + }, { + key: "resizeNonAxisCharts", + value: function resizeNonAxisCharts() { + var w = this.w; + var gl = w.globals; + var legendHeight = 0; + var offY = w.config.chart.sparkline.enabled ? 1 : 15; + offY = offY + w.config.grid.padding.bottom; + + if ((w.config.legend.position === 'top' || w.config.legend.position === 'bottom') && w.config.legend.show && !w.config.legend.floating) { + legendHeight = new Legend(this.ctx).legendHelpers.getLegendBBox().clwh + 10; + } + + var el = w.globals.dom.baseEl.querySelector('.apexcharts-radialbar, .apexcharts-pie'); + var chartInnerDimensions = w.globals.radialSize * 2.05; + + if (el && !w.config.chart.sparkline.enabled && w.config.plotOptions.radialBar.startAngle !== 0) { + var elRadialRect = Utils$1.getBoundingClientRect(el); + chartInnerDimensions = elRadialRect.bottom; + var maxHeight = elRadialRect.bottom - elRadialRect.top; + chartInnerDimensions = Math.max(w.globals.radialSize * 2.05, maxHeight); + } + + var newHeight = chartInnerDimensions + gl.translateY + legendHeight + offY; + + if (gl.dom.elLegendForeign) { + gl.dom.elLegendForeign.setAttribute('height', newHeight); + } // fix apexcharts/apexcharts.js/issues/3105 (when % is provided in height, it keeps increasing) + + + if (w.config.chart.height && String(w.config.chart.height).indexOf('%') > 0) return; + gl.dom.elWrap.style.height = newHeight + 'px'; + Graphics.setAttrs(gl.dom.Paper.node, { + height: newHeight + }); + gl.dom.Paper.node.parentNode.parentNode.style.minHeight = newHeight + 'px'; + } + /* + ** All the calculations for setting range in charts will be done here + */ + + }, { + key: "coreCalculations", + value: function coreCalculations() { + var range = new Range(this.ctx); + range.init(); + } + }, { + key: "resetGlobals", + value: function resetGlobals() { + var _this = this; + + var resetxyValues = function resetxyValues() { + return _this.w.config.series.map(function (s) { + return []; + }); + }; + + var globalObj = new Globals(); + var gl = this.w.globals; + globalObj.initGlobalVars(gl); + gl.seriesXvalues = resetxyValues(); + gl.seriesYvalues = resetxyValues(); + } + }, { + key: "isMultipleY", + value: function isMultipleY() { + // user has supplied an array in yaxis property. So, turn on multipleYAxis flag + if (this.w.config.yaxis.constructor === Array && this.w.config.yaxis.length > 1) { + this.w.globals.isMultipleYAxis = true; + return true; + } + } + }, { + key: "xySettings", + value: function xySettings() { + var xyRatios = null; + var w = this.w; + + if (w.globals.axisCharts) { + if (w.config.xaxis.crosshairs.position === 'back') { + var crosshairs = new Crosshairs(this.ctx); + crosshairs.drawXCrosshairs(); + } + + if (w.config.yaxis[0].crosshairs.position === 'back') { + var _crosshairs = new Crosshairs(this.ctx); + + _crosshairs.drawYCrosshairs(); + } + + if (w.config.xaxis.type === 'datetime' && w.config.xaxis.labels.formatter === undefined) { + this.ctx.timeScale = new TimeScale(this.ctx); + var formattedTimeScale = []; + + if (isFinite(w.globals.minX) && isFinite(w.globals.maxX) && !w.globals.isBarHorizontal) { + formattedTimeScale = this.ctx.timeScale.calculateTimeScaleTicks(w.globals.minX, w.globals.maxX); + } else if (w.globals.isBarHorizontal) { + formattedTimeScale = this.ctx.timeScale.calculateTimeScaleTicks(w.globals.minY, w.globals.maxY); + } + + this.ctx.timeScale.recalcDimensionsBasedOnFormat(formattedTimeScale); + } + + var coreUtils = new CoreUtils(this.ctx); + xyRatios = coreUtils.getCalculatedRatios(); + } + + return xyRatios; + } + }, { + key: "updateSourceChart", + value: function updateSourceChart(targetChart) { + this.ctx.w.globals.selection = undefined; + + this.ctx.updateHelpers._updateOptions({ + chart: { + selection: { + xaxis: { + min: targetChart.w.globals.minX, + max: targetChart.w.globals.maxX + } + } + } + }, false, false); + } + }, { + key: "setupBrushHandler", + value: function setupBrushHandler() { + var _this2 = this; + + var w = this.w; // only for brush charts + + if (!w.config.chart.brush.enabled) { + return; + } // if user has not defined a custom function for selection - we handle the brush chart + // otherwise we leave it to the user to define the functionality for selection + + + if (typeof w.config.chart.events.selection !== 'function') { + var targets = w.config.chart.brush.targets || [w.config.chart.brush.target]; // retro compatibility with single target option + + targets.forEach(function (target) { + var targetChart = ApexCharts.getChartByID(target); + targetChart.w.globals.brushSource = _this2.ctx; + + if (typeof targetChart.w.config.chart.events.zoomed !== 'function') { + targetChart.w.config.chart.events.zoomed = function () { + _this2.updateSourceChart(targetChart); + }; + } + + if (typeof targetChart.w.config.chart.events.scrolled !== 'function') { + targetChart.w.config.chart.events.scrolled = function () { + _this2.updateSourceChart(targetChart); + }; + } + }); + + w.config.chart.events.selection = function (chart, e) { + targets.forEach(function (target) { + var targetChart = ApexCharts.getChartByID(target); + var yaxis = Utils$1.clone(w.config.yaxis); + + if (w.config.chart.brush.autoScaleYaxis && targetChart.w.globals.series.length === 1) { + var scale = new Range$1(targetChart); + yaxis = scale.autoScaleY(targetChart, yaxis, e); + } + + var multipleYaxis = targetChart.w.config.yaxis.reduce(function (acc, curr, index) { + return [].concat(_toConsumableArray(acc), [_objectSpread2(_objectSpread2({}, targetChart.w.config.yaxis[index]), {}, { + min: yaxis[0].min, + max: yaxis[0].max + })]); + }, []); + + targetChart.ctx.updateHelpers._updateOptions({ + xaxis: { + min: e.xaxis.min, + max: e.xaxis.max + }, + yaxis: multipleYaxis + }, false, false, false, false); + }); + }; + } + } + }]); + + return Core; + }(); + + var UpdateHelpers = /*#__PURE__*/function () { + function UpdateHelpers(ctx) { + _classCallCheck(this, UpdateHelpers); + + this.ctx = ctx; + this.w = ctx.w; + } + /** + * private method to update Options. + * + * @param {object} options - A new config object can be passed which will be merged with the existing config object + * @param {boolean} redraw - should redraw from beginning or should use existing paths and redraw from there + * @param {boolean} animate - should animate or not on updating Options + * @param {boolean} overwriteInitialConfig - should update the initial config or not + */ + + + _createClass(UpdateHelpers, [{ + key: "_updateOptions", + value: function _updateOptions(options) { + var _this = this; + + var redraw = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var animate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var updateSyncedCharts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var overwriteInitialConfig = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + return new Promise(function (resolve) { + var charts = [_this.ctx]; + + if (updateSyncedCharts) { + charts = _this.ctx.getSyncedCharts(); + } + + if (_this.ctx.w.globals.isExecCalled) { + // If the user called exec method, we don't want to get grouped charts as user specifically provided a chartID to update + charts = [_this.ctx]; + _this.ctx.w.globals.isExecCalled = false; + } + + charts.forEach(function (ch, chartIndex) { + var w = ch.w; + w.globals.shouldAnimate = animate; + + if (!redraw) { + w.globals.resized = true; + w.globals.dataChanged = true; + + if (animate) { + ch.series.getPreviousPaths(); + } + } + + if (options && _typeof(options) === 'object') { + ch.config = new Config(options); + options = CoreUtils.extendArrayProps(ch.config, options, w); // fixes #914, #623 + + if (ch.w.globals.chartID !== _this.ctx.w.globals.chartID) { + // don't overwrite series of synchronized charts + delete options.series; + } + + w.config = Utils$1.extend(w.config, options); + + if (overwriteInitialConfig) { + // we need to forget the lastXAxis and lastYAxis as user forcefully overwriteInitialConfig. If we do not do this, and next time when user zooms the chart after setting yaxis.min/max or xaxis.min/max - the stored lastXAxis will never allow the chart to use the updated min/max by user. + w.globals.lastXAxis = options.xaxis ? Utils$1.clone(options.xaxis) : []; + w.globals.lastYAxis = options.yaxis ? Utils$1.clone(options.yaxis) : []; // After forgetting lastAxes, we need to restore the new config in initialConfig/initialSeries + + w.globals.initialConfig = Utils$1.extend({}, w.config); + w.globals.initialSeries = Utils$1.clone(w.config.series); + + if (options.series) { + // Replace the collapsed series data + for (var i = 0; i < w.globals.collapsedSeriesIndices.length; i++) { + var series = w.config.series[w.globals.collapsedSeriesIndices[i]]; + w.globals.collapsedSeries[i].data = w.globals.axisCharts ? series.data.slice() : series; + } + + for (var _i = 0; _i < w.globals.ancillaryCollapsedSeriesIndices.length; _i++) { + var _series = w.config.series[w.globals.ancillaryCollapsedSeriesIndices[_i]]; + w.globals.ancillaryCollapsedSeries[_i].data = w.globals.axisCharts ? _series.data.slice() : _series; + } // Ensure that auto-generated axes are scaled to the visible data + + + ch.series.emptyCollapsedSeries(w.config.series); + } + } + } + + return ch.update(options).then(function () { + if (chartIndex === charts.length - 1) { + resolve(ch); + } + }); + }); + }); + } + /** + * Private method to update Series. + * + * @param {array} series - New series which will override the existing + */ + + }, { + key: "_updateSeries", + value: function _updateSeries(newSeries, animate) { + var _this2 = this; + + var overwriteInitialSeries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return new Promise(function (resolve) { + var w = _this2.w; + w.globals.shouldAnimate = animate; + w.globals.dataChanged = true; + + if (animate) { + _this2.ctx.series.getPreviousPaths(); + } + + var existingSeries; // axis charts + + if (w.globals.axisCharts) { + existingSeries = newSeries.map(function (s, i) { + return _this2._extendSeries(s, i); + }); + + if (existingSeries.length === 0) { + existingSeries = [{ + data: [] + }]; + } + + w.config.series = existingSeries; + } else { + // non-axis chart (pie/radialbar) + w.config.series = newSeries.slice(); + } + + if (overwriteInitialSeries) { + w.globals.initialSeries = Utils$1.clone(w.config.series); + } + + return _this2.ctx.update().then(function () { + resolve(_this2.ctx); + }); + }); + } + }, { + key: "_extendSeries", + value: function _extendSeries(s, i) { + var w = this.w; + var ser = w.config.series[i]; + return _objectSpread2(_objectSpread2({}, w.config.series[i]), {}, { + name: s.name ? s.name : ser && ser.name, + color: s.color ? s.color : ser && ser.color, + type: s.type ? s.type : ser && ser.type, + data: s.data ? s.data : ser && ser.data + }); + } + }, { + key: "toggleDataPointSelection", + value: function toggleDataPointSelection(seriesIndex, dataPointIndex) { + var w = this.w; + var elPath = null; + var parent = ".apexcharts-series[data\\:realIndex='".concat(seriesIndex, "']"); + + if (w.globals.axisCharts) { + elPath = w.globals.dom.Paper.select("".concat(parent, " path[j='").concat(dataPointIndex, "'], ").concat(parent, " circle[j='").concat(dataPointIndex, "'], ").concat(parent, " rect[j='").concat(dataPointIndex, "']")).members[0]; + } else { + // dataPointIndex will be undefined here, hence using seriesIndex + if (typeof dataPointIndex === 'undefined') { + elPath = w.globals.dom.Paper.select("".concat(parent, " path[j='").concat(seriesIndex, "']")).members[0]; + + if (w.config.chart.type === 'pie' || w.config.chart.type === 'polarArea' || w.config.chart.type === 'donut') { + this.ctx.pie.pieClicked(seriesIndex); + } + } + } + + if (elPath) { + var graphics = new Graphics(this.ctx); + graphics.pathMouseDown(elPath, null); + } else { + console.warn('toggleDataPointSelection: Element not found'); + return null; + } + + return elPath.node ? elPath.node : null; + } + }, { + key: "forceXAxisUpdate", + value: function forceXAxisUpdate(options) { + var w = this.w; + var minmax = ['min', 'max']; + minmax.forEach(function (a) { + if (typeof options.xaxis[a] !== 'undefined') { + w.config.xaxis[a] = options.xaxis[a]; + w.globals.lastXAxis[a] = options.xaxis[a]; + } + }); + + if (options.xaxis.categories && options.xaxis.categories.length) { + w.config.xaxis.categories = options.xaxis.categories; + } + + if (w.config.xaxis.convertedCatToNumeric) { + var defaults = new Defaults(options); + options = defaults.convertCatToNumericXaxis(options, this.ctx); + } + + return options; + } + }, { + key: "forceYAxisUpdate", + value: function forceYAxisUpdate(options) { + if (options.chart && options.chart.stacked && options.chart.stackType === '100%') { + if (Array.isArray(options.yaxis)) { + options.yaxis.forEach(function (yaxe, index) { + options.yaxis[index].min = 0; + options.yaxis[index].max = 100; + }); + } else { + options.yaxis.min = 0; + options.yaxis.max = 100; + } + } + + return options; + } + /** + * This function reverts the yaxis and xaxis min/max values to what it was when the chart was defined. + * This function fixes an important bug where a user might load a new series after zooming in/out of previous series which resulted in wrong min/max + * Also, this should never be called internally on zoom/pan - the reset should only happen when user calls the updateSeries() function externally + * The function also accepts an object {xaxis, yaxis} which when present is set as the new xaxis/yaxis + */ + + }, { + key: "revertDefaultAxisMinMax", + value: function revertDefaultAxisMinMax(opts) { + var _this3 = this; + + var w = this.w; + var xaxis = w.globals.lastXAxis; + var yaxis = w.globals.lastYAxis; + + if (opts && opts.xaxis) { + xaxis = opts.xaxis; + } + + if (opts && opts.yaxis) { + yaxis = opts.yaxis; + } + + w.config.xaxis.min = xaxis.min; + w.config.xaxis.max = xaxis.max; + + var getLastYAxis = function getLastYAxis(index) { + if (typeof yaxis[index] !== 'undefined') { + w.config.yaxis[index].min = yaxis[index].min; + w.config.yaxis[index].max = yaxis[index].max; + } + }; + + w.config.yaxis.map(function (yaxe, index) { + if (w.globals.zoomed) { + // user has zoomed, check the last yaxis + getLastYAxis(index); + } else { + // user hasn't zoomed, check the last yaxis first + if (typeof yaxis[index] !== 'undefined') { + getLastYAxis(index); + } else { + // if last y-axis don't exist, check the original yaxis + if (typeof _this3.ctx.opts.yaxis[index] !== 'undefined') { + yaxe.min = _this3.ctx.opts.yaxis[index].min; + yaxe.max = _this3.ctx.opts.yaxis[index].max; + } + } + } + }); + } + }]); + + return UpdateHelpers; + }(); + + (function (root, factory) { + /* istanbul ignore next */ + if (typeof define === 'function' && define.amd) { + define(function () { + return factory(root, root.document); + }); + /* below check fixes #412 */ + } else if ((typeof exports === "undefined" ? "undefined" : _typeof(exports)) === 'object' && typeof module !== 'undefined') { + module.exports = root.document ? factory(root, root.document) : function (w) { + return factory(w, w.document); + }; + } else { + root.SVG = factory(root, root.document); + } + })(typeof window !== 'undefined' ? window : undefined, function (window, document) { + // Find global reference - uses 'this' by default when available, + // falls back to 'window' otherwise (for bundlers like Webpack) + var globalRef = typeof this !== 'undefined' ? this : window; // The main wrapping element + + var SVG = globalRef.SVG = function (element) { + if (SVG.supported) { + element = new SVG.Doc(element); + + if (!SVG.parser.draw) { + SVG.prepare(); + } + + return element; + } + }; // Default namespaces + + + SVG.ns = 'http://www.w3.org/2000/svg'; + SVG.xmlns = 'http://www.w3.org/2000/xmlns/'; + SVG.xlink = 'http://www.w3.org/1999/xlink'; + SVG.svgjs = 'http://svgjs.dev'; // Svg support test + + SVG.supported = function () { + return true; // !!document.createElementNS && + // !! document.createElementNS(SVG.ns,'svg').createSVGRect + }(); // Don't bother to continue if SVG is not supported + + + if (!SVG.supported) return false; // Element id sequence + + SVG.did = 1000; // Get next named element id + + SVG.eid = function (name) { + return 'Svgjs' + capitalize(name) + SVG.did++; + }; // Method for element creation + + + SVG.create = function (name) { + // create element + var element = document.createElementNS(this.ns, name); // apply unique id + + element.setAttribute('id', this.eid(name)); + return element; + }; // Method for extending objects + + + SVG.extend = function () { + var modules, methods; // Get list of modules + + modules = [].slice.call(arguments); // Get object with extensions + + methods = modules.pop(); + + for (var i = modules.length - 1; i >= 0; i--) { + if (modules[i]) { + for (var key in methods) { + modules[i].prototype[key] = methods[key]; + } + } + } // Make sure SVG.Set inherits any newly added methods + + + if (SVG.Set && SVG.Set.inherit) { + SVG.Set.inherit(); + } + }; // Invent new element + + + SVG.invent = function (config) { + // Create element initializer + var initializer = typeof config.create === 'function' ? config.create : function () { + this.constructor.call(this, SVG.create(config.create)); + }; // Inherit prototype + + if (config.inherit) { + initializer.prototype = new config.inherit(); + } // Extend with methods + + + if (config.extend) { + SVG.extend(initializer, config.extend); + } // Attach construct method to parent + + + if (config.construct) { + SVG.extend(config.parent || SVG.Container, config.construct); + } + + return initializer; + }; // Adopt existing svg elements + + + SVG.adopt = function (node) { + // check for presence of node + if (!node) return null; // make sure a node isn't already adopted + + if (node.instance) return node.instance; // initialize variables + + var element; // adopt with element-specific settings + + if (node.nodeName == 'svg') { + element = node.parentNode instanceof window.SVGElement ? new SVG.Nested() : new SVG.Doc(); + } else if (node.nodeName == 'linearGradient') { + element = new SVG.Gradient('linear'); + } else if (node.nodeName == 'radialGradient') { + element = new SVG.Gradient('radial'); + } else if (SVG[capitalize(node.nodeName)]) { + element = new SVG[capitalize(node.nodeName)](); + } else { + element = new SVG.Element(node); + } // ensure references + + + element.type = node.nodeName; + element.node = node; + node.instance = element; // SVG.Class specific preparations + + if (element instanceof SVG.Doc) { + element.namespace().defs(); + } // pull svgjs data from the dom (getAttributeNS doesn't work in html5) + + + element.setData(JSON.parse(node.getAttribute('svgjs:data')) || {}); + return element; + }; // Initialize parsing element + + + SVG.prepare = function () { + // Select document body and create invisible svg element + var body = document.getElementsByTagName('body')[0], + draw = (body ? new SVG.Doc(body) : SVG.adopt(document.documentElement).nested()).size(2, 0); // Create parser object + + SVG.parser = { + body: body || document.documentElement, + draw: draw.style('opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden').node, + poly: draw.polyline().node, + path: draw.path().node, + native: SVG.create('svg') + }; + }; + + SVG.parser = { + native: SVG.create('svg') + }; + document.addEventListener('DOMContentLoaded', function () { + if (!SVG.parser.draw) { + SVG.prepare(); + } + }, false); // Storage for regular expressions + + SVG.regex = { + // Parse unit value + numberAndUnit: /^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i, + // Parse hex value + hex: /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i, + // Parse rgb value + rgb: /rgb\((\d+),(\d+),(\d+)\)/, + // Parse reference id + reference: /#([a-z0-9\-_]+)/i, + // splits a transformation chain + transforms: /\)\s*,?\s*/, + // Whitespace + whitespace: /\s/g, + // Test hex value + isHex: /^#[a-f0-9]{3,6}$/i, + // Test rgb value + isRgb: /^rgb\(/, + // Test css declaration + isCss: /[^:]+:[^;]+;?/, + // Test for blank string + isBlank: /^(\s+)?$/, + // Test for numeric string + isNumber: /^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, + // Test for percent value + isPercent: /^-?[\d\.]+%$/, + // Test for image url + isImage: /\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i, + // split at whitespace and comma + delimiter: /[\s,]+/, + // The following regex are used to parse the d attribute of a path + // Matches all hyphens which are not after an exponent + hyphen: /([^e])\-/gi, + // Replaces and tests for all path letters + pathLetters: /[MLHVCSQTAZ]/gi, + // yes we need this one, too + isPathLetter: /[MLHVCSQTAZ]/i, + // matches 0.154.23.45 + numbersWithDots: /((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi, + // matches . + dots: /\./g + }; + SVG.utils = { + // Map function + map: function map(array, block) { + var il = array.length, + result = []; + + for (var i = 0; i < il; i++) { + result.push(block(array[i])); + } + + return result; + }, + // Filter function + filter: function filter(array, block) { + var il = array.length, + result = []; + + for (var i = 0; i < il; i++) { + if (block(array[i])) { + result.push(array[i]); + } + } + + return result; + }, + filterSVGElements: function filterSVGElements(nodes) { + return this.filter(nodes, function (el) { + return el instanceof window.SVGElement; + }); + } + }; + SVG.defaults = { + // Default attribute values + attrs: { + // fill and stroke + 'fill-opacity': 1, + 'stroke-opacity': 1, + 'stroke-width': 0, + 'stroke-linejoin': 'miter', + 'stroke-linecap': 'butt', + fill: '#000000', + stroke: '#000000', + opacity: 1, + // position + x: 0, + y: 0, + cx: 0, + cy: 0, + // size + width: 0, + height: 0, + // radius + r: 0, + rx: 0, + ry: 0, + // gradient + offset: 0, + 'stop-opacity': 1, + 'stop-color': '#000000', + // text + 'font-size': 16, + 'font-family': 'Helvetica, Arial, sans-serif', + 'text-anchor': 'start' + } + }; // Module for color convertions + + SVG.Color = function (color) { + var match; // initialize defaults + + this.r = 0; + this.g = 0; + this.b = 0; + if (!color) return; // parse color + + if (typeof color === 'string') { + if (SVG.regex.isRgb.test(color)) { + // get rgb values + match = SVG.regex.rgb.exec(color.replace(SVG.regex.whitespace, '')); // parse numeric values + + this.r = parseInt(match[1]); + this.g = parseInt(match[2]); + this.b = parseInt(match[3]); + } else if (SVG.regex.isHex.test(color)) { + // get hex values + match = SVG.regex.hex.exec(fullHex(color)); // parse numeric values + + this.r = parseInt(match[1], 16); + this.g = parseInt(match[2], 16); + this.b = parseInt(match[3], 16); + } + } else if (_typeof(color) === 'object') { + this.r = color.r; + this.g = color.g; + this.b = color.b; + } + }; + + SVG.extend(SVG.Color, { + // Default to hex conversion + toString: function toString() { + return this.toHex(); + }, + // Build hex value + toHex: function toHex() { + return '#' + compToHex(this.r) + compToHex(this.g) + compToHex(this.b); + }, + // Build rgb value + toRgb: function toRgb() { + return 'rgb(' + [this.r, this.g, this.b].join() + ')'; + }, + // Calculate true brightness + brightness: function brightness() { + return this.r / 255 * 0.30 + this.g / 255 * 0.59 + this.b / 255 * 0.11; + }, + // Make color morphable + morph: function morph(color) { + this.destination = new SVG.Color(color); + return this; + }, + // Get morphed color at given position + at: function at(pos) { + // make sure a destination is defined + if (!this.destination) return this; // normalise pos + + pos = pos < 0 ? 0 : pos > 1 ? 1 : pos; // generate morphed color + + return new SVG.Color({ + r: ~~(this.r + (this.destination.r - this.r) * pos), + g: ~~(this.g + (this.destination.g - this.g) * pos), + b: ~~(this.b + (this.destination.b - this.b) * pos) + }); + } + }); // Testers + // Test if given value is a color string + + SVG.Color.test = function (color) { + color += ''; + return SVG.regex.isHex.test(color) || SVG.regex.isRgb.test(color); + }; // Test if given value is a rgb object + + + SVG.Color.isRgb = function (color) { + return color && typeof color.r === 'number' && typeof color.g === 'number' && typeof color.b === 'number'; + }; // Test if given value is a color + + + SVG.Color.isColor = function (color) { + return SVG.Color.isRgb(color) || SVG.Color.test(color); + }; // Module for array conversion + + + SVG.Array = function (array, fallback) { + array = (array || []).valueOf(); // if array is empty and fallback is provided, use fallback + + if (array.length == 0 && fallback) { + array = fallback.valueOf(); + } // parse array + + + this.value = this.parse(array); + }; + + SVG.extend(SVG.Array, { + // Convert array to string + toString: function toString() { + return this.value.join(' '); + }, + // Real value + valueOf: function valueOf() { + return this.value; + }, + // Parse whitespace separated string + parse: function parse(array) { + array = array.valueOf(); // if already is an array, no need to parse it + + if (Array.isArray(array)) return array; + return this.split(array); + } + }); // Poly points array + + SVG.PointArray = function (array, fallback) { + SVG.Array.call(this, array, fallback || [[0, 0]]); + }; // Inherit from SVG.Array + + + SVG.PointArray.prototype = new SVG.Array(); + SVG.PointArray.prototype.constructor = SVG.PointArray; + var pathHandlers = { + M: function M(c, p, p0) { + p.x = p0.x = c[0]; + p.y = p0.y = c[1]; + return ['M', p.x, p.y]; + }, + L: function L(c, p) { + p.x = c[0]; + p.y = c[1]; + return ['L', c[0], c[1]]; + }, + H: function H(c, p) { + p.x = c[0]; + return ['H', c[0]]; + }, + V: function V(c, p) { + p.y = c[0]; + return ['V', c[0]]; + }, + C: function C(c, p) { + p.x = c[4]; + p.y = c[5]; + return ['C', c[0], c[1], c[2], c[3], c[4], c[5]]; + }, + Q: function Q(c, p) { + p.x = c[2]; + p.y = c[3]; + return ['Q', c[0], c[1], c[2], c[3]]; + }, + Z: function Z(c, p, p0) { + p.x = p0.x; + p.y = p0.y; + return ['Z']; + } + }; + var mlhvqtcsa = 'mlhvqtcsaz'.split(''); + + for (var i = 0, il = mlhvqtcsa.length; i < il; ++i) { + pathHandlers[mlhvqtcsa[i]] = function (i) { + return function (c, p, p0) { + if (i == 'H') c[0] = c[0] + p.x;else if (i == 'V') c[0] = c[0] + p.y;else if (i == 'A') { + c[5] = c[5] + p.x, c[6] = c[6] + p.y; + } else { + for (var j = 0, jl = c.length; j < jl; ++j) { + c[j] = c[j] + (j % 2 ? p.y : p.x); + } + } + + if (pathHandlers && typeof pathHandlers[i] === 'function') { + // this check fixes jest unit tests + return pathHandlers[i](c, p, p0); + } + }; + }(mlhvqtcsa[i].toUpperCase()); + } // Path points array + + + SVG.PathArray = function (array, fallback) { + SVG.Array.call(this, array, fallback || [['M', 0, 0]]); + }; // Inherit from SVG.Array + + + SVG.PathArray.prototype = new SVG.Array(); + SVG.PathArray.prototype.constructor = SVG.PathArray; + SVG.extend(SVG.PathArray, { + // Convert array to string + toString: function toString() { + return arrayToString(this.value); + }, + // Move path string + move: function move(x, y) { + // get bounding box of current situation + var box = this.bbox(); // get relative offset + + x -= box.x; + y -= box.y; + return this; + }, + // Get morphed path array at given position + at: function at(pos) { + // make sure a destination is defined + if (!this.destination) return this; + var sourceArray = this.value, + destinationArray = this.destination.value, + array = [], + pathArray = new SVG.PathArray(), + il, + jl; // Animate has specified in the SVG spec + // See: https://www.w3.org/TR/SVG11/paths.html#PathElement + + for (var i = 0, il = sourceArray.length; i < il; i++) { + array[i] = [sourceArray[i][0]]; + + for (var j = 1, jl = sourceArray[i].length; j < jl; j++) { + array[i][j] = sourceArray[i][j] + (destinationArray[i][j] - sourceArray[i][j]) * pos; + } // For the two flags of the elliptical arc command, the SVG spec say: + // Flags and booleans are interpolated as fractions between zero and one, with any non-zero value considered to be a value of one/true + // Elliptical arc command as an array followed by corresponding indexes: + // ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y] + // 0 1 2 3 4 5 6 7 + + + if (array[i][0] === 'A') { + array[i][4] = +(array[i][4] != 0); + array[i][5] = +(array[i][5] != 0); + } + } // Directly modify the value of a path array, this is done this way for performance + + + pathArray.value = array; + return pathArray; + }, + // Absolutize and parse path to array + parse: function parse(array) { + // if it's already a patharray, no need to parse it + if (array instanceof SVG.PathArray) return array.valueOf(); // prepare for parsing + + var s, + arr, + paramCnt = { + 'M': 2, + 'L': 2, + 'H': 1, + 'V': 1, + 'C': 6, + 'S': 4, + 'Q': 4, + 'T': 2, + 'A': 7, + 'Z': 0 + }; + + if (typeof array === 'string') { + array = array.replace(SVG.regex.numbersWithDots, pathRegReplace) // convert 45.123.123 to 45.123 .123 + .replace(SVG.regex.pathLetters, ' $& ') // put some room between letters and numbers + .replace(SVG.regex.hyphen, '$1 -') // add space before hyphen + .trim() // trim + .split(SVG.regex.delimiter); // split into array + } else { + array = array.reduce(function (prev, curr) { + return [].concat.call(prev, curr); + }, []); + } // array now is an array containing all parts of a path e.g. ['M', '0', '0', 'L', '30', '30' ...] + + + var arr = [], + p = new SVG.Point(), + p0 = new SVG.Point(), + index = 0, + len = array.length; + + do { + // Test if we have a path letter + if (SVG.regex.isPathLetter.test(array[index])) { + s = array[index]; + ++index; // If last letter was a move command and we got no new, it defaults to [L]ine + } else if (s == 'M') { + s = 'L'; + } else if (s == 'm') { + s = 'l'; + } + + arr.push(pathHandlers[s].call(null, array.slice(index, index = index + paramCnt[s.toUpperCase()]).map(parseFloat), p, p0)); + } while (len > index); + + return arr; + }, + // Get bounding box of path + bbox: function bbox() { + if (!SVG.parser.draw) { + SVG.prepare(); + } + + SVG.parser.path.setAttribute('d', this.toString()); + return SVG.parser.path.getBBox(); + } + }); // Module for unit convertions + + SVG.Number = SVG.invent({ + // Initialize + create: function create(value, unit) { + // initialize defaults + this.value = 0; + this.unit = unit || ''; // parse value + + if (typeof value === 'number') { + // ensure a valid numeric value + this.value = isNaN(value) ? 0 : !isFinite(value) ? value < 0 ? -3.4e+38 : +3.4e+38 : value; + } else if (typeof value === 'string') { + unit = value.match(SVG.regex.numberAndUnit); + + if (unit) { + // make value numeric + this.value = parseFloat(unit[1]); // normalize + + if (unit[5] == '%') { + this.value /= 100; + } else if (unit[5] == 's') { + this.value *= 1000; + } // store unit + + + this.unit = unit[5]; + } + } else { + if (value instanceof SVG.Number) { + this.value = value.valueOf(); + this.unit = value.unit; + } + } + }, + // Add methods + extend: { + // Stringalize + toString: function toString() { + return (this.unit == '%' ? ~~(this.value * 1e8) / 1e6 : this.unit == 's' ? this.value / 1e3 : this.value) + this.unit; + }, + toJSON: function toJSON() { + return this.toString(); + }, + // Convert to primitive + valueOf: function valueOf() { + return this.value; + }, + // Add number + plus: function plus(number) { + number = new SVG.Number(number); + return new SVG.Number(this + number, this.unit || number.unit); + }, + // Subtract number + minus: function minus(number) { + number = new SVG.Number(number); + return new SVG.Number(this - number, this.unit || number.unit); + }, + // Multiply number + times: function times(number) { + number = new SVG.Number(number); + return new SVG.Number(this * number, this.unit || number.unit); + }, + // Divide number + divide: function divide(number) { + number = new SVG.Number(number); + return new SVG.Number(this / number, this.unit || number.unit); + }, + // Convert to different unit + to: function to(unit) { + var number = new SVG.Number(this); + + if (typeof unit === 'string') { + number.unit = unit; + } + + return number; + }, + // Make number morphable + morph: function morph(number) { + this.destination = new SVG.Number(number); + + if (number.relative) { + this.destination.value += this.value; + } + + return this; + }, + // Get morphed number at given position + at: function at(pos) { + // Make sure a destination is defined + if (!this.destination) return this; // Generate new morphed number + + return new SVG.Number(this.destination).minus(this).times(pos).plus(this); + } + } + }); + SVG.Element = SVG.invent({ + // Initialize node + create: function create(node) { + // make stroke value accessible dynamically + this._stroke = SVG.defaults.attrs.stroke; + this._event = null; // initialize data object + + this.dom = {}; // create circular reference + + if (this.node = node) { + this.type = node.nodeName; + this.node.instance = this; // store current attribute value + + this._stroke = node.getAttribute('stroke') || this._stroke; + } + }, + // Add class methods + extend: { + // Move over x-axis + x: function x(_x) { + return this.attr('x', _x); + }, + // Move over y-axis + y: function y(_y) { + return this.attr('y', _y); + }, + // Move by center over x-axis + cx: function cx(x) { + return x == null ? this.x() + this.width() / 2 : this.x(x - this.width() / 2); + }, + // Move by center over y-axis + cy: function cy(y) { + return y == null ? this.y() + this.height() / 2 : this.y(y - this.height() / 2); + }, + // Move element to given x and y values + move: function move(x, y) { + return this.x(x).y(y); + }, + // Move element by its center + center: function center(x, y) { + return this.cx(x).cy(y); + }, + // Set width of element + width: function width(_width) { + return this.attr('width', _width); + }, + // Set height of element + height: function height(_height) { + return this.attr('height', _height); + }, + // Set element size to given width and height + size: function size(width, height) { + var p = proportionalSize(this, width, height); + return this.width(new SVG.Number(p.width)).height(new SVG.Number(p.height)); + }, + // Clone element + clone: function clone(parent) { + // write dom data to the dom so the clone can pickup the data + this.writeDataToDom(); // clone element and assign new id + + var clone = assignNewId(this.node.cloneNode(true)); // insert the clone in the given parent or after myself + + if (parent) parent.add(clone);else this.after(clone); + return clone; + }, + // Remove element + remove: function remove() { + if (this.parent()) { + this.parent().removeElement(this); + } + + return this; + }, + // Replace element + replace: function replace(element) { + this.after(element).remove(); + return element; + }, + // Add element to given container and return self + addTo: function addTo(parent) { + return parent.put(this); + }, + // Add element to given container and return container + putIn: function putIn(parent) { + return parent.add(this); + }, + // Get / set id + id: function id(_id) { + return this.attr('id', _id); + }, + // Show element + show: function show() { + return this.style('display', ''); + }, + // Hide element + hide: function hide() { + return this.style('display', 'none'); + }, + // Is element visible? + visible: function visible() { + return this.style('display') != 'none'; + }, + // Return id on string conversion + toString: function toString() { + return this.attr('id'); + }, + // Return array of classes on the node + classes: function classes() { + var attr = this.attr('class'); + return attr == null ? [] : attr.trim().split(SVG.regex.delimiter); + }, + // Return true if class exists on the node, false otherwise + hasClass: function hasClass(name) { + return this.classes().indexOf(name) != -1; + }, + // Add class to the node + addClass: function addClass(name) { + if (!this.hasClass(name)) { + var array = this.classes(); + array.push(name); + this.attr('class', array.join(' ')); + } + + return this; + }, + // Remove class from the node + removeClass: function removeClass(name) { + if (this.hasClass(name)) { + this.attr('class', this.classes().filter(function (c) { + return c != name; + }).join(' ')); + } + + return this; + }, + // Toggle the presence of a class on the node + toggleClass: function toggleClass(name) { + return this.hasClass(name) ? this.removeClass(name) : this.addClass(name); + }, + // Get referenced element form attribute value + reference: function reference(attr) { + return SVG.get(this.attr(attr)); + }, + // Returns the parent element instance + parent: function parent(type) { + var parent = this; // check for parent + + if (!parent.node.parentNode) return null; // get parent element + + parent = SVG.adopt(parent.node.parentNode); + if (!type) return parent; // loop trough ancestors if type is given + + while (parent && parent.node instanceof window.SVGElement) { + if (typeof type === 'string' ? parent.matches(type) : parent instanceof type) return parent; + if (!parent.node.parentNode || parent.node.parentNode.nodeName == '#document') return null; // #759, #720 + + parent = SVG.adopt(parent.node.parentNode); + } + }, + // Get parent document + doc: function doc() { + return this instanceof SVG.Doc ? this : this.parent(SVG.Doc); + }, + // return array of all ancestors of given type up to the root svg + parents: function parents(type) { + var parents = [], + parent = this; + + do { + parent = parent.parent(type); + if (!parent || !parent.node) break; + parents.push(parent); + } while (parent.parent); + + return parents; + }, + // matches the element vs a css selector + matches: function matches(selector) { + return _matches(this.node, selector); + }, + // Returns the svg node to call native svg methods on it + native: function native() { + return this.node; + }, + // Import raw svg + svg: function svg(_svg) { + // create temporary holder + var well = document.createElement('svg'); // act as a setter if svg is given + + if (_svg && this instanceof SVG.Parent) { + // dump raw svg + well.innerHTML = '' + _svg.replace(/\n/, '').replace(/<([\w:-]+)([^<]+?)\/>/g, '<$1$2>') + ''; // transplant nodes + + for (var i = 0, il = well.firstChild.childNodes.length; i < il; i++) { + this.node.appendChild(well.firstChild.firstChild); + } // otherwise act as a getter + + } else { + // create a wrapping svg element in case of partial content + well.appendChild(_svg = document.createElement('svg')); // write svgjs data to the dom + + this.writeDataToDom(); // insert a copy of this node + + _svg.appendChild(this.node.cloneNode(true)); // return target element + + + return well.innerHTML.replace(/^/, '').replace(/<\/svg>$/, ''); + } + + return this; + }, + // write svgjs data to the dom + writeDataToDom: function writeDataToDom() { + // dump variables recursively + if (this.each || this.lines) { + var fn = this.each ? this : this.lines(); + fn.each(function () { + this.writeDataToDom(); + }); + } // remove previously set data + + + this.node.removeAttribute('svgjs:data'); + + if (Object.keys(this.dom).length) { + this.node.setAttribute('svgjs:data', JSON.stringify(this.dom)); + } // see #428 + + + return this; + }, + // set given data to the elements data property + setData: function setData(o) { + this.dom = o; + return this; + }, + is: function is(obj) { + return _is(this, obj); + } + } + }); + SVG.easing = { + '-': function _(pos) { + return pos; + }, + '<>': function _(pos) { + return -Math.cos(pos * Math.PI) / 2 + 0.5; + }, + '>': function _(pos) { + return Math.sin(pos * Math.PI / 2); + }, + '<': function _(pos) { + return -Math.cos(pos * Math.PI / 2) + 1; + } + }; + + SVG.morph = function (pos) { + return function (from, to) { + return new SVG.MorphObj(from, to).at(pos); + }; + }; + + SVG.Situation = SVG.invent({ + create: function create(o) { + this.init = false; + this.reversed = false; + this.reversing = false; + this.duration = new SVG.Number(o.duration).valueOf(); + this.delay = new SVG.Number(o.delay).valueOf(); + this.start = +new Date() + this.delay; + this.finish = this.start + this.duration; + this.ease = o.ease; // this.loop is incremented from 0 to this.loops + // it is also incremented when in an infinite loop (when this.loops is true) + + this.loop = 0; + this.loops = false; + this.animations = {// functionToCall: [list of morphable objects] + // e.g. move: [SVG.Number, SVG.Number] + }; + this.attrs = {// holds all attributes which are not represented from a function svg.js provides + // e.g. someAttr: SVG.Number + }; + this.styles = {// holds all styles which should be animated + // e.g. fill-color: SVG.Color + }; + this.transforms = [// holds all transformations as transformation objects + // e.g. [SVG.Rotate, SVG.Translate, SVG.Matrix] + ]; + this.once = {// functions to fire at a specific position + // e.g. "0.5": function foo(){} + }; + } + }); + SVG.FX = SVG.invent({ + create: function create(element) { + this._target = element; + this.situations = []; + this.active = false; + this.situation = null; + this.paused = false; + this.lastPos = 0; + this.pos = 0; // The absolute position of an animation is its position in the context of its complete duration (including delay and loops) + // When performing a delay, absPos is below 0 and when performing a loop, its value is above 1 + + this.absPos = 0; + this._speed = 1; + }, + extend: { + /** + * sets or returns the target of this animation + * @param o object || number In case of Object it holds all parameters. In case of number its the duration of the animation + * @param ease function || string Function which should be used for easing or easing keyword + * @param delay Number indicating the delay before the animation starts + * @return target || this + */ + animate: function animate(o, ease, delay) { + if (_typeof(o) === 'object') { + ease = o.ease; + delay = o.delay; + o = o.duration; + } + + var situation = new SVG.Situation({ + duration: o || 1000, + delay: delay || 0, + ease: SVG.easing[ease || '-'] || ease + }); + this.queue(situation); + return this; + }, + + /** + * sets a delay before the next element of the queue is called + * @param delay Duration of delay in milliseconds + * @return this.target() + */ + + /** + * sets or returns the target of this animation + * @param null || target SVG.Element which should be set as new target + * @return target || this + */ + target: function target(_target) { + if (_target && _target instanceof SVG.Element) { + this._target = _target; + return this; + } + + return this._target; + }, + // returns the absolute position at a given time + timeToAbsPos: function timeToAbsPos(timestamp) { + return (timestamp - this.situation.start) / (this.situation.duration / this._speed); + }, + // returns the timestamp from a given absolute positon + absPosToTime: function absPosToTime(absPos) { + return this.situation.duration / this._speed * absPos + this.situation.start; + }, + // starts the animationloop + startAnimFrame: function startAnimFrame() { + this.stopAnimFrame(); + this.animationFrame = window.requestAnimationFrame(function () { + this.step(); + }.bind(this)); + }, + // cancels the animationframe + stopAnimFrame: function stopAnimFrame() { + window.cancelAnimationFrame(this.animationFrame); + }, + // kicks off the animation - only does something when the queue is currently not active and at least one situation is set + start: function start() { + // dont start if already started + if (!this.active && this.situation) { + this.active = true; + this.startCurrent(); + } + + return this; + }, + // start the current situation + startCurrent: function startCurrent() { + this.situation.start = +new Date() + this.situation.delay / this._speed; + this.situation.finish = this.situation.start + this.situation.duration / this._speed; + return this.initAnimations().step(); + }, + + /** + * adds a function / Situation to the animation queue + * @param fn function / situation to add + * @return this + */ + queue: function queue(fn) { + if (typeof fn === 'function' || fn instanceof SVG.Situation) { + this.situations.push(fn); + } + + if (!this.situation) this.situation = this.situations.shift(); + return this; + }, + + /** + * pulls next element from the queue and execute it + * @return this + */ + dequeue: function dequeue() { + // stop current animation + this.stop(); // get next animation from queue + + this.situation = this.situations.shift(); + + if (this.situation) { + if (this.situation instanceof SVG.Situation) { + this.start(); + } else { + // If it is not a SVG.Situation, then it is a function, we execute it + this.situation.call(this); + } + } + + return this; + }, + // updates all animations to the current state of the element + // this is important when one property could be changed from another property + initAnimations: function initAnimations() { + var source; + var s = this.situation; + if (s.init) return this; + + for (var i in s.animations) { + source = this.target()[i](); + + if (!Array.isArray(source)) { + source = [source]; + } + + if (!Array.isArray(s.animations[i])) { + s.animations[i] = [s.animations[i]]; + } // if(s.animations[i].length > source.length) { + // source.concat = source.concat(s.animations[i].slice(source.length, s.animations[i].length)) + // } + + + for (var j = source.length; j--;) { + // The condition is because some methods return a normal number instead + // of a SVG.Number + if (s.animations[i][j] instanceof SVG.Number) { + source[j] = new SVG.Number(source[j]); + } + + s.animations[i][j] = source[j].morph(s.animations[i][j]); + } + } + + for (var i in s.attrs) { + s.attrs[i] = new SVG.MorphObj(this.target().attr(i), s.attrs[i]); + } + + for (var i in s.styles) { + s.styles[i] = new SVG.MorphObj(this.target().style(i), s.styles[i]); + } + + s.initialTransformation = this.target().matrixify(); + s.init = true; + return this; + }, + clearQueue: function clearQueue() { + this.situations = []; + return this; + }, + clearCurrent: function clearCurrent() { + this.situation = null; + return this; + }, + + /** stops the animation immediately + * @param jumpToEnd A Boolean indicating whether to complete the current animation immediately. + * @param clearQueue A Boolean indicating whether to remove queued animation as well. + * @return this + */ + stop: function stop(jumpToEnd, clearQueue) { + var active = this.active; + this.active = false; + + if (clearQueue) { + this.clearQueue(); + } + + if (jumpToEnd && this.situation) { + // initialize the situation if it was not + !active && this.startCurrent(); + this.atEnd(); + } + + this.stopAnimFrame(); + return this.clearCurrent(); + }, + after: function after(fn) { + var c = this.last(), + wrapper = function wrapper(e) { + if (e.detail.situation == c) { + fn.call(this, c); + this.off('finished.fx', wrapper); // prevent memory leak + } + }; + + this.target().on('finished.fx', wrapper); + return this._callStart(); + }, + // adds a callback which is called whenever one animation step is performed + during: function during(fn) { + var c = this.last(), + wrapper = function wrapper(e) { + if (e.detail.situation == c) { + fn.call(this, e.detail.pos, SVG.morph(e.detail.pos), e.detail.eased, c); + } + }; // see above + + + this.target().off('during.fx', wrapper).on('during.fx', wrapper); + this.after(function () { + this.off('during.fx', wrapper); + }); + return this._callStart(); + }, + // calls after ALL animations in the queue are finished + afterAll: function afterAll(fn) { + var wrapper = function wrapper(e) { + fn.call(this); + this.off('allfinished.fx', wrapper); + }; // see above + + + this.target().off('allfinished.fx', wrapper).on('allfinished.fx', wrapper); + return this._callStart(); + }, + last: function last() { + return this.situations.length ? this.situations[this.situations.length - 1] : this.situation; + }, + // adds one property to the animations + add: function add(method, args, type) { + this.last()[type || 'animations'][method] = args; + return this._callStart(); + }, + + /** perform one step of the animation + * @param ignoreTime Boolean indicating whether to ignore time and use position directly or recalculate position based on time + * @return this + */ + step: function step(ignoreTime) { + // convert current time to an absolute position + if (!ignoreTime) this.absPos = this.timeToAbsPos(+new Date()); // This part convert an absolute position to a position + + if (this.situation.loops !== false) { + var absPos, absPosInt, lastLoop; // If the absolute position is below 0, we just treat it as if it was 0 + + absPos = Math.max(this.absPos, 0); + absPosInt = Math.floor(absPos); + + if (this.situation.loops === true || absPosInt < this.situation.loops) { + this.pos = absPos - absPosInt; + lastLoop = this.situation.loop; + this.situation.loop = absPosInt; + } else { + this.absPos = this.situation.loops; + this.pos = 1; // The -1 here is because we don't want to toggle reversed when all the loops have been completed + + lastLoop = this.situation.loop - 1; + this.situation.loop = this.situation.loops; + } + + if (this.situation.reversing) { + // Toggle reversed if an odd number of loops as occured since the last call of step + this.situation.reversed = this.situation.reversed != Boolean((this.situation.loop - lastLoop) % 2); + } + } else { + // If there are no loop, the absolute position must not be above 1 + this.absPos = Math.min(this.absPos, 1); + this.pos = this.absPos; + } // while the absolute position can be below 0, the position must not be below 0 + + + if (this.pos < 0) this.pos = 0; + if (this.situation.reversed) this.pos = 1 - this.pos; // apply easing + + var eased = this.situation.ease(this.pos); // call once-callbacks + + for (var i in this.situation.once) { + if (i > this.lastPos && i <= eased) { + this.situation.once[i].call(this.target(), this.pos, eased); + delete this.situation.once[i]; + } + } // fire during callback with position, eased position and current situation as parameter + + + if (this.active) this.target().fire('during', { + pos: this.pos, + eased: eased, + fx: this, + situation: this.situation + }); // the user may call stop or finish in the during callback + // so make sure that we still have a valid situation + + if (!this.situation) { + return this; + } // apply the actual animation to every property + + + this.eachAt(); // do final code when situation is finished + + if (this.pos == 1 && !this.situation.reversed || this.situation.reversed && this.pos == 0) { + // stop animation callback + this.stopAnimFrame(); // fire finished callback with current situation as parameter + + this.target().fire('finished', { + fx: this, + situation: this.situation + }); + + if (!this.situations.length) { + this.target().fire('allfinished'); // Recheck the length since the user may call animate in the afterAll callback + + if (!this.situations.length) { + this.target().off('.fx'); // there shouldnt be any binding left, but to make sure... + + this.active = false; + } + } // start next animation + + + if (this.active) this.dequeue();else this.clearCurrent(); + } else if (!this.paused && this.active) { + // we continue animating when we are not at the end + this.startAnimFrame(); + } // save last eased position for once callback triggering + + + this.lastPos = eased; + return this; + }, + // calculates the step for every property and calls block with it + eachAt: function eachAt() { + var len, + at, + self = this, + target = this.target(), + s = this.situation; // apply animations which can be called trough a method + + for (var i in s.animations) { + at = [].concat(s.animations[i]).map(function (el) { + return typeof el !== 'string' && el.at ? el.at(s.ease(self.pos), self.pos) : el; + }); + target[i].apply(target, at); + } // apply animation which has to be applied with attr() + + + for (var i in s.attrs) { + at = [i].concat(s.attrs[i]).map(function (el) { + return typeof el !== 'string' && el.at ? el.at(s.ease(self.pos), self.pos) : el; + }); + target.attr.apply(target, at); + } // apply animation which has to be applied with style() + + + for (var i in s.styles) { + at = [i].concat(s.styles[i]).map(function (el) { + return typeof el !== 'string' && el.at ? el.at(s.ease(self.pos), self.pos) : el; + }); + target.style.apply(target, at); + } // animate initialTransformation which has to be chained + + + if (s.transforms.length) { + // get initial initialTransformation + at = s.initialTransformation; + + for (var i = 0, len = s.transforms.length; i < len; i++) { + // get next transformation in chain + var a = s.transforms[i]; // multiply matrix directly + + if (a instanceof SVG.Matrix) { + if (a.relative) { + at = at.multiply(new SVG.Matrix().morph(a).at(s.ease(this.pos))); + } else { + at = at.morph(a).at(s.ease(this.pos)); + } + + continue; + } // when transformation is absolute we have to reset the needed transformation first + + + if (!a.relative) { + a.undo(at.extract()); + } // and reapply it after + + + at = at.multiply(a.at(s.ease(this.pos))); + } // set new matrix on element + + + target.matrix(at); + } + + return this; + }, + // adds an once-callback which is called at a specific position and never again + once: function once(pos, fn, isEased) { + var c = this.last(); + if (!isEased) pos = c.ease(pos); + c.once[pos] = fn; + return this; + }, + _callStart: function _callStart() { + setTimeout(function () { + this.start(); + }.bind(this), 0); + return this; + } + }, + parent: SVG.Element, + // Add method to parent elements + construct: { + // Get fx module or create a new one, then animate with given duration and ease + animate: function animate(o, ease, delay) { + return (this.fx || (this.fx = new SVG.FX(this))).animate(o, ease, delay); + }, + delay: function delay(_delay) { + return (this.fx || (this.fx = new SVG.FX(this))).delay(_delay); + }, + stop: function stop(jumpToEnd, clearQueue) { + if (this.fx) { + this.fx.stop(jumpToEnd, clearQueue); + } + + return this; + }, + finish: function finish() { + if (this.fx) { + this.fx.finish(); + } + + return this; + } + } + }); // MorphObj is used whenever no morphable object is given + + SVG.MorphObj = SVG.invent({ + create: function create(from, to) { + // prepare color for morphing + if (SVG.Color.isColor(to)) return new SVG.Color(from).morph(to); // check if we have a list of values + + if (SVG.regex.delimiter.test(from)) { + // prepare path for morphing + if (SVG.regex.pathLetters.test(from)) return new SVG.PathArray(from).morph(to); // prepare value list for morphing + else return new SVG.Array(from).morph(to); + } // prepare number for morphing + + + if (SVG.regex.numberAndUnit.test(to)) return new SVG.Number(from).morph(to); // prepare for plain morphing + + this.value = from; + this.destination = to; + }, + extend: { + at: function at(pos, real) { + return real < 1 ? this.value : this.destination; + }, + valueOf: function valueOf() { + return this.value; + } + } + }); + SVG.extend(SVG.FX, { + // Add animatable attributes + attr: function attr(a, v, relative) { + // apply attributes individually + if (_typeof(a) === 'object') { + for (var key in a) { + this.attr(key, a[key]); + } + } else { + this.add(a, v, 'attrs'); + } + + return this; + }, + // Add animatable plot + plot: function plot(a, b, c, d) { + // Lines can be plotted with 4 arguments + if (arguments.length == 4) { + return this.plot([a, b, c, d]); + } + + return this.add('plot', new (this.target().morphArray)(a)); + } + }); + SVG.Box = SVG.invent({ + create: function create(x, y, width, height) { + if (_typeof(x) === 'object' && !(x instanceof SVG.Element)) { + // chromes getBoundingClientRect has no x and y property + return SVG.Box.call(this, x.left != null ? x.left : x.x, x.top != null ? x.top : x.y, x.width, x.height); + } else if (arguments.length == 4) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } // add center, right, bottom... + + + fullBox(this); + } + }); + SVG.BBox = SVG.invent({ + // Initialize + create: function create(element) { + SVG.Box.apply(this, [].slice.call(arguments)); // get values if element is given + + if (element instanceof SVG.Element) { + var box; // yes this is ugly, but Firefox can be a pain when it comes to elements that are not yet rendered + + try { + if (!document.documentElement.contains) { + // This is IE - it does not support contains() for top-level SVGs + var topParent = element.node; + + while (topParent.parentNode) { + topParent = topParent.parentNode; + } + + if (topParent != document) throw new Error('Element not in the dom'); + } else {// the element is NOT in the dom, throw error + // disabling the check below which fixes issue #76 + // if (!document.documentElement.contains(element.node)) throw new Exception('Element not in the dom') + } // find native bbox + + + box = element.node.getBBox(); + } catch (e) { + if (element instanceof SVG.Shape) { + if (!SVG.parser.draw) { + // fixes apexcharts/vue-apexcharts #14 + SVG.prepare(); + } + + var clone = element.clone(SVG.parser.draw.instance).show(); + + if (clone && clone.node && typeof clone.node.getBBox === 'function') { + // this check fixes jest unit tests + box = clone.node.getBBox(); + } + + if (clone && typeof clone.remove === 'function') { + clone.remove(); + } + } else { + box = { + x: element.node.clientLeft, + y: element.node.clientTop, + width: element.node.clientWidth, + height: element.node.clientHeight + }; + } + } + + SVG.Box.call(this, box); + } + }, + // Define ancestor + inherit: SVG.Box, + // Define Parent + parent: SVG.Element, + // Constructor + construct: { + // Get bounding box + bbox: function bbox() { + return new SVG.BBox(this); + } + } + }); + SVG.BBox.prototype.constructor = SVG.BBox; + SVG.Matrix = SVG.invent({ + // Initialize + create: function create(source) { + var base = arrayToMatrix([1, 0, 0, 1, 0, 0]); // ensure source as object + + source = source === null ? base : source instanceof SVG.Element ? source.matrixify() : typeof source === 'string' ? arrayToMatrix(source.split(SVG.regex.delimiter).map(parseFloat)) : arguments.length == 6 ? arrayToMatrix([].slice.call(arguments)) : Array.isArray(source) ? arrayToMatrix(source) : source && _typeof(source) === 'object' ? source : base; // merge source + + for (var i = abcdef.length - 1; i >= 0; --i) { + this[abcdef[i]] = source[abcdef[i]] != null ? source[abcdef[i]] : base[abcdef[i]]; + } + }, + // Add methods + extend: { + // Extract individual transformations + extract: function extract() { + // find delta transform points + var px = deltaTransformPoint(this, 0, 1); + deltaTransformPoint(this, 1, 0); + var skewX = 180 / Math.PI * Math.atan2(px.y, px.x) - 90; + return { + // translation + x: this.e, + y: this.f, + transformedX: (this.e * Math.cos(skewX * Math.PI / 180) + this.f * Math.sin(skewX * Math.PI / 180)) / Math.sqrt(this.a * this.a + this.b * this.b), + transformedY: (this.f * Math.cos(skewX * Math.PI / 180) + this.e * Math.sin(-skewX * Math.PI / 180)) / Math.sqrt(this.c * this.c + this.d * this.d), + // rotation + rotation: skewX, + a: this.a, + b: this.b, + c: this.c, + d: this.d, + e: this.e, + f: this.f, + matrix: new SVG.Matrix(this) + }; + }, + // Clone matrix + clone: function clone() { + return new SVG.Matrix(this); + }, + // Morph one matrix into another + morph: function morph(matrix) { + // store new destination + this.destination = new SVG.Matrix(matrix); + return this; + }, + // Multiplies by given matrix + multiply: function multiply(matrix) { + return new SVG.Matrix(this.native().multiply(parseMatrix(matrix).native())); + }, + // Inverses matrix + inverse: function inverse() { + return new SVG.Matrix(this.native().inverse()); + }, + // Translate matrix + translate: function translate(x, y) { + return new SVG.Matrix(this.native().translate(x || 0, y || 0)); + }, + // Convert to native SVGMatrix + native: function native() { + // create new matrix + var matrix = SVG.parser.native.createSVGMatrix(); // update with current values + + for (var i = abcdef.length - 1; i >= 0; i--) { + matrix[abcdef[i]] = this[abcdef[i]]; + } + + return matrix; + }, + // Convert matrix to string + toString: function toString() { + // Construct the matrix directly, avoid values that are too small + return 'matrix(' + float32String(this.a) + ',' + float32String(this.b) + ',' + float32String(this.c) + ',' + float32String(this.d) + ',' + float32String(this.e) + ',' + float32String(this.f) + ')'; + } + }, + // Define parent + parent: SVG.Element, + // Add parent method + construct: { + // Get current matrix + ctm: function ctm() { + return new SVG.Matrix(this.node.getCTM()); + }, + // Get current screen matrix + screenCTM: function screenCTM() { + /* https://bugzilla.mozilla.org/show_bug.cgi?id=1344537 + This is needed because FF does not return the transformation matrix + for the inner coordinate system when getScreenCTM() is called on nested svgs. + However all other Browsers do that */ + if (this instanceof SVG.Nested) { + var rect = this.rect(1, 1); + var m = rect.node.getScreenCTM(); + rect.remove(); + return new SVG.Matrix(m); + } + + return new SVG.Matrix(this.node.getScreenCTM()); + } + } + }); + SVG.Point = SVG.invent({ + // Initialize + create: function create(x, y) { + var source, + base = { + x: 0, + y: 0 + }; // ensure source as object + + source = Array.isArray(x) ? { + x: x[0], + y: x[1] + } : _typeof(x) === 'object' ? { + x: x.x, + y: x.y + } : x != null ? { + x: x, + y: y != null ? y : x + } : base; // If y has no value, then x is used has its value + // merge source + + this.x = source.x; + this.y = source.y; + }, + // Add methods + extend: { + // Clone point + clone: function clone() { + return new SVG.Point(this); + }, + // Morph one point into another + morph: function morph(x, y) { + // store new destination + this.destination = new SVG.Point(x, y); + return this; + } + } + }); + SVG.extend(SVG.Element, { + // Get point + point: function point(x, y) { + return new SVG.Point(x, y).transform(this.screenCTM().inverse()); + } + }); + SVG.extend(SVG.Element, { + // Set svg element attribute + attr: function attr(a, v, n) { + // act as full getter + if (a == null) { + // get an object of attributes + a = {}; + v = this.node.attributes; + + for (var n = v.length - 1; n >= 0; n--) { + a[v[n].nodeName] = SVG.regex.isNumber.test(v[n].nodeValue) ? parseFloat(v[n].nodeValue) : v[n].nodeValue; + } + + return a; + } else if (_typeof(a) === 'object') { + // apply every attribute individually if an object is passed + for (var v_ in a) { + this.attr(v_, a[v_]); + } + } else if (v === null) { + // remove value + this.node.removeAttribute(a); + } else if (v == null) { + // act as a getter if the first and only argument is not an object + v = this.node.getAttribute(a); + return v == null ? SVG.defaults.attrs[a] : SVG.regex.isNumber.test(v) ? parseFloat(v) : v; + } else { + // BUG FIX: some browsers will render a stroke if a color is given even though stroke width is 0 + if (a == 'stroke-width') { + this.attr('stroke', parseFloat(v) > 0 ? this._stroke : null); + } else if (a == 'stroke') { + this._stroke = v; + } // convert image fill and stroke to patterns + + + if (a == 'fill' || a == 'stroke') { + if (SVG.regex.isImage.test(v)) { + v = this.doc().defs().image(v, 0, 0); + } + + if (v instanceof SVG.Image) { + v = this.doc().defs().pattern(0, 0, function () { + this.add(v); + }); + } + } // ensure correct numeric values (also accepts NaN and Infinity) + + + if (typeof v === 'number') { + v = new SVG.Number(v); + } // ensure full hex color + else if (SVG.Color.isColor(v)) { + v = new SVG.Color(v); + } // parse array values + else if (Array.isArray(v)) { + v = new SVG.Array(v); + } // if the passed attribute is leading... + + + if (a == 'leading') { + // ... call the leading method instead + if (this.leading) { + this.leading(v); + } + } else { + // set given attribute on node + typeof n === 'string' ? this.node.setAttributeNS(n, a, v.toString()) : this.node.setAttribute(a, v.toString()); + } // rebuild if required + + + if (this.rebuild && (a == 'font-size' || a == 'x')) { + this.rebuild(a, v); + } + } + + return this; + } + }); + SVG.extend(SVG.Element, { + // Add transformations + transform: function transform(o, relative) { + // get target in case of the fx module, otherwise reference this + var target = this, + matrix; + // act as a getter + + if (_typeof(o) !== 'object') { + // get current matrix + matrix = new SVG.Matrix(target).extract(); + return typeof o === 'string' ? matrix[o] : matrix; + } // get current matrix + + + matrix = new SVG.Matrix(target); // ensure relative flag + + relative = !!relative || !!o.relative; // act on matrix + + if (o.a != null) { + matrix = relative // relative + ? matrix.multiply(new SVG.Matrix(o)) // absolute + : new SVG.Matrix(o); + } + + return this.attr('transform', matrix); + } + }); + SVG.extend(SVG.Element, { + // Reset all transformations + untransform: function untransform() { + return this.attr('transform', null); + }, + // merge the whole transformation chain into one matrix and returns it + matrixify: function matrixify() { + var matrix = (this.attr('transform') || '').split(SVG.regex.transforms).slice(0, -1).map(function (str) { + // generate key => value pairs + var kv = str.trim().split('('); + return [kv[0], kv[1].split(SVG.regex.delimiter).map(function (str) { + return parseFloat(str); + })]; + }) // merge every transformation into one matrix + .reduce(function (matrix, transform) { + if (transform[0] == 'matrix') return matrix.multiply(arrayToMatrix(transform[1])); + return matrix[transform[0]].apply(matrix, transform[1]); + }, new SVG.Matrix()); + return matrix; + }, + // add an element to another parent without changing the visual representation on the screen + toParent: function toParent(parent) { + if (this == parent) return this; + var ctm = this.screenCTM(); + var pCtm = parent.screenCTM().inverse(); + this.addTo(parent).untransform().transform(pCtm.multiply(ctm)); + return this; + }, + // same as above with parent equals root-svg + toDoc: function toDoc() { + return this.toParent(this.doc()); + } + }); + SVG.Transformation = SVG.invent({ + create: function create(source, inversed) { + if (arguments.length > 1 && typeof inversed !== 'boolean') { + return this.constructor.call(this, [].slice.call(arguments)); + } + + if (Array.isArray(source)) { + for (var i = 0, len = this.arguments.length; i < len; ++i) { + this[this.arguments[i]] = source[i]; + } + } else if (source && _typeof(source) === 'object') { + for (var i = 0, len = this.arguments.length; i < len; ++i) { + this[this.arguments[i]] = source[this.arguments[i]]; + } + } + + this.inversed = false; + + if (inversed === true) { + this.inversed = true; + } + } + }); + SVG.Translate = SVG.invent({ + parent: SVG.Matrix, + inherit: SVG.Transformation, + create: function create(source, inversed) { + this.constructor.apply(this, [].slice.call(arguments)); + }, + extend: { + arguments: ['transformedX', 'transformedY'], + method: 'translate' + } + }); + SVG.extend(SVG.Element, { + // Dynamic style generator + style: function style(s, v) { + if (arguments.length == 0) { + // get full style + return this.node.style.cssText || ''; + } else if (arguments.length < 2) { + // apply every style individually if an object is passed + if (_typeof(s) === 'object') { + for (var v_ in s) { + this.style(v_, s[v_]); + } + } else if (SVG.regex.isCss.test(s)) { + // parse css string + s = s.split(/\s*;\s*/) // filter out suffix ; and stuff like ;; + .filter(function (e) { + return !!e; + }).map(function (e) { + return e.split(/\s*:\s*/); + }); // apply every definition individually + + while (v = s.pop()) { + this.style(v[0], v[1]); + } + } else { + // act as a getter if the first and only argument is not an object + return this.node.style[camelCase(s)]; + } + } else { + this.node.style[camelCase(s)] = v === null || SVG.regex.isBlank.test(v) ? '' : v; + } + + return this; + } + }); + SVG.Parent = SVG.invent({ + // Initialize node + create: function create(element) { + this.constructor.call(this, element); + }, + // Inherit from + inherit: SVG.Element, + // Add class methods + extend: { + // Returns all child elements + children: function children() { + return SVG.utils.map(SVG.utils.filterSVGElements(this.node.childNodes), function (node) { + return SVG.adopt(node); + }); + }, + // Add given element at a position + add: function add(element, i) { + if (i == null) { + this.node.appendChild(element.node); + } else if (element.node != this.node.childNodes[i]) { + this.node.insertBefore(element.node, this.node.childNodes[i]); + } + + return this; + }, + // Basically does the same as `add()` but returns the added element instead + put: function put(element, i) { + this.add(element, i); + return element; + }, + // Checks if the given element is a child + has: function has(element) { + return this.index(element) >= 0; + }, + // Gets index of given element + index: function index(element) { + return [].slice.call(this.node.childNodes).indexOf(element.node); + }, + // Get a element at the given index + get: function get(i) { + return SVG.adopt(this.node.childNodes[i]); + }, + // Get first child + first: function first() { + return this.get(0); + }, + // Get the last child + last: function last() { + return this.get(this.node.childNodes.length - 1); + }, + // Iterates over all children and invokes a given block + each: function each(block, deep) { + var il, + children = this.children(); + + for (var i = 0, il = children.length; i < il; i++) { + if (children[i] instanceof SVG.Element) { + block.apply(children[i], [i, children]); + } + + if (deep && children[i] instanceof SVG.Container) { + children[i].each(block, deep); + } + } + + return this; + }, + // Remove a given child + removeElement: function removeElement(element) { + this.node.removeChild(element.node); + return this; + }, + // Remove all elements in this container + clear: function clear() { + // remove children + while (this.node.hasChildNodes()) { + this.node.removeChild(this.node.lastChild); + } // remove defs reference + + + delete this._defs; + return this; + }, + // Get defs + defs: function defs() { + return this.doc().defs(); + } + } + }); + SVG.extend(SVG.Parent, { + ungroup: function ungroup(parent, depth) { + if (depth === 0 || this instanceof SVG.Defs || this.node == SVG.parser.draw) return this; + parent = parent || (this instanceof SVG.Doc ? this : this.parent(SVG.Parent)); + depth = depth || Infinity; + this.each(function () { + if (this instanceof SVG.Defs) return this; + if (this instanceof SVG.Parent) return this.ungroup(parent, depth - 1); + return this.toParent(parent); + }); + this.node.firstChild || this.remove(); + return this; + }, + flatten: function flatten(parent, depth) { + return this.ungroup(parent, depth); + } + }); + SVG.Container = SVG.invent({ + // Initialize node + create: function create(element) { + this.constructor.call(this, element); + }, + // Inherit from + inherit: SVG.Parent + }); + SVG.ViewBox = SVG.invent({ + // Define parent + parent: SVG.Container, + // Add parent method + construct: {} + }) // Add events to elements + ; + ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseover', 'mouseout', 'mousemove', // , 'mouseenter' -> not supported by IE + // , 'mouseleave' -> not supported by IE + 'touchstart', 'touchmove', 'touchleave', 'touchend', 'touchcancel'].forEach(function (event) { + // add event to SVG.Element + SVG.Element.prototype[event] = function (f) { + // bind event to element rather than element node + SVG.on(this.node, event, f); + return this; + }; + }); // Initialize listeners stack + + SVG.listeners = []; + SVG.handlerMap = []; + SVG.listenerId = 0; // Add event binder in the SVG namespace + + SVG.on = function (node, event, listener, binding, options) { + // create listener, get object-index + var l = listener.bind(binding || node.instance || node), + index = (SVG.handlerMap.indexOf(node) + 1 || SVG.handlerMap.push(node)) - 1, + ev = event.split('.')[0], + ns = event.split('.')[1] || '*'; // ensure valid object + + SVG.listeners[index] = SVG.listeners[index] || {}; + SVG.listeners[index][ev] = SVG.listeners[index][ev] || {}; + SVG.listeners[index][ev][ns] = SVG.listeners[index][ev][ns] || {}; + + if (!listener._svgjsListenerId) { + listener._svgjsListenerId = ++SVG.listenerId; + } // reference listener + + + SVG.listeners[index][ev][ns][listener._svgjsListenerId] = l; // add listener + + node.addEventListener(ev, l, options || { + passive: true + }); + }; // Add event unbinder in the SVG namespace + + + SVG.off = function (node, event, listener) { + var index = SVG.handlerMap.indexOf(node), + ev = event && event.split('.')[0], + ns = event && event.split('.')[1], + namespace = ''; + if (index == -1) return; + + if (listener) { + if (typeof listener === 'function') listener = listener._svgjsListenerId; + if (!listener) return; // remove listener reference + + if (SVG.listeners[index][ev] && SVG.listeners[index][ev][ns || '*']) { + // remove listener + node.removeEventListener(ev, SVG.listeners[index][ev][ns || '*'][listener], false); + delete SVG.listeners[index][ev][ns || '*'][listener]; + } + } else if (ns && ev) { + // remove all listeners for a namespaced event + if (SVG.listeners[index][ev] && SVG.listeners[index][ev][ns]) { + for (var listener_ in SVG.listeners[index][ev][ns]) { + SVG.off(node, [ev, ns].join('.'), listener_); + } + + delete SVG.listeners[index][ev][ns]; + } + } else if (ns) { + // remove all listeners for a specific namespace + for (var event_ in SVG.listeners[index]) { + for (var namespace in SVG.listeners[index][event_]) { + if (ns === namespace) { + SVG.off(node, [event_, ns].join('.')); + } + } + } + } else if (ev) { + // remove all listeners for the event + if (SVG.listeners[index][ev]) { + for (var namespace in SVG.listeners[index][ev]) { + SVG.off(node, [ev, namespace].join('.')); + } + + delete SVG.listeners[index][ev]; + } + } else { + // remove all listeners on a given node + for (var event_ in SVG.listeners[index]) { + SVG.off(node, event_); + } + + delete SVG.listeners[index]; + delete SVG.handlerMap[index]; + } + }; // + + + SVG.extend(SVG.Element, { + // Bind given event to listener + on: function on(event, listener, binding, options) { + SVG.on(this.node, event, listener, binding, options); + return this; + }, + // Unbind event from listener + off: function off(event, listener) { + SVG.off(this.node, event, listener); + return this; + }, + // Fire given event + fire: function fire(event, data) { + // Dispatch event + if (event instanceof window.Event) { + this.node.dispatchEvent(event); + } else { + this.node.dispatchEvent(event = new SVG.CustomEvent(event, { + detail: data, + cancelable: true + })); + } + + this._event = event; + return this; + }, + event: function event() { + return this._event; + } + }); + SVG.Defs = SVG.invent({ + // Initialize node + create: 'defs', + // Inherit from + inherit: SVG.Container + }); + SVG.G = SVG.invent({ + // Initialize node + create: 'g', + // Inherit from + inherit: SVG.Container, + // Add class methods + extend: { + // Move over x-axis + x: function x(_x2) { + return _x2 == null ? this.transform('x') : this.transform({ + x: _x2 - this.x() + }, true); + } + }, + // Add parent method + construct: { + // Create a group element + group: function group() { + return this.put(new SVG.G()); + } + } + }); + SVG.Doc = SVG.invent({ + // Initialize node + create: function create(element) { + if (element) { + // ensure the presence of a dom element + element = typeof element === 'string' ? document.getElementById(element) : element; // If the target is an svg element, use that element as the main wrapper. + // This allows svg.js to work with svg documents as well. + + if (element.nodeName == 'svg') { + this.constructor.call(this, element); + } else { + this.constructor.call(this, SVG.create('svg')); + element.appendChild(this.node); + this.size('100%', '100%'); + } // set svg element attributes and ensure defs node + + + this.namespace().defs(); + } + }, + // Inherit from + inherit: SVG.Container, + // Add class methods + extend: { + // Add namespaces + namespace: function namespace() { + return this.attr({ + xmlns: SVG.ns, + version: '1.1' + }).attr('xmlns:xlink', SVG.xlink, SVG.xmlns).attr('xmlns:svgjs', SVG.svgjs, SVG.xmlns); + }, + // Creates and returns defs element + defs: function defs() { + if (!this._defs) { + var defs; // Find or create a defs element in this instance + + if (defs = this.node.getElementsByTagName('defs')[0]) { + this._defs = SVG.adopt(defs); + } else { + this._defs = new SVG.Defs(); + } // Make sure the defs node is at the end of the stack + + + this.node.appendChild(this._defs.node); + } + + return this._defs; + }, + // custom parent method + parent: function parent() { + if (!this.node.parentNode || this.node.parentNode.nodeName == '#document') return null; + return this.node.parentNode; + }, + // Removes the doc from the DOM + remove: function remove() { + if (this.parent()) { + this.parent().removeChild(this.node); + } + + return this; + }, + clear: function clear() { + // remove children + while (this.node.hasChildNodes()) { + this.node.removeChild(this.node.lastChild); + } // remove defs reference + + + delete this._defs; // add back parser + + if (SVG.parser.draw && !SVG.parser.draw.parentNode) { + this.node.appendChild(SVG.parser.draw); + } + + return this; + }, + clone: function clone(parent) { + // write dom data to the dom so the clone can pickup the data + this.writeDataToDom(); // get reference to node + + var node = this.node; // clone element and assign new id + + var clone = assignNewId(node.cloneNode(true)); // insert the clone in the given parent or after myself + + if (parent) { + (parent.node || parent).appendChild(clone.node); + } else { + node.parentNode.insertBefore(clone.node, node.nextSibling); + } + + return clone; + } + } + }); // ### This module adds backward / forward functionality to elements. + // + + SVG.extend(SVG.Element, {// Get all siblings, including myself + }); + SVG.Gradient = SVG.invent({ + // Initialize node + create: function create(type) { + this.constructor.call(this, SVG.create(type + 'Gradient')); // store type + + this.type = type; + }, + // Inherit from + inherit: SVG.Container, + // Add class methods + extend: { + // Add a color stop + at: function at(offset, color, opacity) { + return this.put(new SVG.Stop()).update(offset, color, opacity); + }, + // Update gradient + update: function update(block) { + // remove all stops + this.clear(); // invoke passed block + + if (typeof block === 'function') { + block.call(this, this); + } + + return this; + }, + // Return the fill id + fill: function fill() { + return 'url(#' + this.id() + ')'; + }, + // Alias string convertion to fill + toString: function toString() { + return this.fill(); + }, + // custom attr to handle transform + attr: function attr(a, b, c) { + if (a == 'transform') a = 'gradientTransform'; + return SVG.Container.prototype.attr.call(this, a, b, c); + } + }, + // Add parent method + construct: { + // Create gradient element in defs + gradient: function gradient(type, block) { + return this.defs().gradient(type, block); + } + } + }); // Add animatable methods to both gradient and fx module + + SVG.extend(SVG.Gradient, SVG.FX, { + // From position + from: function from(x, y) { + return (this._target || this).type == 'radial' ? this.attr({ + fx: new SVG.Number(x), + fy: new SVG.Number(y) + }) : this.attr({ + x1: new SVG.Number(x), + y1: new SVG.Number(y) + }); + }, + // To position + to: function to(x, y) { + return (this._target || this).type == 'radial' ? this.attr({ + cx: new SVG.Number(x), + cy: new SVG.Number(y) + }) : this.attr({ + x2: new SVG.Number(x), + y2: new SVG.Number(y) + }); + } + }); // Base gradient generation + + SVG.extend(SVG.Defs, { + // define gradient + gradient: function gradient(type, block) { + return this.put(new SVG.Gradient(type)).update(block); + } + }); + SVG.Stop = SVG.invent({ + // Initialize node + create: 'stop', + // Inherit from + inherit: SVG.Element, + // Add class methods + extend: { + // add color stops + update: function update(o) { + if (typeof o === 'number' || o instanceof SVG.Number) { + o = { + offset: arguments[0], + color: arguments[1], + opacity: arguments[2] + }; + } // set attributes + + + if (o.opacity != null) this.attr('stop-opacity', o.opacity); + if (o.color != null) this.attr('stop-color', o.color); + if (o.offset != null) this.attr('offset', new SVG.Number(o.offset)); + return this; + } + } + }); + SVG.Pattern = SVG.invent({ + // Initialize node + create: 'pattern', + // Inherit from + inherit: SVG.Container, + // Add class methods + extend: { + // Return the fill id + fill: function fill() { + return 'url(#' + this.id() + ')'; + }, + // Update pattern by rebuilding + update: function update(block) { + // remove content + this.clear(); // invoke passed block + + if (typeof block === 'function') { + block.call(this, this); + } + + return this; + }, + // Alias string convertion to fill + toString: function toString() { + return this.fill(); + }, + // custom attr to handle transform + attr: function attr(a, b, c) { + if (a == 'transform') a = 'patternTransform'; + return SVG.Container.prototype.attr.call(this, a, b, c); + } + }, + // Add parent method + construct: { + // Create pattern element in defs + pattern: function pattern(width, height, block) { + return this.defs().pattern(width, height, block); + } + } + }); + SVG.extend(SVG.Defs, { + // Define gradient + pattern: function pattern(width, height, block) { + return this.put(new SVG.Pattern()).update(block).attr({ + x: 0, + y: 0, + width: width, + height: height, + patternUnits: 'userSpaceOnUse' + }); + } + }); + SVG.Shape = SVG.invent({ + // Initialize node + create: function create(element) { + this.constructor.call(this, element); + }, + // Inherit from + inherit: SVG.Element + }); + SVG.Symbol = SVG.invent({ + // Initialize node + create: 'symbol', + // Inherit from + inherit: SVG.Container, + construct: { + // create symbol + symbol: function symbol() { + return this.put(new SVG.Symbol()); + } + } + }); + SVG.Use = SVG.invent({ + // Initialize node + create: 'use', + // Inherit from + inherit: SVG.Shape, + // Add class methods + extend: { + // Use element as a reference + element: function element(_element, file) { + // Set lined element + return this.attr('href', (file || '') + '#' + _element, SVG.xlink); + } + }, + // Add parent method + construct: { + // Create a use element + use: function use(element, file) { + return this.put(new SVG.Use()).element(element, file); + } + } + }); + SVG.Rect = SVG.invent({ + // Initialize node + create: 'rect', + // Inherit from + inherit: SVG.Shape, + // Add parent method + construct: { + // Create a rect element + rect: function rect(width, height) { + return this.put(new SVG.Rect()).size(width, height); + } + } + }); + SVG.Circle = SVG.invent({ + // Initialize node + create: 'circle', + // Inherit from + inherit: SVG.Shape, + // Add parent method + construct: { + // Create circle element, based on ellipse + circle: function circle(size) { + return this.put(new SVG.Circle()).rx(new SVG.Number(size).divide(2)).move(0, 0); + } + } + }); + SVG.extend(SVG.Circle, SVG.FX, { + // Radius x value + rx: function rx(_rx) { + return this.attr('r', _rx); + }, + // Alias radius x value + ry: function ry(_ry) { + return this.rx(_ry); + } + }); + SVG.Ellipse = SVG.invent({ + // Initialize node + create: 'ellipse', + // Inherit from + inherit: SVG.Shape, + // Add parent method + construct: { + // Create an ellipse + ellipse: function ellipse(width, height) { + return this.put(new SVG.Ellipse()).size(width, height).move(0, 0); + } + } + }); + SVG.extend(SVG.Ellipse, SVG.Rect, SVG.FX, { + // Radius x value + rx: function rx(_rx2) { + return this.attr('rx', _rx2); + }, + // Radius y value + ry: function ry(_ry2) { + return this.attr('ry', _ry2); + } + }); // Add common method + + SVG.extend(SVG.Circle, SVG.Ellipse, { + // Move over x-axis + x: function x(_x3) { + return _x3 == null ? this.cx() - this.rx() : this.cx(_x3 + this.rx()); + }, + // Move over y-axis + y: function y(_y2) { + return _y2 == null ? this.cy() - this.ry() : this.cy(_y2 + this.ry()); + }, + // Move by center over x-axis + cx: function cx(x) { + return x == null ? this.attr('cx') : this.attr('cx', x); + }, + // Move by center over y-axis + cy: function cy(y) { + return y == null ? this.attr('cy') : this.attr('cy', y); + }, + // Set width of element + width: function width(_width2) { + return _width2 == null ? this.rx() * 2 : this.rx(new SVG.Number(_width2).divide(2)); + }, + // Set height of element + height: function height(_height2) { + return _height2 == null ? this.ry() * 2 : this.ry(new SVG.Number(_height2).divide(2)); + }, + // Custom size function + size: function size(width, height) { + var p = proportionalSize(this, width, height); + return this.rx(new SVG.Number(p.width).divide(2)).ry(new SVG.Number(p.height).divide(2)); + } + }); + SVG.Line = SVG.invent({ + // Initialize node + create: 'line', + // Inherit from + inherit: SVG.Shape, + // Add class methods + extend: { + // Get array + array: function array() { + return new SVG.PointArray([[this.attr('x1'), this.attr('y1')], [this.attr('x2'), this.attr('y2')]]); + }, + // Overwrite native plot() method + plot: function plot(x1, y1, x2, y2) { + if (x1 == null) { + return this.array(); + } else if (typeof y1 !== 'undefined') { + x1 = { + x1: x1, + y1: y1, + x2: x2, + y2: y2 + }; + } else { + x1 = new SVG.PointArray(x1).toLine(); + } + + return this.attr(x1); + }, + // Move by left top corner + move: function move(x, y) { + return this.attr(this.array().move(x, y).toLine()); + }, + // Set element size to given width and height + size: function size(width, height) { + var p = proportionalSize(this, width, height); + return this.attr(this.array().size(p.width, p.height).toLine()); + } + }, + // Add parent method + construct: { + // Create a line element + line: function line(x1, y1, x2, y2) { + // make sure plot is called as a setter + // x1 is not necessarily a number, it can also be an array, a string and a SVG.PointArray + return SVG.Line.prototype.plot.apply(this.put(new SVG.Line()), x1 != null ? [x1, y1, x2, y2] : [0, 0, 0, 0]); + } + } + }); + SVG.Polyline = SVG.invent({ + // Initialize node + create: 'polyline', + // Inherit from + inherit: SVG.Shape, + // Add parent method + construct: { + // Create a wrapped polyline element + polyline: function polyline(p) { + // make sure plot is called as a setter + return this.put(new SVG.Polyline()).plot(p || new SVG.PointArray()); + } + } + }); + SVG.Polygon = SVG.invent({ + // Initialize node + create: 'polygon', + // Inherit from + inherit: SVG.Shape, + // Add parent method + construct: { + // Create a wrapped polygon element + polygon: function polygon(p) { + // make sure plot is called as a setter + return this.put(new SVG.Polygon()).plot(p || new SVG.PointArray()); + } + } + }); // Add polygon-specific functions + + SVG.extend(SVG.Polyline, SVG.Polygon, { + // Get array + array: function array() { + return this._array || (this._array = new SVG.PointArray(this.attr('points'))); + }, + // Plot new path + plot: function plot(p) { + return p == null ? this.array() : this.clear().attr('points', typeof p === 'string' ? p : this._array = new SVG.PointArray(p)); + }, + // Clear array cache + clear: function clear() { + delete this._array; + return this; + }, + // Move by left top corner + move: function move(x, y) { + return this.attr('points', this.array().move(x, y)); + }, + // Set element size to given width and height + size: function size(width, height) { + var p = proportionalSize(this, width, height); + return this.attr('points', this.array().size(p.width, p.height)); + } + }); // unify all point to point elements + + SVG.extend(SVG.Line, SVG.Polyline, SVG.Polygon, { + // Define morphable array + morphArray: SVG.PointArray, + // Move by left top corner over x-axis + x: function x(_x4) { + return _x4 == null ? this.bbox().x : this.move(_x4, this.bbox().y); + }, + // Move by left top corner over y-axis + y: function y(_y3) { + return _y3 == null ? this.bbox().y : this.move(this.bbox().x, _y3); + }, + // Set width of element + width: function width(_width3) { + var b = this.bbox(); + return _width3 == null ? b.width : this.size(_width3, b.height); + }, + // Set height of element + height: function height(_height3) { + var b = this.bbox(); + return _height3 == null ? b.height : this.size(b.width, _height3); + } + }); + SVG.Path = SVG.invent({ + // Initialize node + create: 'path', + // Inherit from + inherit: SVG.Shape, + // Add class methods + extend: { + // Define morphable array + morphArray: SVG.PathArray, + // Get array + array: function array() { + return this._array || (this._array = new SVG.PathArray(this.attr('d'))); + }, + // Plot new path + plot: function plot(d) { + return d == null ? this.array() : this.clear().attr('d', typeof d === 'string' ? d : this._array = new SVG.PathArray(d)); + }, + // Clear array cache + clear: function clear() { + delete this._array; + return this; + } + }, + // Add parent method + construct: { + // Create a wrapped path element + path: function path(d) { + // make sure plot is called as a setter + return this.put(new SVG.Path()).plot(d || new SVG.PathArray()); + } + } + }); + SVG.Image = SVG.invent({ + // Initialize node + create: 'image', + // Inherit from + inherit: SVG.Shape, + // Add class methods + extend: { + // (re)load image + load: function load(url) { + if (!url) return this; + var self = this, + img = new window.Image(); // preload image + + SVG.on(img, 'load', function () { + SVG.off(img); + var p = self.parent(SVG.Pattern); + if (p === null) return; // ensure image size + + if (self.width() == 0 && self.height() == 0) { + self.size(img.width, img.height); + } // ensure pattern size if not set + + + if (p && p.width() == 0 && p.height() == 0) { + p.size(self.width(), self.height()); + } // callback + + + if (typeof self._loaded === 'function') { + self._loaded.call(self, { + width: img.width, + height: img.height, + ratio: img.width / img.height, + url: url + }); + } + }); + SVG.on(img, 'error', function (e) { + SVG.off(img); + + if (typeof self._error === 'function') { + self._error.call(self, e); + } + }); + return this.attr('href', img.src = this.src = url, SVG.xlink); + }, + // Add loaded callback + loaded: function loaded(_loaded) { + this._loaded = _loaded; + return this; + }, + error: function error(_error) { + this._error = _error; + return this; + } + }, + // Add parent method + construct: { + // create image element, load image and set its size + image: function image(source, width, height) { + return this.put(new SVG.Image()).load(source).size(width || 0, height || width || 0); + } + } + }); + SVG.Text = SVG.invent({ + // Initialize node + create: function create() { + this.constructor.call(this, SVG.create('text')); + this.dom.leading = new SVG.Number(1.3); // store leading value for rebuilding + + this._rebuild = true; // enable automatic updating of dy values + + this._build = false; // disable build mode for adding multiple lines + // set default font + + this.attr('font-family', SVG.defaults.attrs['font-family']); + }, + // Inherit from + inherit: SVG.Shape, + // Add class methods + extend: { + // Move over x-axis + x: function x(_x5) { + // act as getter + if (_x5 == null) { + return this.attr('x'); + } + + return this.attr('x', _x5); + }, + // Set the text content + text: function text(_text) { + // act as getter + if (typeof _text === 'undefined') { + var _text = ''; + var children = this.node.childNodes; + + for (var i = 0, len = children.length; i < len; ++i) { + // add newline if its not the first child and newLined is set to true + if (i != 0 && children[i].nodeType != 3 && SVG.adopt(children[i]).dom.newLined == true) { + _text += '\n'; + } // add content of this node + + + _text += children[i].textContent; + } + + return _text; + } // remove existing content + + + this.clear().build(true); + + if (typeof _text === 'function') { + // call block + _text.call(this, this); + } else { + // store text and make sure text is not blank + _text = _text.split('\n'); // build new lines + + for (var i = 0, il = _text.length; i < il; i++) { + this.tspan(_text[i]).newLine(); + } + } // disable build mode and rebuild lines + + + return this.build(false).rebuild(); + }, + // Set font size + size: function size(_size) { + return this.attr('font-size', _size).rebuild(); + }, + // Set / get leading + leading: function leading(value) { + // act as getter + if (value == null) { + return this.dom.leading; + } // act as setter + + + this.dom.leading = new SVG.Number(value); + return this.rebuild(); + }, + // Get all the first level lines + lines: function lines() { + var node = (this.textPath && this.textPath() || this).node; // filter tspans and map them to SVG.js instances + + var lines = SVG.utils.map(SVG.utils.filterSVGElements(node.childNodes), function (el) { + return SVG.adopt(el); + }); // return an instance of SVG.set + + return new SVG.Set(lines); + }, + // Rebuild appearance type + rebuild: function rebuild(_rebuild) { + // store new rebuild flag if given + if (typeof _rebuild === 'boolean') { + this._rebuild = _rebuild; + } // define position of all lines + + + if (this._rebuild) { + var self = this, + blankLineOffset = 0, + dy = this.dom.leading * new SVG.Number(this.attr('font-size')); + this.lines().each(function () { + if (this.dom.newLined) { + if (!self.textPath()) { + this.attr('x', self.attr('x')); + } + + if (this.text() == '\n') { + blankLineOffset += dy; + } else { + this.attr('dy', dy + blankLineOffset); + blankLineOffset = 0; + } + } + }); + this.fire('rebuild'); + } + + return this; + }, + // Enable / disable build mode + build: function build(_build) { + this._build = !!_build; + return this; + }, + // overwrite method from parent to set data properly + setData: function setData(o) { + this.dom = o; + this.dom.leading = new SVG.Number(o.leading || 1.3); + return this; + } + }, + // Add parent method + construct: { + // Create text element + text: function text(_text2) { + return this.put(new SVG.Text()).text(_text2); + }, + // Create plain text element + plain: function plain(text) { + return this.put(new SVG.Text()).plain(text); + } + } + }); + SVG.Tspan = SVG.invent({ + // Initialize node + create: 'tspan', + // Inherit from + inherit: SVG.Shape, + // Add class methods + extend: { + // Set text content + text: function text(_text3) { + if (_text3 == null) return this.node.textContent + (this.dom.newLined ? '\n' : ''); + typeof _text3 === 'function' ? _text3.call(this, this) : this.plain(_text3); + return this; + }, + // Shortcut dx + dx: function dx(_dx) { + return this.attr('dx', _dx); + }, + // Shortcut dy + dy: function dy(_dy) { + return this.attr('dy', _dy); + }, + // Create new line + newLine: function newLine() { + // fetch text parent + var t = this.parent(SVG.Text); // mark new line + + this.dom.newLined = true; // apply new hy¡n + + return this.dy(t.dom.leading * t.attr('font-size')).attr('x', t.x()); + } + } + }); + SVG.extend(SVG.Text, SVG.Tspan, { + // Create plain text node + plain: function plain(text) { + // clear if build mode is disabled + if (this._build === false) { + this.clear(); + } // create text node + + + this.node.appendChild(document.createTextNode(text)); + return this; + }, + // Create a tspan + tspan: function tspan(text) { + var node = (this.textPath && this.textPath() || this).node, + tspan = new SVG.Tspan(); // clear if build mode is disabled + + if (this._build === false) { + this.clear(); + } // add new tspan + + + node.appendChild(tspan.node); + return tspan.text(text); + }, + // Clear all lines + clear: function clear() { + var node = (this.textPath && this.textPath() || this).node; // remove existing child nodes + + while (node.hasChildNodes()) { + node.removeChild(node.lastChild); + } + + return this; + }, + // Get length of text element + length: function length() { + return this.node.getComputedTextLength(); + } + }); + SVG.TextPath = SVG.invent({ + // Initialize node + create: 'textPath', + // Inherit from + inherit: SVG.Parent, + // Define parent class + parent: SVG.Text, + // Add parent method + construct: { + morphArray: SVG.PathArray, + // return the array of the path track element + array: function array() { + var track = this.track(); + return track ? track.array() : null; + }, + // Plot path if any + plot: function plot(d) { + var track = this.track(), + pathArray = null; + + if (track) { + pathArray = track.plot(d); + } + + return d == null ? pathArray : this; + }, + // Get the path track element + track: function track() { + var path = this.textPath(); + + if (path) { + return path.reference('href'); + } + }, + // Get the textPath child + textPath: function textPath() { + if (this.node.firstChild && this.node.firstChild.nodeName == 'textPath') { + return SVG.adopt(this.node.firstChild); + } + } + } + }); + SVG.Nested = SVG.invent({ + // Initialize node + create: function create() { + this.constructor.call(this, SVG.create('svg')); + this.style('overflow', 'visible'); + }, + // Inherit from + inherit: SVG.Container, + // Add parent method + construct: { + // Create nested svg document + nested: function nested() { + return this.put(new SVG.Nested()); + } + } + }); // Define list of available attributes for stroke and fill + + var sugar = { + stroke: ['color', 'width', 'opacity', 'linecap', 'linejoin', 'miterlimit', 'dasharray', 'dashoffset'], + fill: ['color', 'opacity', 'rule'], + prefix: function prefix(t, a) { + return a == 'color' ? t : t + '-' + a; + } + } // Add sugar for fill and stroke + ; + ['fill', 'stroke'].forEach(function (m) { + var extension = {}; + + extension[m] = function (o) { + if (typeof o === 'undefined') { + return this; + } + + if (typeof o === 'string' || SVG.Color.isRgb(o) || o && typeof o.fill === 'function') { + this.attr(m, o); + } else // set all attributes from sugar.fill and sugar.stroke list + { + for (var i = sugar[m].length - 1; i >= 0; i--) { + if (o[sugar[m][i]] != null) { + this.attr(sugar.prefix(m, sugar[m][i]), o[sugar[m][i]]); + } + } + } + + return this; + }; + + SVG.extend(SVG.Element, SVG.FX, extension); + }); + SVG.extend(SVG.Element, SVG.FX, { + // Map translate to transform + translate: function translate(x, y) { + return this.transform({ + x: x, + y: y + }); + }, + // Map matrix to transform + matrix: function matrix(m) { + return this.attr('transform', new SVG.Matrix(arguments.length == 6 ? [].slice.call(arguments) : m)); + }, + // Opacity + opacity: function opacity(value) { + return this.attr('opacity', value); + }, + // Relative move over x axis + dx: function dx(x) { + return this.x(new SVG.Number(x).plus(this instanceof SVG.FX ? 0 : this.x()), true); + }, + // Relative move over y axis + dy: function dy(y) { + return this.y(new SVG.Number(y).plus(this instanceof SVG.FX ? 0 : this.y()), true); + } + }); + SVG.extend(SVG.Path, { + // Get path length + length: function length() { + return this.node.getTotalLength(); + }, + // Get point at length + pointAt: function pointAt(length) { + return this.node.getPointAtLength(length); + } + }); + SVG.Set = SVG.invent({ + // Initialize + create: function create(members) { + // Set initial state + Array.isArray(members) ? this.members = members : this.clear(); + }, + // Add class methods + extend: { + // Add element to set + add: function add() { + var il, + elements = [].slice.call(arguments); + + for (var i = 0, il = elements.length; i < il; i++) { + this.members.push(elements[i]); + } + + return this; + }, + // Remove element from set + remove: function remove(element) { + var i = this.index(element); // remove given child + + if (i > -1) { + this.members.splice(i, 1); + } + + return this; + }, + // Iterate over all members + each: function each(block) { + for (var i = 0, il = this.members.length; i < il; i++) { + block.apply(this.members[i], [i, this.members]); + } + + return this; + }, + // Restore to defaults + clear: function clear() { + // initialize store + this.members = []; + return this; + }, + // Get the length of a set + length: function length() { + return this.members.length; + }, + // Checks if a given element is present in set + has: function has(element) { + return this.index(element) >= 0; + }, + // retuns index of given element in set + index: function index(element) { + return this.members.indexOf(element); + }, + // Get member at given index + get: function get(i) { + return this.members[i]; + }, + // Get first member + first: function first() { + return this.get(0); + }, + // Get last member + last: function last() { + return this.get(this.members.length - 1); + }, + // Default value + valueOf: function valueOf() { + return this.members; + } + }, + // Add parent method + construct: { + // Create a new set + set: function set(members) { + return new SVG.Set(members); + } + } + }); + SVG.FX.Set = SVG.invent({ + // Initialize node + create: function create(set) { + // store reference to set + this.set = set; + } + }); // Alias methods + + SVG.Set.inherit = function () { + var methods = []; // gather shape methods + + for (var m in SVG.Shape.prototype) { + if (typeof SVG.Shape.prototype[m] === 'function' && typeof SVG.Set.prototype[m] !== 'function') { + methods.push(m); + } + } // apply shape aliasses + + + methods.forEach(function (method) { + SVG.Set.prototype[method] = function () { + for (var i = 0, il = this.members.length; i < il; i++) { + if (this.members[i] && typeof this.members[i][method] === 'function') { + this.members[i][method].apply(this.members[i], arguments); + } + } + + return method == 'animate' ? this.fx || (this.fx = new SVG.FX.Set(this)) : this; + }; + }); // clear methods for the next round + + methods = []; // gather fx methods + + for (var m in SVG.FX.prototype) { + if (typeof SVG.FX.prototype[m] === 'function' && typeof SVG.FX.Set.prototype[m] !== 'function') { + methods.push(m); + } + } // apply fx aliasses + + + methods.forEach(function (method) { + SVG.FX.Set.prototype[method] = function () { + for (var i = 0, il = this.set.members.length; i < il; i++) { + this.set.members[i].fx[method].apply(this.set.members[i].fx, arguments); + } + + return this; + }; + }); + }; + + SVG.extend(SVG.Element, {}); + SVG.extend(SVG.Element, { + // Remember arbitrary data + remember: function remember(k, v) { + // remember every item in an object individually + if (_typeof(arguments[0]) === 'object') { + for (var v_ in k) { + this.remember(v_, k[v_]); + } + } // retrieve memory + else if (arguments.length == 1) { + return this.memory()[k]; + } // store memory + else { + this.memory()[k] = v; + } + + return this; + }, + // Erase a given memory + forget: function forget() { + if (arguments.length == 0) { + this._memory = {}; + } else { + for (var i = arguments.length - 1; i >= 0; i--) { + delete this.memory()[arguments[i]]; + } + } + + return this; + }, + // Initialize or return local memory object + memory: function memory() { + return this._memory || (this._memory = {}); + } + }); // Method for getting an element by id + + SVG.get = function (id) { + var node = document.getElementById(idFromReference(id) || id); + return SVG.adopt(node); + }; // Select elements by query string + + + SVG.select = function (query, parent) { + return new SVG.Set(SVG.utils.map((parent || document).querySelectorAll(query), function (node) { + return SVG.adopt(node); + })); + }; + + SVG.extend(SVG.Parent, { + // Scoped select method + select: function select(query) { + return SVG.select(query, this.node); + } + }); + + function pathRegReplace(a, b, c, d) { + return c + d.replace(SVG.regex.dots, ' .'); + } // creates deep clone of array + + + function _is(el, obj) { + return el instanceof obj; + } // tests if a given selector matches an element + + + function _matches(el, selector) { + return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector); + } // Convert dash-separated-string to camelCase + + + function camelCase(s) { + return s.toLowerCase().replace(/-(.)/g, function (m, g) { + return g.toUpperCase(); + }); + } // Capitalize first letter of a string + + + function capitalize(s) { + return s.charAt(0).toUpperCase() + s.slice(1); + } // Ensure to six-based hex + + + function fullHex(hex) { + return hex.length == 4 ? ['#', hex.substring(1, 2), hex.substring(1, 2), hex.substring(2, 3), hex.substring(2, 3), hex.substring(3, 4), hex.substring(3, 4)].join('') : hex; + } // Component to hex value + + + function compToHex(comp) { + var hex = comp.toString(16); + return hex.length == 1 ? '0' + hex : hex; + } // Calculate proportional width and height values when necessary + + + function proportionalSize(element, width, height) { + if (width == null || height == null) { + var box = element.bbox(); + + if (width == null) { + width = box.width / box.height * height; + } else if (height == null) { + height = box.height / box.width * width; + } + } + + return { + width: width, + height: height + }; + } // Delta transform point + + + function deltaTransformPoint(matrix, x, y) { + return { + x: x * matrix.a + y * matrix.c + 0, + y: x * matrix.b + y * matrix.d + 0 + }; + } // Map matrix array to object + + + function arrayToMatrix(a) { + return { + a: a[0], + b: a[1], + c: a[2], + d: a[3], + e: a[4], + f: a[5] + }; + } // Parse matrix if required + + + function parseMatrix(matrix) { + if (!(matrix instanceof SVG.Matrix)) { + matrix = new SVG.Matrix(matrix); + } + + return matrix; + } // Add centre point to transform object + + + function arrayToString(a) { + for (var i = 0, il = a.length, s = ''; i < il; i++) { + s += a[i][0]; + + if (a[i][1] != null) { + s += a[i][1]; + + if (a[i][2] != null) { + s += ' '; + s += a[i][2]; + + if (a[i][3] != null) { + s += ' '; + s += a[i][3]; + s += ' '; + s += a[i][4]; + + if (a[i][5] != null) { + s += ' '; + s += a[i][5]; + s += ' '; + s += a[i][6]; + + if (a[i][7] != null) { + s += ' '; + s += a[i][7]; + } + } + } + } + } + } + + return s + ' '; + } // Deep new id assignment + + + function assignNewId(node) { + // do the same for SVG child nodes as well + for (var i = node.childNodes.length - 1; i >= 0; i--) { + if (node.childNodes[i] instanceof window.SVGElement) { + assignNewId(node.childNodes[i]); + } + } + + return SVG.adopt(node).id(SVG.eid(node.nodeName)); + } // Add more bounding box properties + + + function fullBox(b) { + if (b.x == null) { + b.x = 0; + b.y = 0; + b.width = 0; + b.height = 0; + } + + b.w = b.width; + b.h = b.height; + b.x2 = b.x + b.width; + b.y2 = b.y + b.height; + b.cx = b.x + b.width / 2; + b.cy = b.y + b.height / 2; + return b; + } // Get id from reference string + + + function idFromReference(url) { + var m = (url || '').toString().match(SVG.regex.reference); + if (m) return m[1]; + } // If values like 1e-88 are passed, this is not a valid 32 bit float, + // but in those cases, we are so close to 0 that 0 works well! + + + function float32String(v) { + return Math.abs(v) > 1e-37 ? v : 0; + } // Create matrix array for looping + + + var abcdef = 'abcdef'.split(''); // Add CustomEvent to IE9 and IE10 + + if (typeof window.CustomEvent !== 'function') { + // Code from: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent + var CustomEventPoly = function CustomEventPoly(event, options) { + options = options || { + bubbles: false, + cancelable: false, + detail: undefined + }; + var e = document.createEvent('CustomEvent'); + e.initCustomEvent(event, options.bubbles, options.cancelable, options.detail); + return e; + }; + + CustomEventPoly.prototype = window.Event.prototype; + SVG.CustomEvent = CustomEventPoly; + } else { + SVG.CustomEvent = window.CustomEvent; + } + + return SVG; + }); + + /*! svg.filter.js - v2.0.2 - 2016-02-24 + * https://github.com/wout/svg.filter.js + * Copyright (c) 2016 Wout Fierens; Licensed MIT */ + (function() { + + // Main filter class + SVG.Filter = SVG.invent({ + create: 'filter', + inherit: SVG.Parent, + extend: { + // Static strings + source: 'SourceGraphic', + sourceAlpha: 'SourceAlpha', + background: 'BackgroundImage', + backgroundAlpha: 'BackgroundAlpha', + fill: 'FillPaint', + stroke: 'StrokePaint', + + autoSetIn: true, + // Custom put method for leaner code + put: function(element, i) { + this.add(element, i); + + if(!element.attr('in') && this.autoSetIn){ + element.attr('in',this.source); + } + if(!element.attr('result')){ + element.attr('result',element); + } + + return element + }, + // Blend effect + blend: function(in1, in2, mode) { + return this.put(new SVG.BlendEffect(in1, in2, mode)) + }, + // ColorMatrix effect + colorMatrix: function(type, values) { + return this.put(new SVG.ColorMatrixEffect(type, values)) + }, + // ConvolveMatrix effect + convolveMatrix: function(matrix) { + return this.put(new SVG.ConvolveMatrixEffect(matrix)) + }, + // ComponentTransfer effect + componentTransfer: function(components) { + return this.put(new SVG.ComponentTransferEffect(components)) + }, + // Composite effect + composite: function(in1, in2, operator) { + return this.put(new SVG.CompositeEffect(in1, in2, operator)) + }, + // Flood effect + flood: function(color, opacity) { + return this.put(new SVG.FloodEffect(color, opacity)) + }, + // Offset effect + offset: function(x, y) { + return this.put(new SVG.OffsetEffect(x,y)) + }, + // Image effect + image: function(src) { + return this.put(new SVG.ImageEffect(src)) + }, + // Merge effect + merge: function() { + //pass the array of arguments to the constructor because we dont know if the user gave us an array as the first arguemnt or wether they listed the effects in the arguments + var args = [undefined]; + for(var i in arguments) args.push(arguments[i]); + return this.put(new (SVG.MergeEffect.bind.apply(SVG.MergeEffect,args))) + }, + // Gaussian Blur effect + gaussianBlur: function(x,y) { + return this.put(new SVG.GaussianBlurEffect(x,y)) + }, + // Morphology effect + morphology: function(operator,radius){ + return this.put(new SVG.MorphologyEffect(operator,radius)) + }, + // DiffuseLighting effect + diffuseLighting: function(surfaceScale,diffuseConstant,kernelUnitLength){ + return this.put(new SVG.DiffuseLightingEffect(surfaceScale,diffuseConstant,kernelUnitLength)) + }, + // DisplacementMap effect + displacementMap: function(in1,in2,scale,xChannelSelector,yChannelSelector){ + return this.put(new SVG.DisplacementMapEffect(in1,in2,scale,xChannelSelector,yChannelSelector)) + }, + // SpecularLighting effect + specularLighting: function(surfaceScale,diffuseConstant,specularExponent,kernelUnitLength){ + return this.put(new SVG.SpecularLightingEffect(surfaceScale,diffuseConstant,specularExponent,kernelUnitLength)) + }, + // Tile effect + tile: function(){ + return this.put(new SVG.TileEffect()); + }, + // Turbulence effect + turbulence: function(baseFrequency,numOctaves,seed,stitchTiles,type){ + return this.put(new SVG.TurbulenceEffect(baseFrequency,numOctaves,seed,stitchTiles,type)) + }, + // Default string value + toString: function() { + return 'url(#' + this.attr('id') + ')' + } + } + }); + + //add .filter function + SVG.extend(SVG.Defs, { + // Define filter + filter: function(block) { + var filter = this.put(new SVG.Filter); + + /* invoke passed block */ + if (typeof block === 'function') + block.call(filter, filter); + + return filter + } + }); + SVG.extend(SVG.Container, { + // Define filter on defs + filter: function(block) { + return this.defs().filter(block) + } + }); + SVG.extend(SVG.Element, SVG.G, SVG.Nested, { + // Create filter element in defs and store reference + filter: function(block) { + this.filterer = block instanceof SVG.Element ? + block : this.doc().filter(block); + + if(this.doc() && this.filterer.doc() !== this.doc()){ + this.doc().defs().add(this.filterer); + } + + this.attr('filter', this.filterer); + + return this.filterer + }, + // Remove filter + unfilter: function(remove) { + /* also remove the filter node */ + if (this.filterer && remove === true) + this.filterer.remove(); + + /* delete reference to filterer */ + delete this.filterer; + + /* remove filter attribute */ + return this.attr('filter', null) + } + }); + + // Create SVG.Effect class + SVG.Effect = SVG.invent({ + create: function(){ + this.constructor.call(this); + }, + inherit: SVG.Element, + extend: { + // Set in attribute + in: function(effect) { + return effect == null? this.parent() && this.parent().select('[result="'+this.attr('in')+'"]').get(0) || this.attr('in') : this.attr('in', effect) + }, + // Named result + result: function(result) { + return result == null? this.attr('result') : this.attr('result',result) + }, + // Stringification + toString: function() { + return this.result() + } + } + }); + + // create class for parent effects like merge + // Inherit from SVG.Parent + SVG.ParentEffect = SVG.invent({ + create: function(){ + this.constructor.call(this); + }, + inherit: SVG.Parent, + extend: { + // Set in attribute + in: function(effect) { + return effect == null? this.parent() && this.parent().select('[result="'+this.attr('in')+'"]').get(0) || this.attr('in') : this.attr('in', effect) + }, + // Named result + result: function(result) { + return result == null? this.attr('result') : this.attr('result',result) + }, + // Stringification + toString: function() { + return this.result() + } + } + }); + + //chaining + var chainingEffects = { + // Blend effect + blend: function(in2, mode) { + return this.parent() && this.parent().blend(this, in2, mode) //pass this as the first input + }, + // ColorMatrix effect + colorMatrix: function(type, values) { + return this.parent() && this.parent().colorMatrix(type, values).in(this) + }, + // ConvolveMatrix effect + convolveMatrix: function(matrix) { + return this.parent() && this.parent().convolveMatrix(matrix).in(this) + }, + // ComponentTransfer effect + componentTransfer: function(components) { + return this.parent() && this.parent().componentTransfer(components).in(this) + }, + // Composite effect + composite: function(in2, operator) { + return this.parent() && this.parent().composite(this, in2, operator) //pass this as the first input + }, + // Flood effect + flood: function(color, opacity) { + return this.parent() && this.parent().flood(color, opacity) //this effect dont have inputs + }, + // Offset effect + offset: function(x, y) { + return this.parent() && this.parent().offset(x,y).in(this) + }, + // Image effect + image: function(src) { + return this.parent() && this.parent().image(src) //this effect dont have inputs + }, + // Merge effect + merge: function() { + return this.parent() && this.parent().merge.apply(this.parent(),[this].concat(arguments)) //pass this as the first argument + }, + // Gaussian Blur effect + gaussianBlur: function(x,y) { + return this.parent() && this.parent().gaussianBlur(x,y).in(this) + }, + // Morphology effect + morphology: function(operator,radius){ + return this.parent() && this.parent().morphology(operator,radius).in(this) + }, + // DiffuseLighting effect + diffuseLighting: function(surfaceScale,diffuseConstant,kernelUnitLength){ + return this.parent() && this.parent().diffuseLighting(surfaceScale,diffuseConstant,kernelUnitLength).in(this) + }, + // DisplacementMap effect + displacementMap: function(in2,scale,xChannelSelector,yChannelSelector){ + return this.parent() && this.parent().displacementMap(this,in2,scale,xChannelSelector,yChannelSelector) //pass this as the first input + }, + // SpecularLighting effect + specularLighting: function(surfaceScale,diffuseConstant,specularExponent,kernelUnitLength){ + return this.parent() && this.parent().specularLighting(surfaceScale,diffuseConstant,specularExponent,kernelUnitLength).in(this) + }, + // Tile effect + tile: function(){ + return this.parent() && this.parent().tile().in(this) + }, + // Turbulence effect + turbulence: function(baseFrequency,numOctaves,seed,stitchTiles,type){ + return this.parent() && this.parent().turbulence(baseFrequency,numOctaves,seed,stitchTiles,type).in(this) + } + }; + SVG.extend(SVG.Effect,chainingEffects); + SVG.extend(SVG.ParentEffect,chainingEffects); + + //crea class for child effects, like MergeNode, FuncR and lights + SVG.ChildEffect = SVG.invent({ + create: function(){ + this.constructor.call(this); + }, + inherit: SVG.Element, + extend: { + in: function(effect){ + this.attr('in',effect); + } + //dont include any "result" functions because these types of nodes dont have them + } + }); + + // Create all different effects + var effects = { + blend: function(in1,in2,mode){ + this.attr({ + in: in1, + in2: in2, + mode: mode || 'normal' + }); + }, + colorMatrix: function(type,values){ + if (type == 'matrix') + values = normaliseMatrix(values); + + this.attr({ + type: type + , values: typeof values == 'undefined' ? null : values + }); + }, + convolveMatrix: function(matrix){ + matrix = normaliseMatrix(matrix); + + this.attr({ + order: Math.sqrt(matrix.split(' ').length) + , kernelMatrix: matrix + }); + }, + composite: function(in1, in2, operator){ + this.attr({ + in: in1, + in2: in2, + operator: operator + }); + }, + flood: function(color,opacity){ + this.attr('flood-color',color); + if(opacity != null) this.attr('flood-opacity',opacity); + }, + offset: function(x,y){ + this.attr({ + dx: x, + dy: y + }); + }, + image: function(src){ + this.attr('href', src, SVG.xlink); + }, + displacementMap: function(in1,in2,scale,xChannelSelector,yChannelSelector){ + this.attr({ + in: in1, + in2: in2, + scale: scale, + xChannelSelector: xChannelSelector, + yChannelSelector: yChannelSelector + }); + }, + gaussianBlur: function(x,y){ + if(x != null || y != null) + this.attr('stdDeviation', listString(Array.prototype.slice.call(arguments))); + else + this.attr('stdDeviation', '0 0'); + }, + morphology: function(operator,radius){ + this.attr({ + operator: operator, + radius: radius + }); + }, + tile: function(){ + + }, + turbulence: function(baseFrequency,numOctaves,seed,stitchTiles,type){ + this.attr({ + numOctaves: numOctaves, + seed: seed, + stitchTiles: stitchTiles, + baseFrequency: baseFrequency, + type: type + }); + } + }; + + // Create all parent effects + var parentEffects = { + merge: function(){ + var children; + + //test to see if we have a set + if(arguments[0] instanceof SVG.Set){ + var that = this; + arguments[0].each(function(i){ + if(this instanceof SVG.MergeNode) + that.put(this); + else if(this instanceof SVG.Effect || this instanceof SVG.ParentEffect) + that.put(new SVG.MergeNode(this)); + }); + } + else { + //if the first argument is an array use it + if(Array.isArray(arguments[0])) + children = arguments[0]; + else + children = arguments; + + for(var i = 0; i < children.length; i++){ + if(children[i] instanceof SVG.MergeNode){ + this.put(children[i]); + } + else this.put(new SVG.MergeNode(children[i])); + } + } + }, + componentTransfer: function(compontents){ + /* create rgb set */ + this.rgb = new SVG.Set + + /* create components */ + ;(['r', 'g', 'b', 'a']).forEach(function(c) { + /* create component */ + this[c] = new SVG['Func' + c.toUpperCase()]('identity'); + + /* store component in set */ + this.rgb.add(this[c]); + + /* add component node */ + this.node.appendChild(this[c].node); + }.bind(this)); //lost context in foreach + + /* set components */ + if (compontents) { + if (compontents.rgb) { + (['r', 'g', 'b']).forEach(function(c) { + this[c].attr(compontents.rgb); + }.bind(this)); + + delete compontents.rgb; + } + + /* set individual components */ + for (var c in compontents) + this[c].attr(compontents[c]); + } + }, + diffuseLighting: function(surfaceScale,diffuseConstant,kernelUnitLength){ + this.attr({ + surfaceScale: surfaceScale, + diffuseConstant: diffuseConstant, + kernelUnitLength: kernelUnitLength + }); + }, + specularLighting: function(surfaceScale,diffuseConstant,specularExponent,kernelUnitLength){ + this.attr({ + surfaceScale: surfaceScale, + diffuseConstant: diffuseConstant, + specularExponent: specularExponent, + kernelUnitLength: kernelUnitLength + }); + }, + }; + + // Create child effects like PointLight and MergeNode + var childEffects = { + distantLight: function(azimuth, elevation){ + this.attr({ + azimuth: azimuth, + elevation: elevation + }); + }, + pointLight: function(x,y,z){ + this.attr({ + x: x, + y: y, + z: z + }); + }, + spotLight: function(x,y,z,pointsAtX,pointsAtY,pointsAtZ){ + this.attr({ + x: x, + y: y, + z: z, + pointsAtX: pointsAtX, + pointsAtY: pointsAtY, + pointsAtZ: pointsAtZ + }); + }, + mergeNode: function(in1){ + this.attr('in',in1); + } + } + + // Create compontent functions + ;(['r', 'g', 'b', 'a']).forEach(function(c) { + /* create class */ + childEffects['Func' + c.toUpperCase()] = function(type) { + this.attr('type',type); + + // take diffent arguments based on the type + switch(type){ + case 'table': + this.attr('tableValues',arguments[1]); + break + case 'linear': + this.attr('slope',arguments[1]); + this.attr('intercept',arguments[2]); + break + case 'gamma': + this.attr('amplitude',arguments[1]); + this.attr('exponent',arguments[2]); + this.attr('offset',arguments[2]); + break + } + }; + }); + + //create effects + foreach(effects,function(effect,i){ + + /* capitalize name */ + var name = i.charAt(0).toUpperCase() + i.slice(1); + var proto = {}; + + /* create class */ + SVG[name + 'Effect'] = SVG.invent({ + create: function() { + //call super + this.constructor.call(this, SVG.create('fe' + name)); + + //call constructor for this effect + effect.apply(this,arguments); + + //set the result + this.result(this.attr('id') + 'Out'); + }, + inherit: SVG.Effect, + extend: proto + }); + }); + + //create parent effects + foreach(parentEffects,function(effect,i){ + + /* capitalize name */ + var name = i.charAt(0).toUpperCase() + i.slice(1); + var proto = {}; + + /* create class */ + SVG[name + 'Effect'] = SVG.invent({ + create: function() { + //call super + this.constructor.call(this, SVG.create('fe' + name)); + + //call constructor for this effect + effect.apply(this,arguments); + + //set the result + this.result(this.attr('id') + 'Out'); + }, + inherit: SVG.ParentEffect, + extend: proto + }); + }); + + //create child effects + foreach(childEffects,function(effect,i){ + + /* capitalize name */ + var name = i.charAt(0).toUpperCase() + i.slice(1); + var proto = {}; + + /* create class */ + SVG[name] = SVG.invent({ + create: function() { + //call super + this.constructor.call(this, SVG.create('fe' + name)); + + //call constructor for this effect + effect.apply(this,arguments); + }, + inherit: SVG.ChildEffect, + extend: proto + }); + }); + + // Effect-specific extensions + SVG.extend(SVG.MergeEffect,{ + in: function(effect){ + if(effect instanceof SVG.MergeNode) + this.add(effect,0); + else + this.add(new SVG.MergeNode(effect),0); + + return this + } + }); + SVG.extend(SVG.CompositeEffect,SVG.BlendEffect,SVG.DisplacementMapEffect,{ + in2: function(effect){ + return effect == null? this.parent() && this.parent().select('[result="'+this.attr('in2')+'"]').get(0) || this.attr('in2') : this.attr('in2', effect) + } + }); + + // Presets + SVG.filter = { + sepiatone: [ .343, .669, .119, 0, 0 + , .249, .626, .130, 0, 0 + , .172, .334, .111, 0, 0 + , .000, .000, .000, 1, 0 ] + }; + + // Helpers + function normaliseMatrix(matrix) { + /* convert possible array value to string */ + if (Array.isArray(matrix)) + matrix = new SVG.Array(matrix); + + /* ensure there are no leading, tailing or double spaces */ + return matrix.toString().replace(/^\s+/, '').replace(/\s+$/, '').replace(/\s+/g, ' ') + } + + function listString(list) { + if (!Array.isArray(list)) + return list + + for (var i = 0, l = list.length, s = []; i < l; i++) + s.push(list[i]); + + return s.join(' ') + } + + function foreach(){ //loops through mutiple objects + var fn = function(){}; + if(typeof arguments[arguments.length-1] == 'function'){ + fn = arguments[arguments.length-1]; + Array.prototype.splice.call(arguments,arguments.length-1,1); + } + for(var k in arguments){ + for(var i in arguments[k]){ + fn(arguments[k][i],i,arguments[k]); + } + } + } + + }).call(undefined); + + (function() { + + SVG.extend(SVG.PathArray, { + morph: function(array) { + + var startArr = this.value + , destArr = this.parse(array); + + var startOffsetM = 0 + , destOffsetM = 0; + + var startOffsetNextM = false + , destOffsetNextM = false; + + while(true){ + // stop if there is no M anymore + if(startOffsetM === false && destOffsetM === false) break + + // find the next M in path array + startOffsetNextM = findNextM(startArr, startOffsetM === false ? false : startOffsetM+1); + destOffsetNextM = findNextM( destArr, destOffsetM === false ? false : destOffsetM+1); + + // We have to add one M to the startArray + if(startOffsetM === false){ + var bbox = new SVG.PathArray(result.start).bbox(); + + // when the last block had no bounding box we simply take the first M we got + if(bbox.height == 0 || bbox.width == 0){ + startOffsetM = startArr.push(startArr[0]) - 1; + }else { + // we take the middle of the bbox instead when we got one + startOffsetM = startArr.push( ['M', bbox.x + bbox.width/2, bbox.y + bbox.height/2 ] ) - 1; + } + } + + // We have to add one M to the destArray + if( destOffsetM === false){ + var bbox = new SVG.PathArray(result.dest).bbox(); + + if(bbox.height == 0 || bbox.width == 0){ + destOffsetM = destArr.push(destArr[0]) - 1; + }else { + destOffsetM = destArr.push( ['M', bbox.x + bbox.width/2, bbox.y + bbox.height/2 ] ) - 1; + } + } + + // handle block from M to next M + var result = handleBlock(startArr, startOffsetM, startOffsetNextM, destArr, destOffsetM, destOffsetNextM); + + // update the arrays to their new values + startArr = startArr.slice(0, startOffsetM).concat(result.start, startOffsetNextM === false ? [] : startArr.slice(startOffsetNextM)); + destArr = destArr.slice(0, destOffsetM).concat(result.dest , destOffsetNextM === false ? [] : destArr.slice( destOffsetNextM)); + + // update offsets + startOffsetM = startOffsetNextM === false ? false : startOffsetM + result.start.length; + destOffsetM = destOffsetNextM === false ? false : destOffsetM + result.dest.length; + + } + + // copy back arrays + this.value = startArr; + this.destination = new SVG.PathArray(); + this.destination.value = destArr; + + return this + } + }); + + + + // sorry for the long declaration + // slices out one block (from M to M) and syncronize it so the types and length match + function handleBlock(startArr, startOffsetM, startOffsetNextM, destArr, destOffsetM, destOffsetNextM, undefined$1){ + + // slice out the block we need + var startArrTemp = startArr.slice(startOffsetM, startOffsetNextM || undefined$1) + , destArrTemp = destArr.slice( destOffsetM, destOffsetNextM || undefined$1); + + var i = 0 + , posStart = {pos:[0,0], start:[0,0]} + , posDest = {pos:[0,0], start:[0,0]}; + + do{ + + // convert shorthand types to long form + startArrTemp[i] = simplyfy.call(posStart, startArrTemp[i]); + destArrTemp[i] = simplyfy.call(posDest , destArrTemp[i]); + + // check if both shape types match + // 2 elliptical arc curve commands ('A'), are considered different if the + // flags (large-arc-flag, sweep-flag) don't match + if(startArrTemp[i][0] != destArrTemp[i][0] || startArrTemp[i][0] == 'M' || + (startArrTemp[i][0] == 'A' && + (startArrTemp[i][4] != destArrTemp[i][4] || startArrTemp[i][5] != destArrTemp[i][5]) + ) + ) { + + // if not, convert shapes to beziere + Array.prototype.splice.apply(startArrTemp, [i, 1].concat(toBeziere.call(posStart, startArrTemp[i]))); + Array.prototype.splice.apply(destArrTemp, [i, 1].concat(toBeziere.call(posDest, destArrTemp[i]))); + + } else { + + // only update positions otherwise + startArrTemp[i] = setPosAndReflection.call(posStart, startArrTemp[i]); + destArrTemp[i] = setPosAndReflection.call(posDest , destArrTemp[i]); + + } + + // we are at the end at both arrays. stop here + if(++i == startArrTemp.length && i == destArrTemp.length) break + + // destArray is longer. Add one element + if(i == startArrTemp.length){ + startArrTemp.push([ + 'C', + posStart.pos[0], + posStart.pos[1], + posStart.pos[0], + posStart.pos[1], + posStart.pos[0], + posStart.pos[1], + ]); + } + + // startArr is longer. Add one element + if(i == destArrTemp.length){ + destArrTemp.push([ + 'C', + posDest.pos[0], + posDest.pos[1], + posDest.pos[0], + posDest.pos[1], + posDest.pos[0], + posDest.pos[1] + ]); + } + + + }while(true) + + // return the updated block + return {start:startArrTemp, dest:destArrTemp} + } + + // converts shorthand types to long form + function simplyfy(val){ + + switch(val[0]){ + case 'z': // shorthand line to start + case 'Z': + val[0] = 'L'; + val[1] = this.start[0]; + val[2] = this.start[1]; + break + case 'H': // shorthand horizontal line + val[0] = 'L'; + val[2] = this.pos[1]; + break + case 'V': // shorthand vertical line + val[0] = 'L'; + val[2] = val[1]; + val[1] = this.pos[0]; + break + case 'T': // shorthand quadratic beziere + val[0] = 'Q'; + val[3] = val[1]; + val[4] = val[2]; + val[1] = this.reflection[1]; + val[2] = this.reflection[0]; + break + case 'S': // shorthand cubic beziere + val[0] = 'C'; + val[6] = val[4]; + val[5] = val[3]; + val[4] = val[2]; + val[3] = val[1]; + val[2] = this.reflection[1]; + val[1] = this.reflection[0]; + break + } + + return val + + } + + // updates reflection point and current position + function setPosAndReflection(val){ + + var len = val.length; + + this.pos = [ val[len-2], val[len-1] ]; + + if('SCQT'.indexOf(val[0]) != -1) + this.reflection = [ 2 * this.pos[0] - val[len-4], 2 * this.pos[1] - val[len-3] ]; + + return val + } + + // converts all types to cubic beziere + function toBeziere(val){ + var retVal = [val]; + + switch(val[0]){ + case 'M': // special handling for M + this.pos = this.start = [val[1], val[2]]; + return retVal + case 'L': + val[5] = val[3] = val[1]; + val[6] = val[4] = val[2]; + val[1] = this.pos[0]; + val[2] = this.pos[1]; + break + case 'Q': + val[6] = val[4]; + val[5] = val[3]; + val[4] = val[4] * 1/3 + val[2] * 2/3; + val[3] = val[3] * 1/3 + val[1] * 2/3; + val[2] = this.pos[1] * 1/3 + val[2] * 2/3; + val[1] = this.pos[0] * 1/3 + val[1] * 2/3; + break + case 'A': + retVal = arcToBeziere(this.pos, val); + val = retVal[0]; + break + } + + val[0] = 'C'; + this.pos = [val[5], val[6]]; + this.reflection = [2 * val[5] - val[3], 2 * val[6] - val[4]]; + + return retVal + + } + + // finds the next position of type M + function findNextM(arr, offset){ + + if(offset === false) return false + + for(var i = offset, len = arr.length;i < len;++i){ + + if(arr[i][0] == 'M') return i + + } + + return false + } + + + + // Convert an arc segment into equivalent cubic Bezier curves + // Depending on the arc, up to 4 curves might be used to represent it since a + // curve gives a good approximation for only a quarter of an ellipse + // The curves are returned as an array of SVG curve commands: + // [ ['C', x1, y1, x2, y2, x, y] ... ] + function arcToBeziere(pos, val) { + // Parameters extraction, handle out-of-range parameters as specified in the SVG spec + // See: https://www.w3.org/TR/SVG11/implnote.html#ArcOutOfRangeParameters + var rx = Math.abs(val[1]), ry = Math.abs(val[2]), xAxisRotation = val[3] % 360 + , largeArcFlag = val[4], sweepFlag = val[5], x = val[6], y = val[7] + , A = new SVG.Point(pos), B = new SVG.Point(x, y) + , primedCoord, lambda, mat, k, c, cSquare, t, O, OA, OB, tetaStart, tetaEnd + , deltaTeta, nbSectors, f, arcSegPoints, angle, sinAngle, cosAngle, pt, i, il + , retVal = [], x1, y1, x2, y2; + + // Ensure radii are non-zero + if(rx === 0 || ry === 0 || (A.x === B.x && A.y === B.y)) { + // treat this arc as a straight line segment + return [['C', A.x, A.y, B.x, B.y, B.x, B.y]] + } + + // Ensure radii are large enough using the algorithm provided in the SVG spec + // See: https://www.w3.org/TR/SVG11/implnote.html#ArcCorrectionOutOfRangeRadii + primedCoord = new SVG.Point((A.x-B.x)/2, (A.y-B.y)/2).transform(new SVG.Matrix().rotate(xAxisRotation)); + lambda = (primedCoord.x * primedCoord.x) / (rx * rx) + (primedCoord.y * primedCoord.y) / (ry * ry); + if(lambda > 1) { + lambda = Math.sqrt(lambda); + rx = lambda*rx; + ry = lambda*ry; + } + + // To simplify calculations, we make the arc part of a unit circle (rayon is 1) instead of an ellipse + mat = new SVG.Matrix().rotate(xAxisRotation).scale(1/rx, 1/ry).rotate(-xAxisRotation); + A = A.transform(mat); + B = B.transform(mat); + + // Calculate the horizontal and vertical distance between the initial and final point of the arc + k = [B.x-A.x, B.y-A.y]; + + // Find the length of the chord formed by A and B + cSquare = k[0]*k[0] + k[1]*k[1]; + c = Math.sqrt(cSquare); + + // Calculate the ratios of the horizontal and vertical distance on the length of the chord + k[0] /= c; + k[1] /= c; + + // Calculate the distance between the circle center and the chord midpoint + // using this formula: t = sqrt(r^2 - c^2 / 4) + // where t is the distance between the cirle center and the chord midpoint, + // r is the rayon of the circle and c is the chord length + // From: http://www.ajdesigner.com/phpcircle/circle_segment_chord_t.php + // Because of the imprecision of floating point numbers, cSquare might end + // up being slightly above 4 which would result in a negative radicand + // To prevent that, a test is made before computing the square root + t = (cSquare < 4) ? Math.sqrt(1 - cSquare/4) : 0; + + // For most situations, there are actually two different ellipses that + // satisfy the constraints imposed by the points A and B, the radii rx and ry, + // and the xAxisRotation + // When the flags largeArcFlag and sweepFlag are equal, it means that the + // second ellipse is used as a solution + // See: https://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands + if(largeArcFlag === sweepFlag) { + t *= -1; + } + + // Calculate the coordinates of the center of the circle from the midpoint of the chord + // This is done by multiplying the ratios calculated previously by the distance between + // the circle center and the chord midpoint and using these values to go from the midpoint + // to the center of the circle + // The negative of the vertical distance ratio is used to modify the x coordinate while + // the horizontal distance ratio is used to modify the y coordinate + // That is because the center of the circle is perpendicular to the chord and perpendicular + // lines are negative reciprocals + O = new SVG.Point((B.x+A.x)/2 + t*-k[1], (B.y+A.y)/2 + t*k[0]); + // Move the center of the circle at the origin + OA = new SVG.Point(A.x-O.x, A.y-O.y); + OB = new SVG.Point(B.x-O.x, B.y-O.y); + + // Calculate the start and end angle + tetaStart = Math.acos(OA.x/Math.sqrt(OA.x*OA.x + OA.y*OA.y)); + if (OA.y < 0) { + tetaStart *= -1; + } + tetaEnd = Math.acos(OB.x/Math.sqrt(OB.x*OB.x + OB.y*OB.y)); + if (OB.y < 0) { + tetaEnd *= -1; + } + + // If sweep-flag is '1', then the arc will be drawn in a "positive-angle" direction, + // make sure that the end angle is above the start angle + if (sweepFlag && tetaStart > tetaEnd) { + tetaEnd += 2*Math.PI; + } + // If sweep-flag is '0', then the arc will be drawn in a "negative-angle" direction, + // make sure that the end angle is below the start angle + if (!sweepFlag && tetaStart < tetaEnd) { + tetaEnd -= 2*Math.PI; + } + + // Find the number of Bezier curves that are required to represent the arc + // A cubic Bezier curve gives a good enough approximation when representing at most a quarter of a circle + nbSectors = Math.ceil(Math.abs(tetaStart-tetaEnd) * 2/Math.PI); + + // Calculate the coordinates of the points of all the Bezier curves required to represent the arc + // For an in-depth explanation of this part see: http://pomax.github.io/bezierinfo/#circles_cubic + arcSegPoints = []; + angle = tetaStart; + deltaTeta = (tetaEnd-tetaStart)/nbSectors; + f = 4*Math.tan(deltaTeta/4)/3; + for (i = 0; i <= nbSectors; i++) { // The <= is because a Bezier curve have a start and a endpoint + cosAngle = Math.cos(angle); + sinAngle = Math.sin(angle); + + pt = new SVG.Point(O.x+cosAngle, O.y+sinAngle); + arcSegPoints[i] = [new SVG.Point(pt.x+f*sinAngle, pt.y-f*cosAngle), pt, new SVG.Point(pt.x-f*sinAngle, pt.y+f*cosAngle)]; + + angle += deltaTeta; + } + + // Remove the first control point of the first segment point and remove the second control point of the last segment point + // These two control points are not used in the approximation of the arc, that is why they are removed + arcSegPoints[0][0] = arcSegPoints[0][1].clone(); + arcSegPoints[arcSegPoints.length-1][2] = arcSegPoints[arcSegPoints.length-1][1].clone(); + + // Revert the transformation that was applied to make the arc part of a unit circle instead of an ellipse + mat = new SVG.Matrix().rotate(xAxisRotation).scale(rx, ry).rotate(-xAxisRotation); + for (i = 0, il = arcSegPoints.length; i < il; i++) { + arcSegPoints[i][0] = arcSegPoints[i][0].transform(mat); + arcSegPoints[i][1] = arcSegPoints[i][1].transform(mat); + arcSegPoints[i][2] = arcSegPoints[i][2].transform(mat); + } + + + // Convert the segments points to SVG curve commands + for (i = 1, il = arcSegPoints.length; i < il; i++) { + pt = arcSegPoints[i-1][2]; + x1 = pt.x; + y1 = pt.y; + + pt = arcSegPoints[i][0]; + x2 = pt.x; + y2 = pt.y; + + pt = arcSegPoints[i][1]; + x = pt.x; + y = pt.y; + + retVal.push(['C', x1, y1, x2, y2, x, y]); + } + + return retVal + } + }()); + + /*! svg.draggable.js - v2.2.2 - 2019-01-08 + * https://github.com/svgdotjs/svg.draggable.js + * Copyright (c) 2019 Wout Fierens; Licensed MIT */ + (function() { + + // creates handler, saves it + function DragHandler(el){ + el.remember('_draggable', this); + this.el = el; + } + + + // Sets new parameter, starts dragging + DragHandler.prototype.init = function(constraint, val){ + var _this = this; + this.constraint = constraint; + this.value = val; + this.el.on('mousedown.drag', function(e){ _this.start(e); }); + this.el.on('touchstart.drag', function(e){ _this.start(e); }); + }; + + // transforms one point from screen to user coords + DragHandler.prototype.transformPoint = function(event, offset){ + event = event || window.event; + var touches = event.changedTouches && event.changedTouches[0] || event; + this.p.x = touches.clientX - (offset || 0); + this.p.y = touches.clientY; + return this.p.matrixTransform(this.m) + }; + + // gets elements bounding box with special handling of groups, nested and use + DragHandler.prototype.getBBox = function(){ + + var box = this.el.bbox(); + + if(this.el instanceof SVG.Nested) box = this.el.rbox(); + + if (this.el instanceof SVG.G || this.el instanceof SVG.Use || this.el instanceof SVG.Nested) { + box.x = this.el.x(); + box.y = this.el.y(); + } + + return box + }; + + // start dragging + DragHandler.prototype.start = function(e){ + + // check for left button + if(e.type == 'click'|| e.type == 'mousedown' || e.type == 'mousemove'){ + if((e.which || e.buttons) != 1){ + return + } + } + + var _this = this; + + // fire beforedrag event + this.el.fire('beforedrag', { event: e, handler: this }); + if(this.el.event().defaultPrevented) return; + + // prevent browser drag behavior as soon as possible + e.preventDefault(); + + // prevent propagation to a parent that might also have dragging enabled + e.stopPropagation(); + + // search for parent on the fly to make sure we can call + // draggable() even when element is not in the dom currently + this.parent = this.parent || this.el.parent(SVG.Nested) || this.el.parent(SVG.Doc); + this.p = this.parent.node.createSVGPoint(); + + // save current transformation matrix + this.m = this.el.node.getScreenCTM().inverse(); + + var box = this.getBBox(); + + var anchorOffset; + + // fix text-anchor in text-element (#37) + if(this.el instanceof SVG.Text){ + anchorOffset = this.el.node.getComputedTextLength(); + + switch(this.el.attr('text-anchor')){ + case 'middle': + anchorOffset /= 2; + break + case 'start': + anchorOffset = 0; + break; + } + } + + this.startPoints = { + // We take absolute coordinates since we are just using a delta here + point: this.transformPoint(e, anchorOffset), + box: box, + transform: this.el.transform() + }; + + // add drag and end events to window + SVG.on(window, 'mousemove.drag', function(e){ _this.drag(e); }); + SVG.on(window, 'touchmove.drag', function(e){ _this.drag(e); }); + SVG.on(window, 'mouseup.drag', function(e){ _this.end(e); }); + SVG.on(window, 'touchend.drag', function(e){ _this.end(e); }); + + // fire dragstart event + this.el.fire('dragstart', {event: e, p: this.startPoints.point, m: this.m, handler: this}); + }; + + // while dragging + DragHandler.prototype.drag = function(e){ + + var box = this.getBBox() + , p = this.transformPoint(e) + , x = this.startPoints.box.x + p.x - this.startPoints.point.x + , y = this.startPoints.box.y + p.y - this.startPoints.point.y + , c = this.constraint + , gx = p.x - this.startPoints.point.x + , gy = p.y - this.startPoints.point.y; + + this.el.fire('dragmove', { + event: e + , p: p + , m: this.m + , handler: this + }); + + if(this.el.event().defaultPrevented) return p + + // move the element to its new position, if possible by constraint + if (typeof c == 'function') { + + var coord = c.call(this.el, x, y, this.m); + + // bool, just show us if movement is allowed or not + if (typeof coord == 'boolean') { + coord = { + x: coord, + y: coord + }; + } + + // if true, we just move. If !false its a number and we move it there + if (coord.x === true) { + this.el.x(x); + } else if (coord.x !== false) { + this.el.x(coord.x); + } + + if (coord.y === true) { + this.el.y(y); + } else if (coord.y !== false) { + this.el.y(coord.y); + } + + } else if (typeof c == 'object') { + + // keep element within constrained box + if (c.minX != null && x < c.minX) { + x = c.minX; + gx = x - this.startPoints.box.x; + } else if (c.maxX != null && x > c.maxX - box.width) { + x = c.maxX - box.width; + gx = x - this.startPoints.box.x; + } if (c.minY != null && y < c.minY) { + y = c.minY; + gy = y - this.startPoints.box.y; + } else if (c.maxY != null && y > c.maxY - box.height) { + y = c.maxY - box.height; + gy = y - this.startPoints.box.y; + } + + if (c.snapToGrid != null) { + x = x - (x % c.snapToGrid); + y = y - (y % c.snapToGrid); + gx = gx - (gx % c.snapToGrid); + gy = gy - (gy % c.snapToGrid); + } + + if(this.el instanceof SVG.G) + this.el.matrix(this.startPoints.transform).transform({x:gx, y: gy}, true); + else + this.el.move(x, y); + } + + // so we can use it in the end-method, too + return p + }; + + DragHandler.prototype.end = function(e){ + + // final drag + var p = this.drag(e); + + // fire dragend event + this.el.fire('dragend', { event: e, p: p, m: this.m, handler: this }); + + // unbind events + SVG.off(window, 'mousemove.drag'); + SVG.off(window, 'touchmove.drag'); + SVG.off(window, 'mouseup.drag'); + SVG.off(window, 'touchend.drag'); + + }; + + SVG.extend(SVG.Element, { + // Make element draggable + // Constraint might be an object (as described in readme.md) or a function in the form "function (x, y)" that gets called before every move. + // The function can return a boolean or an object of the form {x, y}, to which the element will be moved. "False" skips moving, true moves to raw x, y. + draggable: function(value, constraint) { + + // Check the parameters and reassign if needed + if (typeof value == 'function' || typeof value == 'object') { + constraint = value; + value = true; + } + + var dragHandler = this.remember('_draggable') || new DragHandler(this); + + // When no parameter is given, value is true + value = typeof value === 'undefined' ? true : value; + + if(value) dragHandler.init(constraint || {}, value); + else { + this.off('mousedown.drag'); + this.off('touchstart.drag'); + } + + return this + } + + }); + + }).call(undefined); + + (function() { + + function SelectHandler(el) { + + this.el = el; + el.remember('_selectHandler', this); + this.pointSelection = {isSelected: false}; + this.rectSelection = {isSelected: false}; + + // helper list with position settings of each type of point + this.pointsList = { + lt: [ 0, 0 ], + rt: [ 'width', 0 ], + rb: [ 'width', 'height' ], + lb: [ 0, 'height' ], + t: [ 'width', 0 ], + r: [ 'width', 'height' ], + b: [ 'width', 'height' ], + l: [ 0, 'height' ] + }; + + // helper function to get point coordinates based on settings above and an object (bbox in our case) + this.pointCoord = function (setting, object, isPointCentered) { + var coord = typeof setting !== 'string' ? setting : object[setting]; + // Top, bottom, right and left points are placed in the center of element width/height + return isPointCentered ? coord / 2 : coord + }; + + this.pointCoords = function (point, object) { + var settings = this.pointsList[point]; + + return { + x: this.pointCoord(settings[0], object, (point === 't' || point === 'b')), + y: this.pointCoord(settings[1], object, (point === 'r' || point === 'l')) + } + }; + } + + SelectHandler.prototype.init = function (value, options) { + + var bbox = this.el.bbox(); + this.options = {}; + + // store defaults list of points in order to verify users config + var points = this.el.selectize.defaults.points; + + // Merging the defaults and the options-object together + for (var i in this.el.selectize.defaults) { + this.options[i] = this.el.selectize.defaults[i]; + if (options[i] !== undefined) { + this.options[i] = options[i]; + } + } + + // prepare & validate list of points to be added (or excluded) + var pointsLists = ['points', 'pointsExclude']; + + for (var i in pointsLists) { + var option = this.options[pointsLists[i]]; + + if (typeof option === 'string') { + if (option.length > 0) { + // if set as comma separated string list => convert it into an array + option = option.split(/\s*,\s*/i); + } else { + option = []; + } + } else if (typeof option === 'boolean' && pointsLists[i] === 'points') { + // this is not needed, but let's have it for legacy support + option = option ? points : []; + } + + this.options[pointsLists[i]] = option; + } + + // intersect correct all points options with users config (exclude unwanted points) + // ES5 -> NO arrow functions nor Array.includes() + this.options.points = [ points, this.options.points ].reduce( + function (a, b) { + return a.filter( + function (c) { + return b.indexOf(c) > -1; + } + ) + } + ); + + // exclude pointsExclude, if wanted + this.options.points = [ this.options.points, this.options.pointsExclude ].reduce( + function (a, b) { + return a.filter( + function (c) { + return b.indexOf(c) < 0; + } + ) + } + ); + + this.parent = this.el.parent(); + this.nested = (this.nested || this.parent.group()); + this.nested.matrix(new SVG.Matrix(this.el).translate(bbox.x, bbox.y)); + + // When deepSelect is enabled and the element is a line/polyline/polygon, draw only points for moving + if (this.options.deepSelect && ['line', 'polyline', 'polygon'].indexOf(this.el.type) !== -1) { + this.selectPoints(value); + } else { + this.selectRect(value); + } + + this.observe(); + this.cleanup(); + + }; + + SelectHandler.prototype.selectPoints = function (value) { + + this.pointSelection.isSelected = value; + + // When set is already there we dont have to create one + if (this.pointSelection.set) { + return this; + } + + // Create our set of elements + this.pointSelection.set = this.parent.set(); + // draw the points and mark the element as selected + this.drawPoints(); + + return this; + + }; + + // create the point-array which contains the 2 points of a line or simply the points-array of polyline/polygon + SelectHandler.prototype.getPointArray = function () { + var bbox = this.el.bbox(); + + return this.el.array().valueOf().map(function (el) { + return [el[0] - bbox.x, el[1] - bbox.y]; + }); + }; + + // Draws a points + SelectHandler.prototype.drawPoints = function () { + + var _this = this, array = this.getPointArray(); + + // go through the array of points + for (var i = 0, len = array.length; i < len; ++i) { + + var curriedEvent = (function (k) { + return function (ev) { + ev = ev || window.event; + ev.preventDefault ? ev.preventDefault() : ev.returnValue = false; + ev.stopPropagation(); + + var x = ev.pageX || ev.touches[0].pageX; + var y = ev.pageY || ev.touches[0].pageY; + _this.el.fire('point', {x: x, y: y, i: k, event: ev}); + }; + })(i); + + // add every point to the set + // add css-classes and a touchstart-event which fires our event for moving points + var point = this.drawPoint(array[i][0], array[i][1]) + .addClass(this.options.classPoints) + .addClass(this.options.classPoints + '_point') + .on('touchstart', curriedEvent) + .on('mousedown', curriedEvent); + this.pointSelection.set.add(point); + } + }; + + // The function to draw single point + SelectHandler.prototype.drawPoint = function (cx, cy) { + var pointType = this.options.pointType; + + switch (pointType) { + case 'circle': + return this.drawCircle(cx, cy); + case 'rect': + return this.drawRect(cx, cy); + default: + if (typeof pointType === 'function') { + return pointType.call(this, cx, cy); + } + + throw new Error('Unknown ' + pointType + ' point type!'); + } + }; + + // The function to draw the circle point + SelectHandler.prototype.drawCircle = function (cx, cy) { + return this.nested.circle(this.options.pointSize) + .center(cx, cy); + }; + + // The function to draw the rect point + SelectHandler.prototype.drawRect = function (cx, cy) { + return this.nested.rect(this.options.pointSize, this.options.pointSize) + .center(cx, cy); + }; + + // every time a point is moved, we have to update the positions of our point + SelectHandler.prototype.updatePointSelection = function () { + var array = this.getPointArray(); + + this.pointSelection.set.each(function (i) { + if (this.cx() === array[i][0] && this.cy() === array[i][1]) { + return; + } + this.center(array[i][0], array[i][1]); + }); + }; + + SelectHandler.prototype.updateRectSelection = function () { + var _this = this, bbox = this.el.bbox(); + + this.rectSelection.set.get(0).attr({ + width: bbox.width, + height: bbox.height + }); + + // set.get(1) is always in the upper left corner. no need to move it + if (this.options.points.length) { + this.options.points.map(function (point, index) { + var coords = _this.pointCoords(point, bbox); + + _this.rectSelection.set.get(index + 1).center(coords.x, coords.y); + }); + } + + if (this.options.rotationPoint) { + var length = this.rectSelection.set.length(); + + this.rectSelection.set.get(length - 1).center(bbox.width / 2, 20); + } + }; + + SelectHandler.prototype.selectRect = function (value) { + + var _this = this, bbox = this.el.bbox(); + + this.rectSelection.isSelected = value; + + // when set is already p + this.rectSelection.set = this.rectSelection.set || this.parent.set(); + + // helperFunction to create a mouse-down function which triggers the event specified in `eventName` + function getMoseDownFunc(eventName) { + return function (ev) { + ev = ev || window.event; + ev.preventDefault ? ev.preventDefault() : ev.returnValue = false; + ev.stopPropagation(); + + var x = ev.pageX || ev.touches[0].pageX; + var y = ev.pageY || ev.touches[0].pageY; + _this.el.fire(eventName, {x: x, y: y, event: ev}); + }; + } + + // create the selection-rectangle and add the css-class + if (!this.rectSelection.set.get(0)) { + this.rectSelection.set.add(this.nested.rect(bbox.width, bbox.height).addClass(this.options.classRect)); + } + + // Draw Points at the edges, if enabled + if (this.options.points.length && this.rectSelection.set.length() < 2) { + var ename ="touchstart", mname = "mousedown"; + + this.options.points.map(function (point, index) { + var coords = _this.pointCoords(point, bbox); + + var pointElement = _this.drawPoint(coords.x, coords.y) + .attr('class', _this.options.classPoints + '_' + point) + .on(mname, getMoseDownFunc(point)) + .on(ename, getMoseDownFunc(point)); + _this.rectSelection.set.add(pointElement); + }); + + this.rectSelection.set.each(function () { + this.addClass(_this.options.classPoints); + }); + } + + // draw rotationPint, if enabled + if (this.options.rotationPoint && ((this.options.points && !this.rectSelection.set.get(9)) || (!this.options.points && !this.rectSelection.set.get(1)))) { + + var curriedEvent = function (ev) { + ev = ev || window.event; + ev.preventDefault ? ev.preventDefault() : ev.returnValue = false; + ev.stopPropagation(); + + var x = ev.pageX || ev.touches[0].pageX; + var y = ev.pageY || ev.touches[0].pageY; + _this.el.fire('rot', {x: x, y: y, event: ev}); + }; + + var pointElement = this.drawPoint(bbox.width / 2, 20) + .attr('class', this.options.classPoints + '_rot') + .on("touchstart", curriedEvent) + .on("mousedown", curriedEvent); + this.rectSelection.set.add(pointElement); + } + + }; + + SelectHandler.prototype.handler = function () { + + var bbox = this.el.bbox(); + this.nested.matrix(new SVG.Matrix(this.el).translate(bbox.x, bbox.y)); + + if (this.rectSelection.isSelected) { + this.updateRectSelection(); + } + + if (this.pointSelection.isSelected) { + this.updatePointSelection(); + } + + }; + + SelectHandler.prototype.observe = function () { + var _this = this; + + if (MutationObserver) { + if (this.rectSelection.isSelected || this.pointSelection.isSelected) { + this.observerInst = this.observerInst || new MutationObserver(function () { + _this.handler(); + }); + this.observerInst.observe(this.el.node, {attributes: true}); + } else { + try { + this.observerInst.disconnect(); + delete this.observerInst; + } catch (e) { + } + } + } else { + this.el.off('DOMAttrModified.select'); + + if (this.rectSelection.isSelected || this.pointSelection.isSelected) { + this.el.on('DOMAttrModified.select', function () { + _this.handler(); + }); + } + } + }; + + SelectHandler.prototype.cleanup = function () { + + //var _this = this; + + if (!this.rectSelection.isSelected && this.rectSelection.set) { + // stop watching the element, remove the selection + this.rectSelection.set.each(function () { + this.remove(); + }); + + this.rectSelection.set.clear(); + delete this.rectSelection.set; + } + + if (!this.pointSelection.isSelected && this.pointSelection.set) { + // Remove all points, clear the set, stop watching the element + this.pointSelection.set.each(function () { + this.remove(); + }); + + this.pointSelection.set.clear(); + delete this.pointSelection.set; + } + + if (!this.pointSelection.isSelected && !this.rectSelection.isSelected) { + this.nested.remove(); + delete this.nested; + + } + }; + + + SVG.extend(SVG.Element, { + // Select element with mouse + selectize: function (value, options) { + + // Check the parameters and reassign if needed + if (typeof value === 'object') { + options = value; + value = true; + } + + var selectHandler = this.remember('_selectHandler') || new SelectHandler(this); + + selectHandler.init(value === undefined ? true : value, options || {}); + + return this; + + } + }); + + SVG.Element.prototype.selectize.defaults = { + points: ['lt', 'rt', 'rb', 'lb', 't', 'r', 'b', 'l'], // which points to draw, default all + pointsExclude: [], // easier option if to exclude few than rewrite all + classRect: 'svg_select_boundingRect', // Css-class added to the rect + classPoints: 'svg_select_points', // Css-class added to the points + pointSize: 7, // size of point + rotationPoint: true, // If true, rotation point is drawn. Needed for rotation! + deepSelect: false, // If true, moving of single points is possible (only line, polyline, polyon) + pointType: 'circle' // Point type: circle or rect, default circle + }; + }()); + + (function() { + (function () { + + function ResizeHandler(el) { + + el.remember('_resizeHandler', this); + + this.el = el; + this.parameters = {}; + this.lastUpdateCall = null; + this.p = el.doc().node.createSVGPoint(); + } + + ResizeHandler.prototype.transformPoint = function(x, y, m){ + + this.p.x = x - (this.offset.x - window.pageXOffset); + this.p.y = y - (this.offset.y - window.pageYOffset); + + return this.p.matrixTransform(m || this.m); + + }; + + ResizeHandler.prototype._extractPosition = function(event) { + // Extract a position from a mouse/touch event. + // Returns { x: .., y: .. } + return { + x: event.clientX != null ? event.clientX : event.touches[0].clientX, + y: event.clientY != null ? event.clientY : event.touches[0].clientY + } + }; + + ResizeHandler.prototype.init = function (options) { + + var _this = this; + + this.stop(); + + if (options === 'stop') { + return; + } + + this.options = {}; + + // Merge options and defaults + for (var i in this.el.resize.defaults) { + this.options[i] = this.el.resize.defaults[i]; + if (typeof options[i] !== 'undefined') { + this.options[i] = options[i]; + } + } + + // We listen to all these events which are specifying different edges + this.el.on('lt.resize', function(e){ _this.resize(e || window.event); }); // Left-Top + this.el.on('rt.resize', function(e){ _this.resize(e || window.event); }); // Right-Top + this.el.on('rb.resize', function(e){ _this.resize(e || window.event); }); // Right-Bottom + this.el.on('lb.resize', function(e){ _this.resize(e || window.event); }); // Left-Bottom + + this.el.on('t.resize', function(e){ _this.resize(e || window.event); }); // Top + this.el.on('r.resize', function(e){ _this.resize(e || window.event); }); // Right + this.el.on('b.resize', function(e){ _this.resize(e || window.event); }); // Bottom + this.el.on('l.resize', function(e){ _this.resize(e || window.event); }); // Left + + this.el.on('rot.resize', function(e){ _this.resize(e || window.event); }); // Rotation + + this.el.on('point.resize', function(e){ _this.resize(e || window.event); }); // Point-Moving + + // This call ensures, that the plugin reacts to a change of snapToGrid immediately + this.update(); + + }; + + ResizeHandler.prototype.stop = function(){ + this.el.off('lt.resize'); + this.el.off('rt.resize'); + this.el.off('rb.resize'); + this.el.off('lb.resize'); + + this.el.off('t.resize'); + this.el.off('r.resize'); + this.el.off('b.resize'); + this.el.off('l.resize'); + + this.el.off('rot.resize'); + + this.el.off('point.resize'); + + return this; + }; + + ResizeHandler.prototype.resize = function (event) { + + var _this = this; + + this.m = this.el.node.getScreenCTM().inverse(); + this.offset = { x: window.pageXOffset, y: window.pageYOffset }; + + var txPt = this._extractPosition(event.detail.event); + this.parameters = { + type: this.el.type, // the type of element + p: this.transformPoint(txPt.x, txPt.y), + x: event.detail.x, // x-position of the mouse when resizing started + y: event.detail.y, // y-position of the mouse when resizing started + box: this.el.bbox(), // The bounding-box of the element + rotation: this.el.transform().rotation // The current rotation of the element + }; + + // Add font-size parameter if the element type is text + if (this.el.type === "text") { + this.parameters.fontSize = this.el.attr()["font-size"]; + } + + // the i-param in the event holds the index of the point which is moved, when using `deepSelect` + if (event.detail.i !== undefined) { + + // get the point array + var array = this.el.array().valueOf(); + + // Save the index and the point which is moved + this.parameters.i = event.detail.i; + this.parameters.pointCoords = [array[event.detail.i][0], array[event.detail.i][1]]; + } + + // Lets check which edge of the bounding-box was clicked and resize the this.el according to this + switch (event.type) { + + // Left-Top-Edge + case 'lt': + // We build a calculating function for every case which gives us the new position of the this.el + this.calc = function (diffX, diffY) { + // The procedure is always the same + // First we snap the edge to the given grid (snapping to 1px grid is normal resizing) + var snap = this.snapToGrid(diffX, diffY); + + // Now we check if the new height and width still valid (> 0) + if (this.parameters.box.width - snap[0] > 0 && this.parameters.box.height - snap[1] > 0) { + // ...if valid, we resize the this.el (which can include moving because the coord-system starts at the left-top and this edge is moving sometimes when resized) + + /* + * but first check if the element is text box, so we can change the font size instead of + * the width and height + */ + + if (this.parameters.type === "text") { + this.el.move(this.parameters.box.x + snap[0], this.parameters.box.y); + this.el.attr("font-size", this.parameters.fontSize - snap[0]); + return; + } + + snap = this.checkAspectRatio(snap); + + this.el.move(this.parameters.box.x + snap[0], this.parameters.box.y + snap[1]).size(this.parameters.box.width - snap[0], this.parameters.box.height - snap[1]); + } + }; + break; + + // Right-Top + case 'rt': + // s.a. + this.calc = function (diffX, diffY) { + var snap = this.snapToGrid(diffX, diffY, 1 << 1); + if (this.parameters.box.width + snap[0] > 0 && this.parameters.box.height - snap[1] > 0) { + if (this.parameters.type === "text") { + this.el.move(this.parameters.box.x - snap[0], this.parameters.box.y); + this.el.attr("font-size", this.parameters.fontSize + snap[0]); + return; + } + + snap = this.checkAspectRatio(snap, true); + + this.el.move(this.parameters.box.x, this.parameters.box.y + snap[1]).size(this.parameters.box.width + snap[0], this.parameters.box.height - snap[1]); + } + }; + break; + + // Right-Bottom + case 'rb': + // s.a. + this.calc = function (diffX, diffY) { + var snap = this.snapToGrid(diffX, diffY, 0); + if (this.parameters.box.width + snap[0] > 0 && this.parameters.box.height + snap[1] > 0) { + if (this.parameters.type === "text") { + this.el.move(this.parameters.box.x - snap[0], this.parameters.box.y); + this.el.attr("font-size", this.parameters.fontSize + snap[0]); + return; + } + + snap = this.checkAspectRatio(snap); + + this.el.move(this.parameters.box.x, this.parameters.box.y).size(this.parameters.box.width + snap[0], this.parameters.box.height + snap[1]); + } + }; + break; + + // Left-Bottom + case 'lb': + // s.a. + this.calc = function (diffX, diffY) { + var snap = this.snapToGrid(diffX, diffY, 1); + if (this.parameters.box.width - snap[0] > 0 && this.parameters.box.height + snap[1] > 0) { + if (this.parameters.type === "text") { + this.el.move(this.parameters.box.x + snap[0], this.parameters.box.y); + this.el.attr("font-size", this.parameters.fontSize - snap[0]); + return; + } + + snap = this.checkAspectRatio(snap, true); + + this.el.move(this.parameters.box.x + snap[0], this.parameters.box.y).size(this.parameters.box.width - snap[0], this.parameters.box.height + snap[1]); + } + }; + break; + + // Top + case 't': + // s.a. + this.calc = function (diffX, diffY) { + var snap = this.snapToGrid(diffX, diffY, 1 << 1); + if (this.parameters.box.height - snap[1] > 0) { + // Disable the font-resizing if it is not from the corner of bounding-box + if (this.parameters.type === "text") { + return; + } + + this.el.move(this.parameters.box.x, this.parameters.box.y + snap[1]).height(this.parameters.box.height - snap[1]); + } + }; + break; + + // Right + case 'r': + // s.a. + this.calc = function (diffX, diffY) { + var snap = this.snapToGrid(diffX, diffY, 0); + if (this.parameters.box.width + snap[0] > 0) { + if (this.parameters.type === "text") { + return; + } + + this.el.move(this.parameters.box.x, this.parameters.box.y).width(this.parameters.box.width + snap[0]); + } + }; + break; + + // Bottom + case 'b': + // s.a. + this.calc = function (diffX, diffY) { + var snap = this.snapToGrid(diffX, diffY, 0); + if (this.parameters.box.height + snap[1] > 0) { + if (this.parameters.type === "text") { + return; + } + + this.el.move(this.parameters.box.x, this.parameters.box.y).height(this.parameters.box.height + snap[1]); + } + }; + break; + + // Left + case 'l': + // s.a. + this.calc = function (diffX, diffY) { + var snap = this.snapToGrid(diffX, diffY, 1); + if (this.parameters.box.width - snap[0] > 0) { + if (this.parameters.type === "text") { + return; + } + + this.el.move(this.parameters.box.x + snap[0], this.parameters.box.y).width(this.parameters.box.width - snap[0]); + } + }; + break; + + // Rotation + case 'rot': + // s.a. + this.calc = function (diffX, diffY) { + + // yes this is kinda stupid but we need the mouse coords back... + var current = {x: diffX + this.parameters.p.x, y: diffY + this.parameters.p.y}; + + // start minus middle + var sAngle = Math.atan2((this.parameters.p.y - this.parameters.box.y - this.parameters.box.height / 2), (this.parameters.p.x - this.parameters.box.x - this.parameters.box.width / 2)); + + // end minus middle + var pAngle = Math.atan2((current.y - this.parameters.box.y - this.parameters.box.height / 2), (current.x - this.parameters.box.x - this.parameters.box.width / 2)); + + var angle = this.parameters.rotation + (pAngle - sAngle) * 180 / Math.PI + this.options.snapToAngle / 2; + + // We have to move the element to the center of the box first and change the rotation afterwards + // because rotation always works around a rotation-center, which is changed when moving the element + // We also set the new rotation center to the center of the box. + this.el.center(this.parameters.box.cx, this.parameters.box.cy).rotate(angle - (angle % this.options.snapToAngle), this.parameters.box.cx, this.parameters.box.cy); + }; + break; + + // Moving one single Point (needed when an element is deepSelected which means you can move every single point of the object) + case 'point': + this.calc = function (diffX, diffY) { + + // Snapping the point to the grid + var snap = this.snapToGrid(diffX, diffY, this.parameters.pointCoords[0], this.parameters.pointCoords[1]); + + // Get the point array + var array = this.el.array().valueOf(); + + // Changing the moved point in the array + array[this.parameters.i][0] = this.parameters.pointCoords[0] + snap[0]; + array[this.parameters.i][1] = this.parameters.pointCoords[1] + snap[1]; + + // And plot the new this.el + this.el.plot(array); + }; + } + + this.el.fire('resizestart', {dx: this.parameters.x, dy: this.parameters.y, event: event}); + // When resizing started, we have to register events for... + // Touches. + SVG.on(window, 'touchmove.resize', function(e) { + _this.update(e || window.event); + }); + SVG.on(window, 'touchend.resize', function() { + _this.done(); + }); + // Mouse. + SVG.on(window, 'mousemove.resize', function (e) { + _this.update(e || window.event); + }); + SVG.on(window, 'mouseup.resize', function () { + _this.done(); + }); + + }; + + // The update-function redraws the element every time the mouse is moving + ResizeHandler.prototype.update = function (event) { + + if (!event) { + if (this.lastUpdateCall) { + this.calc(this.lastUpdateCall[0], this.lastUpdateCall[1]); + } + return; + } + + // Calculate the difference between the mouseposition at start and now + var txPt = this._extractPosition(event); + var p = this.transformPoint(txPt.x, txPt.y); + + var diffX = p.x - this.parameters.p.x, + diffY = p.y - this.parameters.p.y; + + this.lastUpdateCall = [diffX, diffY]; + + // Calculate the new position and height / width of the element + this.calc(diffX, diffY); + + // Emit an event to say we have changed. + this.el.fire('resizing', {dx: diffX, dy: diffY, event: event}); + }; + + // Is called on mouseup. + // Removes the update-function from the mousemove event + ResizeHandler.prototype.done = function () { + this.lastUpdateCall = null; + SVG.off(window, 'mousemove.resize'); + SVG.off(window, 'mouseup.resize'); + SVG.off(window, 'touchmove.resize'); + SVG.off(window, 'touchend.resize'); + this.el.fire('resizedone'); + }; + + // The flag is used to determine whether the resizing is used with a left-Point (first bit) and top-point (second bit) + // In this cases the temp-values are calculated differently + ResizeHandler.prototype.snapToGrid = function (diffX, diffY, flag, pointCoordsY) { + + var temp; + + // If `pointCoordsY` is given, a single Point has to be snapped (deepSelect). That's why we need a different temp-value + if (typeof pointCoordsY !== 'undefined') { + // Note that flag = pointCoordsX in this case + temp = [(flag + diffX) % this.options.snapToGrid, (pointCoordsY + diffY) % this.options.snapToGrid]; + } else { + // We check if the flag is set and if not we set a default-value (both bits set - which means upper-left-edge) + flag = flag == null ? 1 | 1 << 1 : flag; + temp = [(this.parameters.box.x + diffX + (flag & 1 ? 0 : this.parameters.box.width)) % this.options.snapToGrid, (this.parameters.box.y + diffY + (flag & (1 << 1) ? 0 : this.parameters.box.height)) % this.options.snapToGrid]; + } + + if(diffX < 0) { + temp[0] -= this.options.snapToGrid; + } + if(diffY < 0) { + temp[1] -= this.options.snapToGrid; + } + + diffX -= (Math.abs(temp[0]) < this.options.snapToGrid / 2 ? + temp[0] : + temp[0] - (diffX < 0 ? -this.options.snapToGrid : this.options.snapToGrid)); + diffY -= (Math.abs(temp[1]) < this.options.snapToGrid / 2 ? + temp[1] : + temp[1] - (diffY < 0 ? -this.options.snapToGrid : this.options.snapToGrid)); + + return this.constraintToBox(diffX, diffY, flag, pointCoordsY); + + }; + + // keep element within constrained box + ResizeHandler.prototype.constraintToBox = function (diffX, diffY, flag, pointCoordsY) { + //return [diffX, diffY] + var c = this.options.constraint || {}; + var orgX, orgY; + + if (typeof pointCoordsY !== 'undefined') { + orgX = flag; + orgY = pointCoordsY; + } else { + orgX = this.parameters.box.x + (flag & 1 ? 0 : this.parameters.box.width); + orgY = this.parameters.box.y + (flag & (1<<1) ? 0 : this.parameters.box.height); + } + + if (typeof c.minX !== 'undefined' && orgX + diffX < c.minX) { + diffX = c.minX - orgX; + } + + if (typeof c.maxX !== 'undefined' && orgX + diffX > c.maxX) { + diffX = c.maxX - orgX; + } + + if (typeof c.minY !== 'undefined' && orgY + diffY < c.minY) { + diffY = c.minY - orgY; + } + + if (typeof c.maxY !== 'undefined' && orgY + diffY > c.maxY) { + diffY = c.maxY - orgY; + } + + return [diffX, diffY]; + }; + + ResizeHandler.prototype.checkAspectRatio = function (snap, isReverse) { + if (!this.options.saveAspectRatio) { + return snap; + } + + var updatedSnap = snap.slice(); + var aspectRatio = this.parameters.box.width / this.parameters.box.height; + var newW = this.parameters.box.width + snap[0]; + var newH = this.parameters.box.height - snap[1]; + var newAspectRatio = newW / newH; + + if (newAspectRatio < aspectRatio) { + // Height is too big. Adapt it + updatedSnap[1] = newW / aspectRatio - this.parameters.box.height; + isReverse && (updatedSnap[1] = -updatedSnap[1]); + } else if (newAspectRatio > aspectRatio) { + // Width is too big. Adapt it + updatedSnap[0] = this.parameters.box.width - newH * aspectRatio; + isReverse && (updatedSnap[0] = -updatedSnap[0]); + } + + return updatedSnap; + }; + + SVG.extend(SVG.Element, { + // Resize element with mouse + resize: function (options) { + + (this.remember('_resizeHandler') || new ResizeHandler(this)).init(options || {}); + + return this; + + } + + }); + + SVG.Element.prototype.resize.defaults = { + snapToAngle: 0.1, // Specifies the speed the rotation is happening when moving the mouse + snapToGrid: 1, // Snaps to a grid of `snapToGrid` Pixels + constraint: {}, // keep element within constrained box + saveAspectRatio: false // Save aspect ratio when resizing using lt, rt, rb or lb points + }; + + }).call(this); + }()); + + if (typeof window.Apex === 'undefined') { + window.Apex = {}; + } + + var InitCtxVariables = /*#__PURE__*/function () { + function InitCtxVariables(ctx) { + _classCallCheck(this, InitCtxVariables); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(InitCtxVariables, [{ + key: "initModules", + value: function initModules() { + this.ctx.publicMethods = ['updateOptions', 'updateSeries', 'appendData', 'appendSeries', 'toggleSeries', 'showSeries', 'hideSeries', 'setLocale', 'resetSeries', 'zoomX', 'toggleDataPointSelection', 'dataURI', 'exportToCSV', 'addXaxisAnnotation', 'addYaxisAnnotation', 'addPointAnnotation', 'clearAnnotations', 'removeAnnotation', 'paper', 'destroy']; + this.ctx.eventList = ['click', 'mousedown', 'mousemove', 'mouseleave', 'touchstart', 'touchmove', 'touchleave', 'mouseup', 'touchend']; + this.ctx.animations = new Animations(this.ctx); + this.ctx.axes = new Axes(this.ctx); + this.ctx.core = new Core(this.ctx.el, this.ctx); + this.ctx.config = new Config({}); + this.ctx.data = new Data(this.ctx); + this.ctx.grid = new Grid(this.ctx); + this.ctx.graphics = new Graphics(this.ctx); + this.ctx.coreUtils = new CoreUtils(this.ctx); + this.ctx.crosshairs = new Crosshairs(this.ctx); + this.ctx.events = new Events(this.ctx); + this.ctx.exports = new Exports(this.ctx); + this.ctx.localization = new Localization(this.ctx); + this.ctx.options = new Options(); + this.ctx.responsive = new Responsive(this.ctx); + this.ctx.series = new Series(this.ctx); + this.ctx.theme = new Theme(this.ctx); + this.ctx.formatters = new Formatters(this.ctx); + this.ctx.titleSubtitle = new TitleSubtitle(this.ctx); + this.ctx.legend = new Legend(this.ctx); + this.ctx.toolbar = new Toolbar(this.ctx); + this.ctx.dimensions = new Dimensions(this.ctx); + this.ctx.updateHelpers = new UpdateHelpers(this.ctx); + this.ctx.zoomPanSelection = new ZoomPanSelection(this.ctx); + this.ctx.w.globals.tooltip = new Tooltip(this.ctx); + } + }]); + + return InitCtxVariables; + }(); + + var Destroy = /*#__PURE__*/function () { + function Destroy(ctx) { + _classCallCheck(this, Destroy); + + this.ctx = ctx; + this.w = ctx.w; + } + + _createClass(Destroy, [{ + key: "clear", + value: function clear(_ref) { + var isUpdating = _ref.isUpdating; + + if (this.ctx.zoomPanSelection) { + this.ctx.zoomPanSelection.destroy(); + } + + if (this.ctx.toolbar) { + this.ctx.toolbar.destroy(); + } + + this.ctx.animations = null; + this.ctx.axes = null; + this.ctx.annotations = null; + this.ctx.core = null; + this.ctx.data = null; + this.ctx.grid = null; + this.ctx.series = null; + this.ctx.responsive = null; + this.ctx.theme = null; + this.ctx.formatters = null; + this.ctx.titleSubtitle = null; + this.ctx.legend = null; + this.ctx.dimensions = null; + this.ctx.options = null; + this.ctx.crosshairs = null; + this.ctx.zoomPanSelection = null; + this.ctx.updateHelpers = null; + this.ctx.toolbar = null; + this.ctx.localization = null; + this.ctx.w.globals.tooltip = null; + this.clearDomElements({ + isUpdating: isUpdating + }); + } + }, { + key: "killSVG", + value: function killSVG(draw) { + draw.each(function (i, children) { + this.removeClass('*'); + this.off(); + this.stop(); + }, true); + draw.ungroup(); + draw.clear(); + } + }, { + key: "clearDomElements", + value: function clearDomElements(_ref2) { + var _this = this; + + var isUpdating = _ref2.isUpdating; + var elSVG = this.w.globals.dom.Paper.node; // fixes apexcharts.js#1654 & vue-apexcharts#256 + + if (elSVG.parentNode && elSVG.parentNode.parentNode && !isUpdating) { + elSVG.parentNode.parentNode.style.minHeight = 'unset'; + } // detach root event + + + var baseEl = this.w.globals.dom.baseEl; + + if (baseEl) { + // see https://github.com/apexcharts/vue-apexcharts/issues/275 + this.ctx.eventList.forEach(function (event) { + baseEl.removeEventListener(event, _this.ctx.events.documentEvent); + }); + } + + var domEls = this.w.globals.dom; + + if (this.ctx.el !== null) { + // remove all child elements - resetting the whole chart + while (this.ctx.el.firstChild) { + this.ctx.el.removeChild(this.ctx.el.firstChild); + } + } + + this.killSVG(domEls.Paper); + domEls.Paper.remove(); + domEls.elWrap = null; + domEls.elGraphical = null; + domEls.elAnnotations = null; + domEls.elLegendWrap = null; + domEls.baseEl = null; + domEls.elGridRect = null; + domEls.elGridRectMask = null; + domEls.elGridRectMarkerMask = null; + domEls.elForecastMask = null; + domEls.elNonForecastMask = null; + domEls.elDefs = null; + } + }]); + + return Destroy; + }(); + + // Helpers to react to element resizes, regardless of what caused them + // TODO Currently this creates a new ResizeObserver every time we want to observe an element for resizes + // Ideally, we should be able to use a single observer for all elements + var ros = new WeakMap(); // Map callbacks to ResizeObserver instances for easy removal + + function addResizeListener(el, fn) { + var called = false; + + if (el.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) { + var elRect = el.getBoundingClientRect(); + + if (el.style.display === 'none' || elRect.width === 0) { + // if elRect.width=0, the chart is not rendered at all + // (it has either display none or hidden in a different tab) + // fixes https://github.com/apexcharts/apexcharts.js/issues/2825 + // fixes https://github.com/apexcharts/apexcharts.js/issues/2991 + // fixes https://github.com/apexcharts/apexcharts.js/issues/2992 + called = true; + } + } + + var ro = new ResizeObserver(function (r) { + // ROs fire immediately after being created, + // per spec: https://drafts.csswg.org/resize-observer/#ref-for-element%E2%91%A3 + // we don't want that so we just discard the first run + if (called) { + fn.call(el, r); + } + + called = true; + }); + + if (el.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { + // Document fragment, observe children instead (needed for Shadow DOM, see #1332) + Array.from(el.children).forEach(function (c) { + return ro.observe(c); + }); + } else { + ro.observe(el); + } + + ros.set(fn, ro); + } + function removeResizeListener(el, fn) { + var ro = ros.get(fn); + + if (ro) { + ro.disconnect(); + ros.delete(fn); + } + } + + var css_248z = ".apexcharts-canvas {\n position: relative;\n user-select: none;\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\n}\n\n\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px;\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, .5);\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n}\n\n\n.apexcharts-inner {\n position: relative;\n}\n\n.apexcharts-text tspan {\n font-family: inherit;\n}\n\n.legend-mouseover-inactive {\n transition: 0.15s ease all;\n opacity: 0.20;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0;\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, 0.96);\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30, 30, 30, 0.8);\n}\n\n.apexcharts-tooltip * {\n font-family: inherit;\n}\n\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #ECEFF1;\n border-bottom: 1px solid #ddd;\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid #333;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n font-weight: 600;\n margin-left: 5px;\n}\n\n.apexcharts-tooltip-title:empty,\n.apexcharts-tooltip-text-y-label:empty,\n.apexcharts-tooltip-text-y-value:empty,\n.apexcharts-tooltip-text-goals-label:empty,\n.apexcharts-tooltip-text-goals-value:empty,\n.apexcharts-tooltip-text-z-value:empty {\n display: none;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n font-weight: 600;\n}\n\n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-goals-group, \n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n display: flex;\n}\n.apexcharts-tooltip-text-goals-label:not(:empty),\n.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px;\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0px;\n margin-right: 10px;\n border-radius: 50%;\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px;\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0 !important;\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-box, .apexcharts-custom-tooltip {\n padding: 4px 8px;\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse;\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0;\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: bold;\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px;\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777;\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: bold;\n display: block;\n margin-bottom: 5px;\n}\n\n.apexcharts-xaxistooltip {\n opacity: 0;\n padding: 9px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: \" \";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-left: -6px;\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-left: -7px;\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%;\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n top: 100%;\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #ECEFF1;\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #ECEFF1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-yaxistooltip {\n opacity: 0;\n padding: 4px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: \" \";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-top: -6px;\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-top: -7px;\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n left: 100%;\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n right: 100%;\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1;\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none;\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0;\n}\n\n.apexcharts-selection-rect {\n cursor: move;\n}\n\n.svg_select_boundingRect, .svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n}\n.apexcharts-selection-rect + g .svg_select_boundingRect,\n.apexcharts-selection-rect + g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden;\n}\n\n.apexcharts-selection-rect + g .svg_select_points_l,\n.apexcharts-selection-rect + g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible;\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2;\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon,\n.apexcharts-reset-icon,\n.apexcharts-pan-icon,\n.apexcharts-selection-icon,\n.apexcharts-menu-icon,\n.apexcharts-toolbar-custom-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6E8192;\n text-align: center;\n}\n\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-menu-icon svg {\n fill: #6E8192;\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(0.76)\n}\n\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\n fill: #f3f4f5;\n}\n\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\n fill: #008FFB;\n}\n\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\n fill: #333;\n}\n\n.apexcharts-selection-icon,\n.apexcharts-menu-icon {\n position: relative;\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px;\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-reset-icon,\n.apexcharts-menu-icon {\n transform: scale(0.85);\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n transform: scale(0.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px;\n}\n\n.apexcharts-pan-icon {\n transform: scale(0.62);\n position: relative;\n left: 1px;\n top: 0px;\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6E8192;\n stroke-width: 2;\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008FFB;\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333;\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0px 6px 2px 6px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: 0.15s ease all;\n pointer-events: none;\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: 0.15s ease all;\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee;\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n}\n\n@media screen and (min-width: 768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1;\n }\n}\n\n.apexcharts-datalabel.apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-pie-label,\n.apexcharts-datalabels,\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value {\n cursor: default;\n pointer-events: none;\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: 0.3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease;\n}\n\n.apexcharts-canvas .apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-gridline,\n.apexcharts-annotation-rect,\n.apexcharts-xaxis-annotation-label,\n.apexcharts-yaxis-annotation-label,\n.apexcharts-point-annotation-label,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-line,\n.apexcharts-zoom-rect,\n.apexcharts-toolbar svg,\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-radar-series path,\n.apexcharts-radar-series polygon {\n pointer-events: none;\n}\n\n\n/* markers */\n\n.apexcharts-marker {\n transition: 0.15s ease all;\n}\n\n@keyframes opaque {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n\n/* Resize generated styles */\n\n@keyframes resizeanim {\n from {\n opacity: 0;\n }\n to {\n opacity: 0;\n }\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n}\n\n.resize-triggers,\n.resize-triggers>div,\n.contract-trigger:before {\n content: \" \";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.resize-triggers>div {\n background: #eee;\n overflow: auto;\n}\n\n.contract-trigger:before {\n width: 200%;\n height: 200%;\n}"; + + /** + * + * @module ApexCharts + **/ + + var ApexCharts$1 = /*#__PURE__*/function () { + function ApexCharts(el, opts) { + _classCallCheck(this, ApexCharts); + + this.opts = opts; + this.ctx = this; // Pass the user supplied options to the Base Class where these options will be extended with defaults. The returned object from Base Class will become the config object in the entire codebase. + + this.w = new Base(opts).init(); + this.el = el; + this.w.globals.cuid = Utils$1.randomId(); + this.w.globals.chartID = this.w.config.chart.id ? Utils$1.escapeString(this.w.config.chart.id) : this.w.globals.cuid; + var initCtx = new InitCtxVariables(this); + initCtx.initModules(); + this.create = Utils$1.bind(this.create, this); + this.windowResizeHandler = this._windowResizeHandler.bind(this); + this.parentResizeHandler = this._parentResizeCallback.bind(this); + } + /** + * The primary method user will call to render the chart. + */ + + + _createClass(ApexCharts, [{ + key: "render", + value: function render() { + var _this = this; + + // main method + return new Promise(function (resolve, reject) { + // only draw chart, if element found + if (_this.el !== null) { + if (typeof Apex._chartInstances === 'undefined') { + Apex._chartInstances = []; + } + + if (_this.w.config.chart.id) { + Apex._chartInstances.push({ + id: _this.w.globals.chartID, + group: _this.w.config.chart.group, + chart: _this + }); + } // set the locale here + + + _this.setLocale(_this.w.config.chart.defaultLocale); + + var beforeMount = _this.w.config.chart.events.beforeMount; + + if (typeof beforeMount === 'function') { + beforeMount(_this, _this.w); + } + + _this.events.fireEvent('beforeMount', [_this, _this.w]); + + window.addEventListener('resize', _this.windowResizeHandler); + addResizeListener(_this.el.parentNode, _this.parentResizeHandler); // Add CSS if not already added + + if (!_this.css) { + var rootNode = _this.el.getRootNode && _this.el.getRootNode(); + + var inShadowRoot = Utils$1.is('ShadowRoot', rootNode); + var doc = _this.el.ownerDocument; + var globalCSS = doc.getElementById('apexcharts-css'); + + if (inShadowRoot || !globalCSS) { + _this.css = document.createElement('style'); + _this.css.id = 'apexcharts-css'; + _this.css.textContent = css_248z; + + if (inShadowRoot) { + // We are in Shadow DOM, add to shadow root + rootNode.prepend(_this.css); + } else { + // Add to of element's document + doc.head.appendChild(_this.css); + } + } + } + + var graphData = _this.create(_this.w.config.series, {}); + + if (!graphData) return resolve(_this); + + _this.mount(graphData).then(function () { + if (typeof _this.w.config.chart.events.mounted === 'function') { + _this.w.config.chart.events.mounted(_this, _this.w); + } + + _this.events.fireEvent('mounted', [_this, _this.w]); + + resolve(graphData); + }).catch(function (e) { + reject(e); // handle error in case no data or element not found + }); + } else { + reject(new Error('Element not found')); + } + }); + } + }, { + key: "create", + value: function create(ser, opts) { + var w = this.w; + var initCtx = new InitCtxVariables(this); + initCtx.initModules(); + var gl = this.w.globals; + gl.noData = false; + gl.animationEnded = false; + this.responsive.checkResponsiveConfig(opts); + + if (w.config.xaxis.convertedCatToNumeric) { + var defaults = new Defaults(w.config); + defaults.convertCatToNumericXaxis(w.config, this.ctx); + } + + if (this.el === null) { + gl.animationEnded = true; + return null; + } + + this.core.setupElements(); + + if (w.config.chart.type === 'treemap') { + w.config.grid.show = false; + w.config.yaxis[0].show = false; + } + + if (gl.svgWidth === 0) { + // if the element is hidden, skip drawing + gl.animationEnded = true; + return null; + } + + var combo = CoreUtils.checkComboSeries(ser); + gl.comboCharts = combo.comboCharts; + gl.comboBarCount = combo.comboBarCount; + var allSeriesAreEmpty = ser.every(function (s) { + return s.data && s.data.length === 0; + }); + + if (ser.length === 0 || allSeriesAreEmpty) { + this.series.handleNoData(); + } + + this.events.setupEventHandlers(); // Handle the data inputted by user and set some of the global variables (for eg, if data is datetime / numeric / category). Don't calculate the range / min / max at this time + + this.data.parseData(ser); // this is a good time to set theme colors first + + this.theme.init(); // as markers accepts array, we need to setup global markers for easier access + + var markers = new Markers(this); + markers.setGlobalMarkerSize(); // labelFormatters should be called before dimensions as in dimensions we need text labels width + + this.formatters.setLabelFormatters(); + this.titleSubtitle.draw(); // legend is calculated here before coreCalculations because it affects the plottable area + // if there is some data to show or user collapsed all series, then proceed drawing legend + + if (!gl.noData || gl.collapsedSeries.length === gl.series.length || w.config.legend.showForSingleSeries) { + this.legend.init(); + } // check whether in multiple series, all series share the same X + + + this.series.hasAllSeriesEqualX(); // coreCalculations will give the min/max range and yaxis/axis values. It should be called here to set series variable from config to globals + + if (gl.axisCharts) { + this.core.coreCalculations(); + + if (w.config.xaxis.type !== 'category') { + // as we have minX and maxX values, determine the default DateTimeFormat for time series + this.formatters.setLabelFormatters(); + } + + this.ctx.toolbar.minX = w.globals.minX; + this.ctx.toolbar.maxX = w.globals.maxX; + } // we need to generate yaxis for heatmap separately as we are not showing numerics there, but seriesNames. There are some tweaks which are required for heatmap to align labels correctly which are done in below function + // Also we need to do this before calculating Dimensions plotCoords() method of Dimensions + + + this.formatters.heatmapLabelFormatters(); // get the largest marker size which will be needed in dimensions calc + + var coreUtils = new CoreUtils(this); + coreUtils.getLargestMarkerSize(); // We got plottable area here, next task would be to calculate axis areas + + this.dimensions.plotCoords(); + var xyRatios = this.core.xySettings(); + this.grid.createGridMask(); + var elGraph = this.core.plotChartType(ser, xyRatios); + var dataLabels = new DataLabels(this); + dataLabels.bringForward(); + + if (w.config.dataLabels.background.enabled) { + dataLabels.dataLabelsBackground(); + } // after all the drawing calculations, shift the graphical area (actual charts/bars) excluding legends + + + this.core.shiftGraphPosition(); + var dim = { + plot: { + left: w.globals.translateX, + top: w.globals.translateY, + width: w.globals.gridWidth, + height: w.globals.gridHeight + } + }; + return { + elGraph: elGraph, + xyRatios: xyRatios, + elInner: w.globals.dom.elGraphical, + dimensions: dim + }; + } + }, { + key: "mount", + value: function mount() { + var _this2 = this; + + var graphData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var me = this; + var w = me.w; + return new Promise(function (resolve, reject) { + // no data to display + if (me.el === null) { + return reject(new Error('Not enough data to display or target element not found')); + } else if (graphData === null || w.globals.allSeriesCollapsed) { + me.series.handleNoData(); + } + + if (w.config.chart.type !== 'treemap') { + me.axes.drawAxis(w.config.chart.type, graphData.xyRatios); + } + + me.grid = new Grid(me); + var elgrid = me.grid.drawGrid(); + me.annotations = new Annotations(me); + me.annotations.drawImageAnnos(); + me.annotations.drawTextAnnos(); + + if (w.config.grid.position === 'back' && elgrid) { + w.globals.dom.elGraphical.add(elgrid.el); + } + + var xAxis = new XAxis(_this2.ctx); + var yaxis = new YAxis(_this2.ctx); + + if (elgrid !== null) { + xAxis.xAxisLabelCorrections(elgrid.xAxisTickWidth); + yaxis.setYAxisTextAlignments(); + w.config.yaxis.map(function (yaxe, index) { + if (w.globals.ignoreYAxisIndexes.indexOf(index) === -1) { + yaxis.yAxisTitleRotate(index, yaxe.opposite); + } + }); + } + + if (w.config.annotations.position === 'back') { + w.globals.dom.Paper.add(w.globals.dom.elAnnotations); + me.annotations.drawAxesAnnotations(); + } + + if (Array.isArray(graphData.elGraph)) { + for (var g = 0; g < graphData.elGraph.length; g++) { + w.globals.dom.elGraphical.add(graphData.elGraph[g]); + } + } else { + w.globals.dom.elGraphical.add(graphData.elGraph); + } + + if (w.config.grid.position === 'front' && elgrid) { + w.globals.dom.elGraphical.add(elgrid.el); + } + + if (w.config.xaxis.crosshairs.position === 'front') { + me.crosshairs.drawXCrosshairs(); + } + + if (w.config.yaxis[0].crosshairs.position === 'front') { + me.crosshairs.drawYCrosshairs(); + } + + if (w.config.annotations.position === 'front') { + w.globals.dom.Paper.add(w.globals.dom.elAnnotations); + me.annotations.drawAxesAnnotations(); + } + + if (!w.globals.noData) { + // draw tooltips at the end + if (w.config.tooltip.enabled && !w.globals.noData) { + me.w.globals.tooltip.drawTooltip(graphData.xyRatios); + } + + if (w.globals.axisCharts && (w.globals.isXNumeric || w.config.xaxis.convertedCatToNumeric || w.globals.isRangeBar)) { + if (w.config.chart.zoom.enabled || w.config.chart.selection && w.config.chart.selection.enabled || w.config.chart.pan && w.config.chart.pan.enabled) { + me.zoomPanSelection.init({ + xyRatios: graphData.xyRatios + }); + } + } else { + var tools = w.config.chart.toolbar.tools; + var toolsArr = ['zoom', 'zoomin', 'zoomout', 'selection', 'pan', 'reset']; + toolsArr.forEach(function (t) { + tools[t] = false; + }); + } + + if (w.config.chart.toolbar.show && !w.globals.allSeriesCollapsed) { + me.toolbar.createToolbar(); + } + } + + if (w.globals.memory.methodsToExec.length > 0) { + w.globals.memory.methodsToExec.forEach(function (fn) { + fn.method(fn.params, false, fn.context); + }); + } + + if (!w.globals.axisCharts && !w.globals.noData) { + me.core.resizeNonAxisCharts(); + } + + resolve(me); + }); + } + /** + * Destroy the chart instance by removing all elements which also clean up event listeners on those elements. + */ + + }, { + key: "destroy", + value: function destroy() { + window.removeEventListener('resize', this.windowResizeHandler); + removeResizeListener(this.el.parentNode, this.parentResizeHandler); // remove the chart's instance from the global Apex._chartInstances + + var chartID = this.w.config.chart.id; + + if (chartID) { + Apex._chartInstances.forEach(function (c, i) { + if (c.id === Utils$1.escapeString(chartID)) { + Apex._chartInstances.splice(i, 1); + } + }); + } + + new Destroy(this.ctx).clear({ + isUpdating: false + }); + } + /** + * Allows users to update Options after the chart has rendered. + * + * @param {object} options - A new config object can be passed which will be merged with the existing config object + * @param {boolean} redraw - should redraw from beginning or should use existing paths and redraw from there + * @param {boolean} animate - should animate or not on updating Options + */ + + }, { + key: "updateOptions", + value: function updateOptions(options) { + var _this3 = this; + + var redraw = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var animate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var updateSyncedCharts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var overwriteInitialConfig = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var w = this.w; // when called externally, clear some global variables + // fixes apexcharts.js#1488 + + w.globals.selection = undefined; + + if (options.series) { + this.series.resetSeries(false, true, false); + + if (options.series.length && options.series[0].data) { + options.series = options.series.map(function (s, i) { + return _this3.updateHelpers._extendSeries(s, i); + }); + } // user updated the series via updateOptions() function. + // Hence, we need to reset axis min/max to avoid zooming issues + + + this.updateHelpers.revertDefaultAxisMinMax(); + } // user has set x-axis min/max externally - hence we need to forcefully set the xaxis min/max + + + if (options.xaxis) { + options = this.updateHelpers.forceXAxisUpdate(options); + } + + if (options.yaxis) { + options = this.updateHelpers.forceYAxisUpdate(options); + } + + if (w.globals.collapsedSeriesIndices.length > 0) { + this.series.clearPreviousPaths(); + } + /* update theme mode#459 */ + + + if (options.theme) { + options = this.theme.updateThemeOptions(options); + } + + return this.updateHelpers._updateOptions(options, redraw, animate, updateSyncedCharts, overwriteInitialConfig); + } + /** + * Allows users to update Series after the chart has rendered. + * + * @param {array} series - New series which will override the existing + */ + + }, { + key: "updateSeries", + value: function updateSeries() { + var newSeries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var animate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var overwriteInitialSeries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + this.series.resetSeries(false); + this.updateHelpers.revertDefaultAxisMinMax(); + return this.updateHelpers._updateSeries(newSeries, animate, overwriteInitialSeries); + } + /** + * Allows users to append a new series after the chart has rendered. + * + * @param {array} newSerie - New serie which will be appended to the existing series + */ + + }, { + key: "appendSeries", + value: function appendSeries(newSerie) { + var animate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var overwriteInitialSeries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var newSeries = this.w.config.series.slice(); + newSeries.push(newSerie); + this.series.resetSeries(false); + this.updateHelpers.revertDefaultAxisMinMax(); + return this.updateHelpers._updateSeries(newSeries, animate, overwriteInitialSeries); + } + /** + * Allows users to append Data to series. + * + * @param {array} newData - New data in the same format as series + */ + + }, { + key: "appendData", + value: function appendData(newData) { + var overwriteInitialSeries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var me = this; + me.w.globals.dataChanged = true; + me.series.getPreviousPaths(); + var newSeries = me.w.config.series.slice(); + + for (var i = 0; i < newSeries.length; i++) { + if (newData[i] !== null && typeof newData[i] !== 'undefined') { + for (var j = 0; j < newData[i].data.length; j++) { + newSeries[i].data.push(newData[i].data[j]); + } + } + } + + me.w.config.series = newSeries; + + if (overwriteInitialSeries) { + me.w.globals.initialSeries = Utils$1.clone(me.w.config.series); + } + + return this.update(); + } + }, { + key: "update", + value: function update(options) { + var _this4 = this; + + return new Promise(function (resolve, reject) { + new Destroy(_this4.ctx).clear({ + isUpdating: true + }); + + var graphData = _this4.create(_this4.w.config.series, options); + + if (!graphData) return resolve(_this4); + + _this4.mount(graphData).then(function () { + if (typeof _this4.w.config.chart.events.updated === 'function') { + _this4.w.config.chart.events.updated(_this4, _this4.w); + } + + _this4.events.fireEvent('updated', [_this4, _this4.w]); + + _this4.w.globals.isDirty = true; + resolve(_this4); + }).catch(function (e) { + reject(e); + }); + }); + } + /** + * Get all charts in the same "group" (including the instance which is called upon) to sync them when user zooms in/out or pan. + */ + + }, { + key: "getSyncedCharts", + value: function getSyncedCharts() { + var chartGroups = this.getGroupedCharts(); + var allCharts = [this]; + + if (chartGroups.length) { + allCharts = []; + chartGroups.forEach(function (ch) { + allCharts.push(ch); + }); + } + + return allCharts; + } + /** + * Get charts in the same "group" (excluding the instance which is called upon) to perform operations on the other charts of the same group (eg., tooltip hovering) + */ + + }, { + key: "getGroupedCharts", + value: function getGroupedCharts() { + var _this5 = this; + + return Apex._chartInstances.filter(function (ch) { + if (ch.group) { + return true; + } + }).map(function (ch) { + return _this5.w.config.chart.group === ch.group ? ch.chart : _this5; + }); + } + }, { + key: "toggleSeries", + value: function toggleSeries(seriesName) { + return this.series.toggleSeries(seriesName); + } + }, { + key: "highlightSeriesOnLegendHover", + value: function highlightSeriesOnLegendHover(e, targetElement) { + return this.series.toggleSeriesOnHover(e, targetElement); + } + }, { + key: "showSeries", + value: function showSeries(seriesName) { + this.series.showSeries(seriesName); + } + }, { + key: "hideSeries", + value: function hideSeries(seriesName) { + this.series.hideSeries(seriesName); + } + }, { + key: "resetSeries", + value: function resetSeries() { + var shouldUpdateChart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var shouldResetZoom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + this.series.resetSeries(shouldUpdateChart, shouldResetZoom); + } // Public method to add event listener on chart context + + }, { + key: "addEventListener", + value: function addEventListener(name, handler) { + this.events.addEventListener(name, handler); + } // Public method to remove event listener on chart context + + }, { + key: "removeEventListener", + value: function removeEventListener(name, handler) { + this.events.removeEventListener(name, handler); + } + }, { + key: "addXaxisAnnotation", + value: function addXaxisAnnotation(opts) { + var pushToMemory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; + var me = this; + + if (context) { + me = context; + } + + me.annotations.addXaxisAnnotationExternal(opts, pushToMemory, me); + } + }, { + key: "addYaxisAnnotation", + value: function addYaxisAnnotation(opts) { + var pushToMemory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; + var me = this; + + if (context) { + me = context; + } + + me.annotations.addYaxisAnnotationExternal(opts, pushToMemory, me); + } + }, { + key: "addPointAnnotation", + value: function addPointAnnotation(opts) { + var pushToMemory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; + var me = this; + + if (context) { + me = context; + } + + me.annotations.addPointAnnotationExternal(opts, pushToMemory, me); + } + }, { + key: "clearAnnotations", + value: function clearAnnotations() { + var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; + var me = this; + + if (context) { + me = context; + } + + me.annotations.clearAnnotations(me); + } + }, { + key: "removeAnnotation", + value: function removeAnnotation(id) { + var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + var me = this; + + if (context) { + me = context; + } + + me.annotations.removeAnnotation(me, id); + } + }, { + key: "getChartArea", + value: function getChartArea() { + var el = this.w.globals.dom.baseEl.querySelector('.apexcharts-inner'); + return el; + } + }, { + key: "getSeriesTotalXRange", + value: function getSeriesTotalXRange(minX, maxX) { + return this.coreUtils.getSeriesTotalsXRange(minX, maxX); + } + }, { + key: "getHighestValueInSeries", + value: function getHighestValueInSeries() { + var seriesIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var range = new Range(this.ctx); + return range.getMinYMaxY(seriesIndex).highestY; + } + }, { + key: "getLowestValueInSeries", + value: function getLowestValueInSeries() { + var seriesIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var range = new Range(this.ctx); + return range.getMinYMaxY(seriesIndex).lowestY; + } + }, { + key: "getSeriesTotal", + value: function getSeriesTotal() { + return this.w.globals.seriesTotals; + } + }, { + key: "toggleDataPointSelection", + value: function toggleDataPointSelection(seriesIndex, dataPointIndex) { + return this.updateHelpers.toggleDataPointSelection(seriesIndex, dataPointIndex); + } + }, { + key: "zoomX", + value: function zoomX(min, max) { + this.ctx.toolbar.zoomUpdateOptions(min, max); + } + }, { + key: "setLocale", + value: function setLocale(localeName) { + this.localization.setCurrentLocaleValues(localeName); + } + }, { + key: "dataURI", + value: function dataURI(options) { + var exp = new Exports(this.ctx); + return exp.dataURI(options); + } + }, { + key: "exportToCSV", + value: function exportToCSV() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var exp = new Exports(this.ctx); + return exp.exportToCSV(options); + } + }, { + key: "paper", + value: function paper() { + return this.w.globals.dom.Paper; + } + }, { + key: "_parentResizeCallback", + value: function _parentResizeCallback() { + if (this.w.globals.animationEnded && this.w.config.chart.redrawOnParentResize) { + this._windowResize(); + } + } + /** + * Handle window resize and re-draw the whole chart. + */ + + }, { + key: "_windowResize", + value: function _windowResize() { + var _this6 = this; + + clearTimeout(this.w.globals.resizeTimer); + this.w.globals.resizeTimer = window.setTimeout(function () { + _this6.w.globals.resized = true; + _this6.w.globals.dataChanged = false; // we need to redraw the whole chart on window resize (with a small delay). + + _this6.ctx.update(); + }, 150); + } + }, { + key: "_windowResizeHandler", + value: function _windowResizeHandler() { + var redraw = this.w.config.chart.redrawOnWindowResize; + + if (typeof redraw === 'function') { + redraw = redraw(); + } + + redraw && this._windowResize(); + } + }], [{ + key: "getChartByID", + value: function getChartByID(id) { + var chartId = Utils$1.escapeString(id); + + var c = Apex._chartInstances.filter(function (ch) { + return ch.id === chartId; + })[0]; + + return c && c.chart; + } + /** + * Allows the user to provide data attrs in the element and the chart will render automatically when this method is called by searching for the elements containing 'data-apexcharts' attribute + */ + + }, { + key: "initOnLoad", + value: function initOnLoad() { + var els = document.querySelectorAll('[data-apexcharts]'); + + for (var i = 0; i < els.length; i++) { + var el = els[i]; + var options = JSON.parse(els[i].getAttribute('data-options')); + var apexChart = new ApexCharts(el, options); + apexChart.render(); + } + } + /** + * This static method allows users to call chart methods without necessarily from the + * instance of the chart in case user has assigned chartID to the targeted chart. + * The chartID is used for mapping the instance stored in Apex._chartInstances global variable + * + * This is helpful in cases when you don't have reference of the chart instance + * easily and need to call the method from anywhere. + * For eg, in React/Vue applications when you have many parent/child components, + * and need easy reference to other charts for performing dynamic operations + * + * @param {string} chartID - The unique identifier which will be used to call methods + * on that chart instance + * @param {function} fn - The method name to call + * @param {object} opts - The parameters which are accepted in the original method will be passed here in the same order. + */ + + }, { + key: "exec", + value: function exec(chartID, fn) { + var chart = this.getChartByID(chartID); + if (!chart) return; // turn on the global exec flag to indicate this method was called + + chart.w.globals.isExecCalled = true; + var ret = null; + + if (chart.publicMethods.indexOf(fn) !== -1) { + for (var _len = arguments.length, opts = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + opts[_key - 2] = arguments[_key]; + } + + ret = chart[fn].apply(chart, opts); + } + + return ret; + } + }, { + key: "merge", + value: function merge(target, source) { + return Utils$1.extend(target, source); + } + }]); + + return ApexCharts; + }(); + + return ApexCharts$1; + +}))); diff --git a/demo/dist/libs/apexcharts/dist/apexcharts.min.js b/demo/dist/libs/apexcharts/dist/apexcharts.min.js index b256585a3..461a5971f 100644 --- a/demo/dist/libs/apexcharts/dist/apexcharts.min.js +++ b/demo/dist/libs/apexcharts/dist/apexcharts.min.js @@ -1,14 +1,14 @@ /*! - * ApexCharts v3.35.0 + * ApexCharts v3.35.4 * (c) 2018-2022 ApexCharts * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ApexCharts=e()}(this,(function(){"use strict";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;it.length)&&(e=t.length);for(var i=0,a=new Array(e);i>16,o=i>>8&255,n=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:"shadeColor",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:"bind",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:"isObject",value:function(t){return t&&"object"===i(t)&&!Array.isArray(t)&&null!=t}},{key:"is",value:function(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"}},{key:"listToArray",value:function(t){var e,i=[];for(e=0;ee.length?t:e}))),t.length>e.length?t:e}),0)}},{key:"hexToRgba",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"#999999",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;"#"!==t.substring(0,1)&&(t="#999999");var i=t.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"x",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]/gi,e)}},{key:"negToZero",value:function(t){return t<0?0:t}},{key:"moveIndexInArray",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:"extractNumber",value:function(t){return parseFloat(t.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:"setELstyles",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:"isNumber",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:"isFloat",value:function(t){return Number(t)===t&&t%1!=0}},{key:"isSafari",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isIE11",value:function(){if(-1!==window.navigator.userAgent.indexOf("MSIE")||window.navigator.appVersion.indexOf("Trident/")>-1)return!0}},{key:"isIE",value:function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var a=t.indexOf("Edge/");return a>0&&parseInt(t.substring(a+5,t.indexOf(".",a)),10)}}]),t}(),b=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return r(t,[{key:"setEasingFunctions",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case"linear":t="-";break;case"easein":t="<";break;case"easeout":t=">";break;case"easeinout":t="<>";break;case"swing":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case"bounce":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case"elastic":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1};break;default:t="<>"}this.w.globals.easing=t}}},{key:"animateLine",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:"animateMarker",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:"animateCircle",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:"animateRect",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:"animatePathsGradually",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&"bar"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,"line"!==h.config.chart.type||h.globals.comboCharts?s:"stroke",r,o,n,l*c)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach((function(t){t.el.classList.remove("apexcharts-element-hidden")}))}},{key:"animationCompleted",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:"morphSVG",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr("pathFrom")),r||(r=t.attr("pathTo"));var c=function(t){return"radar"===h.config.chart.type&&(o=1),"M 0 ".concat(h.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=c()),(!r||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){x.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):"none"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),v=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getDefaultFilter",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size("120%","180%","-5%","-40%"),"none"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addNormalFilter",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains("apexcharts-marker")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addLightenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"addDarkenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"applyFilter",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(t,e);break;case"lighten":this.addLightenFilter(t,e,{intensity:a});break;case"darken":this.addDarkenFilter(t,e,{intensity:a})}}},{key:"addShadow",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,o=i.color,n=i.opacity,l=t.flood(Array.isArray(o)?o[e]:o,n).composite(t.sourceAlpha,"in").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:"dropShadow",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,o=e.color,n=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),x.isIE()&&"radialBar"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e=null;e=x.isSafari()||x.isFirefox()||x.isIE()?t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r):t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)),t}},{key:"setSelectionFilter",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute("selected",!0);var s=a.config.states.active.filter;"none"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:"_scaleFilterSize",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}]),t}(),m=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawLine",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"#a8a8a8",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"butt",l=this.w,h=l.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":o,"stroke-linecap":n});return h}},{key:"drawRect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"#fefefe",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w,d=c.globals.dom.Paper.rect();return d.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,"stroke-width":null!==n?n:0,stroke:null!==l?l:"none","stroke-dasharray":h}),d.node.setAttribute("fill",r),d}},{key:"drawPolygon",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#e1e1e1",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",s=this.w,r=s.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,"stroke-width":i});return r}},{key:"drawCircle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;t<0&&(t=0);var a=i.globals.dom.Paper.circle(2*t);return null!==e&&a.attr(e),a}},{key:"drawPath",value:function(t){var e=t.d,i=void 0===e?"":e,a=t.stroke,s=void 0===a?"#a8a8a8":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,p=void 0===u?null:u,f=t.strokeDashArray,x=void 0===f?0:f,b=this.w;return null===p&&(p=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,"fill-opacity":h,stroke:s,"stroke-opacity":d,"stroke-linecap":p,"stroke-width":o,"stroke-dasharray":x,class:g})}},{key:"group",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=e.globals.dom.Paper.group();return null!==t&&i.attr(t),i}},{key:"move",value:function(t,e){var i=["M",t,e].join(" ");return i}},{key:"line",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=["L",t,e].join(" "):"H"===i?a=["H",t].join(" "):"V"===i&&(a=["V",e].join(" ")),a}},{key:"curve",value:function(t,e,i,a,s,r){var o=["C",t,e,i,a,s,r].join(" ");return o}},{key:"quadraticCurve",value:function(t,e,i,a){return["Q",t,e,i,a].join(" ")}},{key:"arc",value:function(t,e,i,a,s,r,o){var n=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l="A";n&&(l="a");var h=[l,t,e,i,a,s,r,o].join(" ");return h}},{key:"renderPaths",value:function(t){var i,a=t.j,s=t.realIndex,r=t.pathFrom,o=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,p=t.className,f=t.shouldClipToGrid,x=void 0===f||f,m=t.bindEventsOnPaths,y=void 0===m||m,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new v(this.ctx),C=new b(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,T=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);T?i=r:(i=o,A.globals.animationEnded=!0);var M=A.config.stroke.dashArray,I=0;I=Array.isArray(M)?M[s]:A.config.stroke.dashArray;var z=this.drawPath({d:i,stroke:n,strokeWidth:l,fill:c,fillOpacity:1,classes:p,strokeLinecap:h,strokeDashArray:I});if(z.attr("index",s),x&&z.attr({"clip-path":"url(#gridRectMask".concat(A.globals.cuid,")")}),"none"!==A.config.states.normal.filter.type)S.getDefaultFilter(z,s);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(s))){var X=A.config.chart.dropShadow;S.dropShadow(z,X,s)}y&&(z.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,z)),z.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,z)),z.node.addEventListener("mousedown",this.pathMouseDown.bind(this,z))),z.attr({pathTo:o,pathFrom:r});var E={el:z,j:a,realIndex:s,pathFrom:r,pathTo:o,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(e(e({},E),{},{speed:g})),A.globals.dataChanged&&P&&T&&C.animatePathsGradually(e(e({},E),{},{speed:u})),z}},{key:"drawPattern",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#a8a8a8",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=this.w,o=r.globals.dom.Paper.pattern(e,i,(function(r){"horizontalLines"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):"verticalLines"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):"slantedLines"===t?r.line(0,0,e,i).stroke({color:a,width:s}):"squares"===t?r.rect(e,i).fill("none").stroke({color:a,width:s}):"circles"===t&&r.circle(e).fill("none").stroke({color:a,width:s})}));return o}},{key:"drawGradient",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf("#")&&(e=x.hexToRgba(e,a)),i.length<9&&0===i.indexOf("#")&&(i=x.hexToRgba(i,s));var d=0,g=1,u=1,p=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,p=void 0!==n[3]?n[3]/100:null);var f=!("donut"!==c.config.chart.type&&"pie"!==c.config.chart.type&&"polarArea"!==c.config.chart.type&&"bubble"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(f?"radial":"linear",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==p&&t.at(p,e,a)})):c.globals.dom.Paper.gradient(f?"radial":"linear",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),f){var b=c.globals.gridWidth/2,v=c.globals.gridHeight/2;"bubble"!==c.config.chart.type?r.attr({gradientUnits:"userSpaceOnUse",cx:b,cy:v,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?r.from(0,0).to(0,1):"diagonal"===t?r.from(0,0).to(1,1):"horizontal"===t?r.from(0,1).to(1,1):"diagonal2"===t&&r.from(1,0).to(0,1);return r}},{key:"drawText",value:function(t){var e,i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.fontSize,n=t.fontFamily,l=t.fontWeight,h=t.foreColor,c=t.opacity,d=t.cssClass,g=void 0===d?"":d,u=t.isPlainText,p=void 0===u||u,f=this.w;return void 0===s&&(s=""),r||(r="start"),h&&h.length||(h=f.config.chart.foreColor),n=n||f.config.chart.fontFamily,l=l||"regular",(e=Array.isArray(s)?f.globals.dom.Paper.text((function(t){for(var e=0;e-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(".apexcharts-series path").members,h=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute("selected","true"),o="true",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if("true"===o){var d=i.config.states.active.filter;"none"!==d&&a.applyFilter(t,s,d.type,d.value)}else"none"!==i.config.states.active.filter.type&&a.getDefaultFilter(t,s);"function"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent("dataPointSelection",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(t){var e={};return t&&"function"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:"getTextRects",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:"start",fontSize:e,fontFamily:i,foreColor:"#fff",opacity:0});a&&o.attr("transform",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:"placeTextWithEllipsis",value:function(t,e,i){if("function"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+"...");t.textContent="."}}}],[{key:"setAttrs",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),y=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getStackedSeriesTotals",value:function(){var t=this.w,e=[];if(0===t.globals.series.length)return e;for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:"isSeriesNull",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:"seriesHaveSameValues",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:"getCategoryLabels",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:"getLargestSeries",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:"getLargestMarkerSize",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:"getSeriesTotals",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][o]0&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:"extendArrayProps",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e}return r(t,[{key:"setOrientations",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if("vertical"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4),"top"===t.label.position?s.setAttribute("y",parseFloat(s.getAttribute("y"))+r.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute("transform","rotate(-90 ".concat(n," ").concat(l,")"))}}}},{key:"addBackgroundToAnno",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;"vertical"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:"annotationsBackground",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(a,"']"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener("mouseenter",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener("mouseleave",i.label.mouseLeave.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,"xaxis")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,"yaxis")})),e.config.annotations.points.map((function(t,e){i(t,e,"point")}))}},{key:"getY1Y2",value:function(t,e){var i,a="y1"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var o=s.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child("+(r+1)+")");o&&(i=parseFloat(o.getAttribute("y")))}else{var n;if(s.config.yaxis[e.yAxisIndex].logarithmic)n=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else n=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-n,s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=n)}return i}},{key:"getX1X2",value:function(t,e){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,o=(e.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(o=(s-e.x)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(e.x));var n=(e.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(n=(s-e.x2)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(e.x2)),"x1"===t?o:n}},{key:"getStringX",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}}]),t}(),k=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addXaxisAnnotation",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2("x1",t),o=t.label.text,n=t.strokeDashArray;if(x.isNumber(r)){if(null===t.x2||void 0===t.x2){var l=this.annoCtx.graphics.drawLine(r+t.offsetX,0+t.offsetY,r+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,n,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getX1X2("x2",t))o){var h=o;o=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),o-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add("apexcharts-annotation-rect"),c.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d="right"===t.label.position?s.globals.gridWidth:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(null!=a?a:o)+t.label.offsetY-3,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});g.attr({rel:i}),e.appendChild(g.node)}},{key:"_getYAxisAnnotationWidth",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf("%")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:"drawYAxisAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),S=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addPointAnnotation",value:function(t,e,i){this.w;var a=this.helpers.getX1X2("x1",t),s=this.helpers.getY1Y2("y1",t);if(x.isNumber(a)){var r={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:"apexcharts-point-annotation-marker ".concat(t.marker.cssClass," ").concat(t.id?t.id:"")},o=this.annoCtx.graphics.drawMarker(a+t.marker.offsetX,s+t.marker.offsetY,r);e.appendChild(o.node);var n=t.label.text?t.label.text:"",l=this.annoCtx.graphics.drawText({x:a+t.label.offsetX,y:s+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});if(l.attr({rel:i}),e.appendChild(l.node),t.customSVG.SVG){var h=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+t.customSVG.cssClass});h.attr({transform:"translate(".concat(a+t.customSVG.offsetX,", ").concat(s+t.customSVG.offsetY,")")}),h.node.innerHTML=t.customSVG.SVG,e.appendChild(h.node)}if(t.image.path){var c=t.image.width?t.image.width:20,d=t.image.height?t.image.height:20;o=this.annoCtx.addImage({x:a+t.image.offsetX-c/2,y:s+t.image.offsetY-d/2,width:c,height:d,path:t.image.path,appendTo:".apexcharts-point-annotations"})}t.mouseEnter&&o.node.addEventListener("mouseenter",t.mouseEnter.bind(this,t)),t.mouseLeave&&o.node.addEventListener("mouseleave",t.mouseLeave.bind(this,t))}}},{key:"drawPointAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var C={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},L=function(){function t(){a(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:0,mouseEnter:void 0,mouseLeave:void 0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,radius:2,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return r(t,[{key:"init",value:function(){return{annotations:{position:"front",yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:"easeinout",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"transparent",locales:[C],defaultLocale:"en",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0},stacked:!1,stackType:"normal",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,rangeBarOverlap:!0,rangeBarGroupRows:!1,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal"}},bubble:{minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+"%"}},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+"%"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:""},textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:"#fff",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:"none",value:0}},hover:{filter:{type:"lighten",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.5}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",cssClass:"",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+": ":""}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss",second:"HH:mm:ss"},group:{groups:[],style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""}}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"light",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),t}(),P=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.graphics=new m(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new w(this),this.xAxisAnnotations=new k(this),this.yAxisAnnotations=new A(this),this.pointsAnnotations=new S(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return r(t,[{key:"drawAxesAnnotations",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||"scatter"!==t.config.chart.type&&"bubble"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add("apexcharts-element-hidden"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:"drawTextAnnos",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:"addXaxisAnnotation",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:"addYaxisAnnotation",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:"addPointAnnotation",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:"addText",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,p=t.borderRadius,f=t.borderColor,x=t.appendTo,b=void 0===x?".apexcharts-annotations":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:n||"12px",fontWeight:h||"regular",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),T=L.globals.dom.baseEl.querySelector(b);T&&T.appendChild(P.node);var M=P.bbox();if(s){var I=this.graphics.drawRect(M.x-m,M.y-C,M.width+m+w,M.height+A+C,p,d||"transparent",1,g,f,u);T.insertBefore(I.node,P.node)}}},{key:"addImage",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?".apexcharts-annotations":g,p=i.globals.dom.Paper.image(a);p.size(h,d).move(r,n);var f=i.globals.dom.baseEl.querySelector(u);return f&&f.appendChild(p.node),p}},{key:"addXaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),h=l.childNodes.length+1,c=new L,d=Object.assign({},"xaxis"===s?c.xAxisAnnotation:"yaxis"===s?c.yAxisAnnotation:c.pointAnnotation),g=x.extend(d,e);switch(s){case"xaxis":this.addXaxisAnnotation(g,l,h);break;case"yaxis":this.addYaxisAnnotation(g,l,h);break;case"point":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(h,"']")),p=this.helpers.addBackgroundToAnno(u,g);return p&&l.insertBefore(p.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:x.randomId(),method:r,label:"addAnnotation",params:e}),a}},{key:"clearAnnotations",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");e.globals.memory.methodsToExec.map((function(t,i){"addText"!==t.label&&"addAnnotation"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=x.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:"removeAnnotation",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),T=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0}return r(t,[{key:"clippedImgArea",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,"pattern");m.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:n+"px",height:l+"px"});var c=document.createElementNS(e.globals.SVGNS,"image");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,"href",o),m.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:n+"px",height:l+"px"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:"getSeriesIndex",value:function(t){var e=this.w;return("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||"heatmap"===e.config.chart.type||"treemap"===e.config.chart.type?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),"function"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf("rgb")?o.length<9&&(h=x.hexToRgba(o,l)):o.indexOf("rgba")>-1&&(l=x.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),"pattern"===n&&(a=this.handlePatternFill(a,o,l,h)),"gradient"===n&&(s=this.handleGradientFill(o,l,this.seriesIndex)),"image"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:"";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber-1&&(c=x.getOpacityFromRGBA(h));var d=void 0===s.fill.gradient.opacityTo?e:Array.isArray(s.fill.gradient.opacityTo)?s.fill.gradient.opacityTo[i]:s.fill.gradient.opacityTo;if(void 0===s.fill.gradient.gradientToColors||0===s.fill.gradient.gradientToColors.length)a="dark"===s.fill.gradient.shade?n.shadeColor(-1*parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?x.rgb2hex(t):t):n.shadeColor(parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?x.rgb2hex(t):t);else if(s.fill.gradient.gradientToColors[r.seriesNumber]){var g=s.fill.gradient.gradientToColors[r.seriesNumber];a=g,g.indexOf("rgba")>-1&&(d=x.getOpacityFromRGBA(g))}else a=t;if(s.fill.gradient.inverseColors){var u=h;h=a,a=u}return h.indexOf("rgb")>-1&&(h=x.rgb2hex(h)),a.indexOf("rgb")>-1&&(a=x.rgb2hex(a)),o.drawGradient(l,h,a,c,d,r.size,s.fill.gradient.stops,s.fill.gradient.colorStops,i)}}]),t}(),M=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"setGlobalMarkerSize",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new m(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(o.globals.cuid,")")),Array.isArray(l.x))for(var g=0;g0:o.config.markers.size>0;if(f||r||d){x.isNumber(l.y[g])?p+=" w".concat(x.randomId()):p="apexcharts-nullpoint";var b=this.getMarkerConfig({cssClass:p,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(b.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(b.pointStrokeColor=o.config.series[n].data[u].strokeColor)),a&&(b.pSize=a),(s=c.drawMarker(l.x[g],l.y[g],b)).attr("rel",u),s.attr("j",u),s.attr("index",e),s.node.setAttribute("default-marker-size",b.pSize);var y=new v(this.ctx);y.setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:"getMarkerConfig",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.finishRadius,o=void 0===r?null:r,n=this.w,l=this.getMarkerStyle(i),h=n.globals.markers.size[i],c=n.config.markers;return null!==s&&c.discrete.length&&c.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(l.pointStrokeColor=t.strokeColor,l.pointFillColor=t.fillColor,h=t.size,l.pointShape=t.shape)})),{pSize:null===o?h:o,pRadius:c.radius,width:Array.isArray(c.width)?c.width[i]:c.width,height:Array.isArray(c.height)?c.height[i]:c.height,pointStrokeWidth:Array.isArray(c.strokeWidth)?c.strokeWidth[i]:c.strokeWidth,pointStrokeColor:l.pointStrokeColor,pointFillColor:l.pointFillColor,shape:l.pointShape||(Array.isArray(c.shape)?c.shape[i]:c.shape),class:e,pointStrokeOpacity:Array.isArray(c.strokeOpacity)?c.strokeOpacity[i]:c.strokeOpacity,pointStrokeDashArray:Array.isArray(c.strokeDashArray)?c.strokeDashArray[i]:c.strokeDashArray,pointFillOpacity:Array.isArray(c.fillOpacity)?c.fillOpacity[i]:c.fillOpacity,seriesIndex:i}}},{key:"addEvents",value:function(t){var e=this.w,i=new m(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener("click",e.config.markers.onClick),t.node.addEventListener("dblclick",e.config.markers.onDblClick),t.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:"getMarkerStyle",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),I=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return r(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(h.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),Array.isArray(o.x))for(var c=0;cf.maxBubbleRadius&&(p=f.maxBubbleRadius)}a.config.chart.animations.enabled||(u=p);var x=o.x[c],b=o.y[c];if(u=u||0,null!==b&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,b,u,p,r,d,e);h.add(v)}l.add(h)}}},{key:"drawPoint",value:function(t,e,i,a,s,r,o){var n=this.w,l=s,h=new b(this.ctx),c=new v(this.ctx),d=new T(this.ctx),g=new M(this.ctx),u=new m(this.ctx),p=g.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:l,dataPointIndex:r,finishRadius:"bubble"===n.config.chart.type||n.globals.comboCharts&&n.config.series[s]&&"bubble"===n.config.series[s].type?a:null});a=p.pSize;var f,x=d.fillPath({seriesNumber:s,dataPointIndex:r,color:p.pointFillColor,patternUnits:"objectBoundingBox",value:n.globals.series[s][o]});if("circle"===p.shape?f=u.drawCircle(i):"square"!==p.shape&&"rect"!==p.shape||(f=u.drawRect(0,0,p.width-p.pointStrokeWidth/2,p.height-p.pointStrokeWidth/2,p.pRadius)),n.config.series[l].data[r]&&n.config.series[l].data[r].fillColor&&(x=n.config.series[l].data[r].fillColor),f.attr({x:t-p.width/2-p.pointStrokeWidth/2,y:e-p.height/2-p.pointStrokeWidth/2,cx:t,cy:e,fill:x,"fill-opacity":p.pointFillOpacity,stroke:p.pointStrokeColor,r:a,"stroke-width":p.pointStrokeWidth,"stroke-dasharray":p.pointStrokeDashArray,"stroke-opacity":p.pointStrokeOpacity}),n.config.chart.dropShadow.enabled){var y=n.config.chart.dropShadow;c.dropShadow(f,y,s)}if(!this.initialAnim||n.globals.dataChanged||n.globals.resized)n.globals.animationEnded=!0;else{var w=n.config.chart.animations.speed;h.animateMarker(f,0,"circle"===p.shape?a:{width:p.width,height:p.height},w,n.globals.easing,(function(){window.setTimeout((function(){h.animationCompleted(f)}),100)}))}if(n.globals.dataChanged&&"circle"===p.shape)if(this.dynamicAnim){var k,A,S,C,L=n.config.chart.animations.dynamicAnimation.speed;null!=(C=n.globals.previousPaths[s]&&n.globals.previousPaths[s][o])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var P=0;Pn.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var p=n.globals.dataLabelsRects[a][u];(t>p.x+p.width+2||e>p.y+p.height+2||t+c4&&void 0!==arguments[4]?arguments[4]:2,r=this.w,o=new m(this.ctx),n=r.config.dataLabels,l=0,h=0,c=i,d=null;if(!n.enabled||!Array.isArray(t.x))return d;d=o.group({class:"apexcharts-data-labels"});for(var g=0;ge.globals.gridWidth+f.textRects.width+10)&&(n="");var x=e.globals.dataLabels.style.colors[r];(("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(x=e.globals.dataLabels.style.colors[o]),"function"==typeof x&&(x=x({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(x=g);var b=d.offsetX,y=d.offsetY;if("bar"!==e.config.chart.type&&"rangeBar"!==e.config.chart.type||(b=0,y=0),f.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+b,y:s+y,foreColor:x,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||"normal"});if(w.attr({class:"apexcharts-datalabel",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new v(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}}}},{key:"addBackgroundToDataLabel",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new m(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,"transparent"===i.config.chart.background?"#fff":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new v(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:"dataLabelsBackground",value:function(){var t=this.w;if("bubble"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;ii.globals.gridHeight&&(c=i.globals.gridHeight-g)),{bcx:o,bcy:r,dataLabelsX:e,dataLabelsY:c}}},{key:"calculateBarsDataLabelsPosition",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.bcy,o=t.barHeight,n=t.barWidth,l=t.textRects,h=t.dataLabelsX,c=t.strokeWidth,d=t.barDataLabelsConfig,g=t.offX,u=t.offY,p=e.globals.gridHeight/e.globals.dataPoints;n=Math.abs(n);var f=r-(this.barCtx.isRangeBar?0:p)+o/2+l.height/2+u-3,x=this.barCtx.series[a][s]<0,b=i;switch(this.barCtx.isReversed&&(b=i+n-(x?2*n:0),i=e.globals.gridWidth-n),d.position){case"center":h=x?b+n/2-g:Math.max(l.width/2,b-n/2)+g;break;case"bottom":h=x?b+n-c-Math.round(l.width/2)-g:b-n+c+Math.round(l.width/2)+g;break;case"top":h=x?b-c+Math.round(l.width/2)-g:b-c-Math.round(l.width/2)+g}return e.config.chart.stacked||(h<0?h=h+l.width+c:h+l.width/2>e.globals.gridWidth&&(h=e.globals.gridWidth-l.width-c)),{bcx:i,bcy:r,dataLabelsX:h,dataLabelsY:f}}},{key:"drawCalculatedDataLabels",value:function(t){var i=t.x,a=t.y,s=t.val,r=t.i,o=t.j,n=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g="rotate(0)";"vertical"===d.config.plotOptions.bar.dataLabels.orientation&&(g="rotate(-90, ".concat(i,", ").concat(a,")"));var u=new z(this.barCtx.ctx),p=new m(this.barCtx.ctx),f=c.formatter,x=null,b=d.globals.collapsedSeriesIndices.indexOf(r)>-1;if(c.enabled&&!b){x=p.group({class:"apexcharts-data-labels",transform:g});var v="";void 0!==s&&(v=f(s,{seriesIndex:r,dataPointIndex:o,w:d}));var y=d.globals.series[r][o]<0,w=d.config.plotOptions.bar.dataLabels.position;if("vertical"===d.config.plotOptions.bar.dataLabels.orientation&&("top"===w&&(c.textAnchor=y?"end":"start"),"center"===w&&(c.textAnchor="middle"),"bottom"===w&&(c.textAnchor=y?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)hMath.abs(h)&&(v=""):n.height/1.6>Math.abs(l)&&(v=""));var k=e({},c);this.barCtx.isHorizontal&&s<0&&("start"===c.textAnchor?k.textAnchor="end":"end"===c.textAnchor&&(k.textAnchor="start")),u.plotDataLabelsText({x:i,y:a,text:v,i:r,j:o,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}}]),t}(),E=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.legendInactiveClass="legend-mouseover-inactive"}return r(t,[{key:"getAllSeriesEls",value:function(){return this.w.globals.dom.baseEl.getElementsByClassName("apexcharts-series")}},{key:"getSeriesByName",value:function(t){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner .apexcharts-series[seriesName='".concat(x.escapeString(t),"']"))}},{key:"isSeriesHidden",value:function(t){var e=this.getSeriesByName(t),i=parseInt(e.getAttribute("data:realIndex"),10);return{isHidden:e.classList.contains("apexcharts-series-collapsed"),realIndex:i}}},{key:"addCollapsedClassToSeries",value:function(t,e){var i=this.w;function a(i){for(var a=0;a0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=x.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:"toggleSeriesOnHover",value:function(t,e){var i=this.w;e||(e=t.target);var a=i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels");if("mousemove"===t.type){var s=parseInt(e.getAttribute("rel"),10)-1,r=null,o=null;i.globals.axisCharts||"radialBar"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s,"']")),o=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s,"']"))):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"']")):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"'] path"));for(var n=0;n=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[o])}else"mouseout"===t.type&&r("remove")}},{key:"getActiveConfigSeriesIndex",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"asc",i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(e,a){var s=!1;return t&&(s="bar"===i.config.series[a].type||"column"===i.config.series[a].type),e.data&&e.data.length>0&&!s?a:-1})),r="asc"===e?0:s.length-1;"asc"===e?r=0;"asc"===e?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:"getPreviousPaths",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute("data:realIndex")},o=0;o0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(e,"'] rect")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e("x")),y:parseFloat(e("y")),width:parseFloat(e("width")),height:parseFloat(e("height"))};a.push({rect:s,color:i[t].getAttribute("color")})},r=0;r0)for(var a=0;a0?t:[]}));return t}}]),t}(),Y=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e}return r(t,[{key:"initVariables",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/this.barCtx.seriesLen*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:"getPathFillColor",value:function(t,e,i,a){var s=this.w,r=new T(this.barCtx.ctx),o=null,n=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(o=a.color)}));return s.config.series[e].data[i]&&s.config.series[e].data[i].fillColor&&(o=s.config.series[e].data[i].fillColor),r.fillPath({seriesNumber:this.barCtx.barOptions.distributed?n:a,dataPointIndex:i,color:o,value:t[e][i]})}},{key:"getStrokeWidth",value:function(t,e,i){var a=0,s=this.w;return void 0===this.barCtx.series[t][e]||null===this.barCtx.series[t][e]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"barBackground",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new m(this.barCtx.ctx),c=new E(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(t){var e=t.barWidth,i=t.barXPosition,a=t.yRatio,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.series,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u={barWidth:e,strokeWidth:o,yRatio:a,barXPosition:i,y1:s,y2:r},p=this.getRoundedBars(d,u,n,h,c),f=i,x=i+e,b=g.move(f,s),v=g.move(f,s),y=g.line(x-o,s);return d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1)),b=b+g.line(f,p.y2)+p.pathWithRadius+g.line(x-o,p.y2)+y+y+"z",v=v+g.line(f,s)+y+y+y+y+y+g.line(f,s),d.config.chart.stacked&&(this.barCtx.yArrj.push(p.y2),this.barCtx.yArrjF.push(Math.abs(s-p.y2)),this.barCtx.yArrjVal.push(this.barCtx.series[h][c])),{pathTo:b,pathFrom:v}}},{key:"getBarpaths",value:function(t){var e=t.barYPosition,i=t.barHeight,a=t.x1,s=t.x2,r=t.strokeWidth,o=t.series,n=t.realIndex,l=t.i,h=t.j,c=t.w,d=new m(this.barCtx.ctx);(r=Array.isArray(r)?r[n]:r)||(r=0);var g={barHeight:i,strokeWidth:r,barYPosition:e,x2:s,x1:a},u=this.getRoundedBars(c,g,o,l,h),p=d.move(a,e),f=d.move(a,e);c.globals.previousPaths.length>0&&(f=this.barCtx.getPreviousPath(n,h,!1));var x=e,b=e+i,v=d.line(a,b-r);return p=p+d.line(u.x2,x)+u.pathWithRadius+d.line(u.x2,b-r)+v+v+"z",f=f+d.line(a,x)+v+v+v+v+v+d.line(a,x),c.config.chart.stacked&&(this.barCtx.xArrj.push(u.x2),this.barCtx.xArrjF.push(Math.abs(a-u.x2)),this.barCtx.xArrjVal.push(this.barCtx.series[l][h])),{pathTo:p,pathFrom:f}}},{key:"getRoundedBars",value:function(t,e,i,a,s){var r=new m(this.barCtx.ctx),o=0,n=t.config.plotOptions.bar.borderRadius,l=Array.isArray(n);l?o=n[a>n.length-1?n.length-1:a]:o=n;if(t.config.chart.stacked&&i.length>1&&a!==this.barCtx.radiusOnSeriesNumber&&!l&&(o=0),this.barCtx.isHorizontal){var h="",c=e.x2;if(Math.abs(e.x1-e.x2)0:i[a][s]<0;d&&(o*=-1),c-=o,h=r.quadraticCurve(c+o,e.barYPosition,c+o,e.barYPosition+(d?-1*o:o))+r.line(c+o,e.barYPosition+e.barHeight-e.strokeWidth-(d?-1*o:o))+r.quadraticCurve(c+o,e.barYPosition+e.barHeight-e.strokeWidth,c,e.barYPosition+e.barHeight-e.strokeWidth)}return{pathWithRadius:h,x2:c}}var g="",u=e.y2;if(Math.abs(e.y1-e.y2)=0;o--)this.barCtx.zeroSerieses.indexOf(o)>-1&&o===this.radiusOnSeriesNumber&&(this.barCtx.radiusOnSeriesNumber-=1);for(var n=e.length-1;n>=0;n--)i.globals.collapsedSeriesIndices.indexOf(this.barCtx.radiusOnSeriesNumber)>-1&&(this.barCtx.radiusOnSeriesNumber-=1)}},{key:"getXForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),a}},{key:"getYForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),a}},{key:"getGoalValues",value:function(t,e,i,a,s){var r=this,n=this.w,l=[];return n.globals.seriesGoals[a]&&n.globals.seriesGoals[a][s]&&Array.isArray(n.globals.seriesGoals[a][s])&&n.globals.seriesGoals[a][s].forEach((function(a){var s;l.push((o(s={},t,"x"===t?r.getXForValue(a.value,e,!1):r.getYForValue(a.value,i,!1)),o(s,"attrs",a),s))})),l}},{key:"drawGoalLine",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new m(this.barCtx.ctx),l=n.group({className:"apexcharts-bar-goals-groups"}),h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)})):Array.isArray(s)&&s.forEach((function(t){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)})),l}}]),t}(),F=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRangeBar.length&&this.isHorizontal,this.xyRatios=i,null!==this.xyRatios&&(this.xRatio=i.xRatio,this.initialXRatio=i.initialXRatio,this.yRatio=i.yRatio,this.invertedXRatio=i.invertedXRatio,this.invertedYRatio=i.invertedYRatio,this.baseLineY=i.baseLineY,this.baseLineInvertedY=i.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0,this.barHelpers=new Y(this)}return r(t,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx),r=new y(this.ctx,a);t=r.getLogSeries(t),this.series=t,this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var o=s.group({class:"apexcharts-bar-series apexcharts-plot-series"});a.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.");for(var n=0,l=0;n0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();p=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||b.push(u+A/2);for(var C=s.group({class:"apexcharts-datalabels","data:realIndex":v}),L=s.group({class:"apexcharts-bar-goals-markers",style:"pointer-events: none"}),P=0;P0&&b.push(u+A/2),f.push(p);var X=this.barHelpers.getPathFillColor(t,n,P,v);this.renderSeries({realIndex:v,pathFill:X,j:P,i:n,pathFrom:M.pathFrom,pathTo:M.pathTo,strokeWidth:T,elSeries:w,x:u,y:p,series:t,barHeight:k,barWidth:A,elDataLabelsWrap:C,elGoalsMarkers:L,visibleSeries:this.visibleI,type:"bar"})}a.globals.seriesXvalues[v]=b,a.globals.seriesYvalues[v]=f,o.add(w)}return o}},{key:"renderSeries",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.pathFrom,n=t.pathTo,l=t.strokeWidth,h=t.elSeries,c=t.x,d=t.y,g=t.y1,u=t.y2,p=t.series,f=t.barHeight,x=t.barWidth,b=t.barYPosition,y=t.elDataLabelsWrap,w=t.elGoalsMarkers,k=t.visibleSeries,A=t.type,S=this.w,C=new m(this.ctx);a||(a=this.barOptions.distributed?S.globals.stroke.colors[s]:S.globals.stroke.colors[e]),S.config.series[r].data[s]&&S.config.series[r].data[s].strokeColor&&(a=S.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var L=s/S.config.chart.animations.animateGradually.delay*(S.config.chart.animations.speed/S.globals.dataPoints)/2.4,P=C.renderPaths({i:r,j:s,realIndex:e,pathFrom:o,pathTo:n,stroke:a,strokeWidth:l,strokeLineCap:S.config.stroke.lineCap,fill:i,animationDelay:L,initialSpeed:S.config.chart.animations.speed,dataChangeSpeed:S.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(A,"-area")});P.attr("clip-path","url(#gridRectMask".concat(S.globals.cuid,")"));var T=S.config.forecastDataPoints;T.count>0&&s>=S.globals.dataPoints-T.count&&(P.node.setAttribute("stroke-dasharray",T.dashArray),P.node.setAttribute("stroke-width",T.strokeWidth),P.node.setAttribute("fill-opacity",T.fillOpacity)),void 0!==g&&void 0!==u&&(P.attr("data-range-y1",g),P.attr("data-range-y2",u)),new v(this.ctx).setSelectionFilter(P,e,s),h.add(P);var M=new X(this).handleBarDataLabels({x:c,y:d,y1:g,y2:u,i:r,j:s,series:p,realIndex:e,barHeight:f,barWidth:x,barYPosition:b,renderedPath:P,visibleSeries:k});return null!==M&&y.add(M),h.add(y),w&&h.add(w),h}},{key:"drawBarPaths",value:function(t){var e=t.indexes,i=t.barHeight,a=t.strokeWidth,s=t.zeroW,r=t.x,o=t.y,n=t.yDivision,l=t.elSeries,h=this.w,c=e.i,d=e.j;h.globals.isXNumeric&&(o=(h.globals.seriesX[c][d]-h.globals.minX)/this.invertedXRatio-i);var g=o+i*this.visibleI;r=this.barHelpers.getXForValue(this.series[c][d],s);var u=this.barHelpers.getBarpaths({barYPosition:g,barHeight:i,x1:s,x2:r,strokeWidth:a,series:this.series,realIndex:e.realIndex,i:c,j:d,w:h});return h.globals.isXNumeric||(o+=n),this.barHelpers.barBackground({j:d,i:c,y1:g-i*this.visibleI,y2:i*this.seriesLen,elSeries:l}),{pathTo:u.pathTo,pathFrom:u.pathFrom,x:r,y:o,goalX:this.barHelpers.getGoalValues("x",s,null,c,d),barYPosition:g}}},{key:"drawColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.strokeWidth,l=t.elSeries,h=this.w,c=e.realIndex,d=e.i,g=e.j,u=e.bc;if(h.globals.isXNumeric){var p=c;h.globals.seriesX[c].length||(p=h.globals.maxValsInArrayIndex),i=(h.globals.seriesX[p][g]-h.globals.minX)/this.xRatio-r*this.seriesLen/2}var f=i+r*this.visibleI;a=this.barHelpers.getYForValue(this.series[d][g],o);var x=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:r,y1:o,y2:a,strokeWidth:n,series:this.series,realIndex:e.realIndex,i:d,j:g,w:h});return h.globals.isXNumeric||(i+=s),this.barHelpers.barBackground({bc:u,j:g,i:d,x1:f-n/2-r*this.visibleI,x2:r*this.seriesLen+n/2,elSeries:l}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x:i,y:a,goalY:this.barHelpers.getGoalValues("y",null,o,d,g),barXPosition:f}}},{key:"getPreviousPath",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),R=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return r(t,[{key:"isValidDate",value:function(t){return!isNaN(this.parseDate(t))}},{key:"getTimeStamp",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:"getDate",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:"parseDate",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "));return i=this.getTimeStamp(i)}},{key:"parseDateWithTimezone",value:function(t){return Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "))}},{key:"formatDate",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=["\0"].concat(u(i.months)),r=["\x01"].concat(u(i.shortMonths)),o=["\x02"].concat(u(i.days)),n=["\x03"].concat(u(i.shortDays));function l(t,e){var i=t+"";for(e=e||2;i.length12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+l(g))).replace(/(^|[^\\])H/g,"$1"+g)).replace(/(^|[^\\])hh+/g,"$1"+l(p))).replace(/(^|[^\\])h/g,"$1"+p);var f=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+l(f))).replace(/(^|[^\\])m/g,"$1"+f);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+l(x))).replace(/(^|[^\\])s/g,"$1"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\])ff/g,"$1"+l(b)),b=Math.round(b/10);var v=g<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+b)).replace(/(^|[^\\])TT+/g,"$1"+v)).replace(/(^|[^\\])T/g,"$1"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+m)).replace(/(^|[^\\])t/g,"$1"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?"Z":y>0?"+":"-";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+":"+l(k)}e=e.replace(/(^|[^\\])K/g,"$1"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],"g"),o[A])).replace(new RegExp(n[0],"g"),n[A])).replace(new RegExp(s[0],"g"),s[c])).replace(new RegExp(r[0],"g"),r[c])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),n=this.formatDate(r,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:"isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"calculcateLastDaysOfMonth",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:"determineDaysOfYear",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:"determineRemainingDaysOfYear",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(t,e){var i=30;switch(t=x.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),H=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=a.globals.seriesRangeStart,this.seriesRangeEnd=a.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var r=s.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),o=0;o0&&(this.visibleI=this.visibleI+1);var f=0,b=0;this.yRatio.length>1&&(this.yaxisIndex=u);var v=this.barHelpers.initialPositions();d=v.y,h=v.zeroW,c=v.x,b=v.barWidth,n=v.xDivision,l=v.zeroH;for(var y=s.group({class:"apexcharts-datalabels","data:realIndex":u}),w=s.group({class:"apexcharts-rangebar-goals-markers",style:"pointer-events: none"}),k=0;k0}));return a=l.config.plotOptions.bar.rangeBarGroupRows?s+o*g:s+r*this.visibleI+o*g,u>-1&&!l.config.plotOptions.bar.rangeBarOverlap&&(h=l.globals.seriesRangeBar[e][u].overlaps).indexOf(c)>-1&&(a=(r=n.barHeight/h.length)*this.visibleI+o*(100-parseInt(this.barOptions.barHeight,10))/100/2+r*(this.visibleI+h.indexOf(c))+o*g),{barYPosition:a,barHeight:r}}},{key:"drawRangeColumnPaths",value:function(t){var e=t.indexes,i=t.x;t.strokeWidth;var a=t.xDivision,s=t.barWidth,r=t.zeroH,o=this.w,n=e.i,l=e.j,h=this.yRatio[this.yaxisIndex],c=e.realIndex,d=this.getRangeValue(c,l),g=Math.min(d.start,d.end),u=Math.max(d.start,d.end);o.globals.isXNumeric&&(i=(o.globals.seriesX[n][l]-o.globals.minX)/this.xRatio-s/2);var p=i+s*this.visibleI;void 0===this.series[n][l]||null===this.series[n][l]?g=r:(g=r-g/h,u=r-u/h);var f=Math.abs(u-g),x=this.barHelpers.getColumnPaths({barXPosition:p,barWidth:s,y1:g,y2:u,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:c,j:l,w:o});return o.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:f,x:i,y:u,goalY:this.barHelpers.getGoalValues("y",null,r,n,l),barXPosition:p}}},{key:"drawRangeBarPaths",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,goalX:this.barHelpers.getGoalValues("x",l,null,e.realIndex,e.j),y:i}}},{key:"getRangeValue",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}},{key:"getTooltipValues",value:function(t){var e=t.ctx,i=t.seriesIndex,a=t.dataPointIndex,s=t.y1,r=t.y2,o=t.w,n=o.globals.seriesRangeStart[i][a],l=o.globals.seriesRangeEnd[i][a],h=o.globals.labels[a],c=o.config.series[i].name?o.config.series[i].name:"",d=o.config.tooltip.y.formatter,g=o.config.tooltip.y.title.formatter,u={w:o,seriesIndex:i,dataPointIndex:a,start:n,end:l};"function"==typeof g&&(c=g(c,u)),Number.isFinite(s)&&Number.isFinite(r)&&(n=s,l=r,o.config.series[i].data[a].x&&(h=o.config.series[i].data[a].x+":"),"function"==typeof d&&(h=d(h,u)));var p="",f="",x=o.globals.colors[i];if(void 0===o.config.tooltip.x.formatter)if("datetime"===o.config.xaxis.type){var b=new R(e);p=b.formatDate(b.getDate(n),o.config.tooltip.x.format),f=b.formatDate(b.getDate(l),o.config.tooltip.x.format)}else p=n,f=l;else p=o.config.tooltip.x.formatter(n),f=o.config.tooltip.x.formatter(l);return{start:n,end:l,startVal:p,endVal:f,ylabel:h,color:x,seriesName:c}}},{key:"buildCustomTooltipHTML",value:function(t){var e=t.color,i=t.seriesName;return'
    '+(i||"")+'
    '+t.ylabel+' '+t.start+' - '+t.end+"
    "}}]),s}(F),D=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(t){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0;return x.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"candlestick",value:function(){var t=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:5,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-r},background:{enabled:!1},style:{colors:["#fff"]}},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var e=new H(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t):function(t){var e=new H(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"area",value:function(){return{stroke:{width:4},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"brush",value:function(t){return x.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),"bar"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t}),t}},{key:"convertCatToNumeric",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:"convertCatToNumericXaxis",value:function(t,e,i){t.xaxis.type="numeric",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return x.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return x.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||"dataPoints",t}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"polarArea",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:"_getBoxTooltip",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
    \n '.concat(t.config.series[e].name?t.config.series[e].name:"series-"+(e+1),": ").concat(t.globals.series[e][i],"\n
    "):'
    ')+"
    ".concat(a[0],': ')+r+"
    "+"
    ".concat(a[1],': ')+o+"
    "+(n?"
    ".concat(a[2],': ')+n+"
    ":"")+"
    ".concat(a[3],': ')+l+"
    "+"
    ".concat(a[4],': ')+h+"
    "}}]),t}(),N=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(t){var e=t.responsiveOverride,a=this.opts,s=new L,r=new D(a);this.chartType=a.chart.type,"histogram"===this.chartType&&(a.chart.type="bar",a=x.extend({plotOptions:{bar:{columnWidth:"99.99%"}}},a)),a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&"object"===i(a)){var l={};l=-1!==["line","area","bar","candlestick","boxPlot","rangeBar","histogram","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),a.chart.brush&&a.chart.brush.enabled&&(l=r.brush(l)),a.chart.stacked&&"100%"===a.chart.stackType&&(a=r.stacked100(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},e||(a.xaxis.convertedCatToNumeric=!1),((a=this.checkForCatToNumericXAxis(this.chartType,l,a)).chart.sparkline&&a.chart.sparkline.enabled||window.Apex.chart&&window.Apex.chart.sparkline&&window.Apex.chart.sparkline.enabled)&&(l=r.sparkline(l)),n=x.extend(o,l)}var h=x.extend(n,window.Apex);return o=x.extend(h,a),o=this.handleUserInputErrors(o)}},{key:"checkForCatToNumericXAxis",value:function(t,e,i){var a=new D(i),s=("bar"===t||"boxPlot"===t)&&i.plotOptions&&i.plotOptions.bar&&i.plotOptions.bar.horizontal,r="pie"===t||"polarArea"===t||"donut"===t||"radar"===t||"radialBar"===t||"heatmap"===t,o="datetime"!==i.xaxis.type&&"numeric"!==i.xaxis.type,n=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return s||r||!o||"between"===n||(i=a.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(t,e){var i=new L;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=x.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[x.extend(i.yAxis,t.yaxis)]:t.yaxis=x.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name="series-".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=x.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both."),t}},{key:"extendAnnotations",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:"extendYAxisAnnotations",value:function(t){var e=new L;return t.annotations.yaxis=x.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:"extendXAxisAnnotations",value:function(t){var e=new L;return t.annotations.xaxis=x.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:"extendPointAnnotations",value:function(t){var e=new L;return t.annotations.points=x.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:"checkForDarkTheme",value:function(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.chart.background||(t.chart.background="#424242"),t.theme.palette||(t.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(e.chart.type," chart is not supported.")),e.yaxis[0].reversed=!1),e}}]),t}(),O=function(){function t(){a(this,t)}return r(t,[{key:"initGlobalVars",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRangeBar=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasGroups=!1,t.groups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.xaxisLabelsCount=0,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:"globalVars",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:"init",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=x.extend({},t),e.initialSeries=x.clone(t.series),e.lastXAxis=x.clone(e.initialConfig.xaxis),e.lastYAxis=x.clone(e.initialConfig.yaxis),e}}]),t}(),W=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(){var t=new N(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new O).init(t)}}}]),t}(),B=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return r(t,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var t=this.w.config.series.slice(),e=new E(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new E(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s="boxPlot"===i.chart.type||"boxPlot"===i.series[e].type,r=0;r=5?this.twoDSeries.push(x.parseNumber(t[e].data[r][4])):this.twoDSeries.push(x.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),"datetime"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new R(i),o=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isRangeBar="rangeBar"===a.chart.type&&s.isBarHorizontal,s.hasGroups="category"===a.xaxis.type&&void 0!==a.xaxis.group&&void 0!==a.xaxis.group.groups&&a.xaxis.group.groups.length>0,s.hasGroups&&(s.groups=a.xaxis.group.groups);for(var n=function(){for(var t=0;t0&&(this.twoDSeriesX=o,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var h=t[l].data.map((function(t){return x.parseNumber(t)}));s.series.push(h)}s.seriesZ.push(this.threeDSeries),void 0!==t[l].name?s.seriesNames.push(t[l].name):s.seriesNames.push("series-"+parseInt(l+1,10)),void 0!==t[l].color?s.seriesColors.push(t[l].color):s.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRangeBar.length&&(i.seriesRangeBar.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=i.labels.filter((function(t,e,i){return i.indexOf(t)===e}))),e.xaxis.convertedCatToNumeric)new D(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:"_generateExternalLabels",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},"function"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,"function"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),G=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getLabel",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"12px",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?"":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new V(this.ctx),p=l;o&&(h=u.xLabelFormat(c,l,p,{i:a,dateFormatter:new R(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new R(this.ctx).formatDate,w:n})));var f=function(t){var i=null;return e.forEach((function(t){"month"===t.unit?i="year":"day"===t.unit?i="month":"hour"===t.unit?i="day":"minute"===t.unit&&(i="hour")})),i===t};e.length>0?(g=f(e[a].unit),i=e[a].position,h=e[a].value):"datetime"===n.config.xaxis.type&&void 0===d&&(h=""),void 0===h&&(h=""),h=Array.isArray(h)?h:h.toString();var x=new m(this.ctx),b={};b=n.globals.rotateXLabels&&o?x.getTextRects(h,parseInt(r,10),null,"rotate(".concat(n.config.xaxis.labels.rotate," 0 0)"),!1):x.getTextRects(h,parseInt(r,10));var v=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(0===h.indexOf("NaN")||0===h.toLowerCase().indexOf("invalid")||h.toLowerCase().indexOf("infinity")>=0||s.indexOf(h)>=0&&v)&&(h=""),{x:i,text:h,textRect:b,isBold:g}}},{key:"checkLabelBasedOnTickamount",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return"dataPoints"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=""),e}},{key:"checkForOverflowingLabels",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),"heatmap"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),j=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"scaleSvgNode",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,"width")),a=parseFloat(t.getAttributeNS(null,"height"));t.setAttributeNS(null,"width",i*e),t.setAttributeNS(null,"height",a*e),t.setAttributeNS(null,"viewBox","0 0 "+i+" "+a)}},{key:"fixSvgStringForIe11",value:function(t){if(!x.isIE11())return t.replace(/ /g," ");var e=0,i=t.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g,(function(t){return 2===++e?'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"':t}));return i=(i=i.replace(/xmlns:NS\d+=""/g,"")).replace(/NS\d+:(\w+:\w+=")/g,"$1")}},{key:"getSvgString",value:function(t){var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:"cleanup",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=t.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,(function(t){t.setAttribute("width",0)})),e&&e[0]&&(e[0].setAttribute("x",-500),e[0].setAttribute("x1",-500),e[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:"image/svg+xml;charset=utf-8"});return URL.createObjectURL(e)}},{key:"dataURI",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement("canvas");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o="transparent"===a.config.chart.background?"#fff":a.config.chart.background,n=r.getContext("2d");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&x.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d="data:image/svg+xml,"+encodeURIComponent(l),g=new Image;g.crossOrigin="anonymous",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL("image/png");i({imgURI:e})}},g.src=d}}))}},{key:"exportToSVG",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,".svg")}},{key:"exportToPng",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+".png"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,".png")}))}},{key:"exportToCSV",value:function(t){var e=this,i=t.series,a=t.columnDelimiter,s=t.lineDelimiter,r=void 0===s?"\n":s,o=this.w,n=[],l=[],h="",c=new B(this.ctx),d=new G(this.ctx),g=function(t){var i="";if(o.globals.axisCharts){if("category"===o.config.xaxis.type||o.config.xaxis.convertedCatToNumeric)if(o.globals.isBarHorizontal){var s=o.globals.yLabelFormatters[0],r=new E(e.ctx).getActiveConfigSeriesIndex();i=s(o.globals.labels[t],{seriesIndex:r,dataPointIndex:t,w:o})}else i=d.getLabel(o.globals.labels,o.globals.timescaleLabels,0,t).text;"datetime"===o.config.xaxis.type&&(o.config.xaxis.categories.length?i=o.config.xaxis.categories[t]:o.config.labels.length&&(i=o.config.labels[t]))}else i=o.config.labels[t];return Array.isArray(i)&&(i=i.join(" ")),x.isNumber(i)?i:i.split(a).join("")};n.push(o.config.chart.toolbar.export.csv.headerCategory),i.map((function(t,e){var i=t.name?t.name:"series-".concat(e);o.globals.axisCharts&&n.push(i.split(a).join("")?i.split(a).join(""):"series-".concat(e))})),o.globals.axisCharts||(n.push(o.config.chart.toolbar.export.csv.headerValue),l.push(n.join(a))),i.map((function(t,e){o.globals.axisCharts?function(t,e){if(n.length&&0===e&&l.push(n.join(a)),t.data&&t.data.length)for(var s=0;s=10?o.config.chart.toolbar.export.csv.dateFormatter(r):x.isNumber(r)?r:r.split(a).join("")));for(var h=0;h0&&!i.globals.isBarHorizontal&&(this.xaxisLabels=i.globals.timescaleLabels.slice()),i.config.xaxis.overwriteCategories&&(this.xaxisLabels=i.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===i.config.xaxis.position?this.offY=0:this.offY=i.globals.gridHeight+1,this.offY=this.offY+i.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===i.config.chart.type&&i.config.plotOptions.bar.horizontal,this.xaxisFontSize=i.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=i.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=i.config.xaxis.labels.style.colors,this.xaxisBorderWidth=i.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=i.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=i.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=i.config.xaxis.axisBorder.height,this.yaxis=i.config.yaxis[0]}return r(t,[{key:"drawXaxis",value:function(){var t=this.w,e=new m(this.ctx),i=e.group({class:"apexcharts-xaxis",transform:"translate(".concat(t.config.xaxis.offsetX,", ").concat(t.config.xaxis.offsetY,")")}),a=e.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,p=l.xaxisForeColors||this.xaxisForeColors,f=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m="category"===d.config.xaxis.type?d.globals.dataPoints:v;if(s){var y=m>1?m-1:m;o=d.globals.gridWidth/y,b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&"dataPoints"!==d.config.xaxis.tickAmount&&"datetime"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(t&&y.text&&d.globals.xaxisLabelsCount++,d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-("top"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:"middle",fontWeight:y.isBold?600:f,fontSize:g,fontFamily:u,foreColor:Array.isArray(p)?t&&d.config.xaxis.convertedCatToNumeric?p[d.globals.minX+s-1]:p[s]:p,isPlainText:!1,cssClass:(t?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+x});if(i.add(k),t){var A=document.createElementNS(d.globals.SVGNS,"title");A.textContent=Array.isArray(y.text)?y.text.join(" "):y.text,k.node.appendChild(A),""!==y.text&&(h.push(y.text),c.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,"top"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new m(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}return r(t,[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new m(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new m(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elForecastMask.setAttribute("id","forecastMask".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elNonForecastMask.setAttribute("id","nonForecastMask".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;("bar"===r||"rangeBar"===r||"candlestick"===r||"boxPlot"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,"#fff");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector("defs");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||"radar"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({x1:i,y1:a,x2:s,y2:r,parent:n});var h=0;if(l.globals.hasGroups&&(void 0===l.config.xaxis.tickAmount||"dataPoints"===l.config.xaxis.tickAmount)&&"between"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&(a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,xAxisTickWidth:t.globals.gridWidth/i}}},{key:"drawGridBands",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:"column"}),h+=i.globals.gridWidth/l}}]),t}(),q=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"niceScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if("dataPoints"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!x.isNumber(t)&&!x.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE){t=0,e=i;var n=this.linearScale(t,e,i);return n}t>e?(console.warn("axis.min cannot be greater than axis.max"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var l=[];o<1&&s&&("candlestick"===r.config.chart.type||"candlestick"===r.config.series[a].type||"boxPlot"===r.config.chart.type||"boxPlot"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var h=i+1;h<2?h=2:h>2&&(h-=2);var c=o/h,d=Math.floor(x.log10(c)),g=Math.pow(10,d),u=Math.round(c/g);u<1&&(u=1);var p=u*g,f=p*Math.floor(t/p),b=p*Math.ceil(e/p),v=f;if(s&&o>2){for(;l.push(v),!((v+=p)>b););return{result:l,niceMin:l[0],niceMax:l[l.length-1]}}var m=t;(l=[]).push(m);for(var y=Math.abs(e-t)/i,w=0;w<=i;w++)m+=y,l.push(m);return l[l.length-2]>=e&&l.pop(),{result:l,niceMin:l[0],niceMax:l[l.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);"dataPoints"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:"logarithmicScale",value:function(t,e,i){for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i))+1,r=0;r5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,r.logBase);else if(i!==-Number.MAX_VALUE&&x.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:"setXScale",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&x.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:"setMultipleYScales",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:"sameScaleInMultipleAxes",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o="function"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n="function"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:"autoScaleY",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis is not supported in a multi-yaxis chart."),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var p=o[n];r?(p=u[n],h=c=p,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),rd&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),Z=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.scales=new q(e)}return r(t,[{key:"init",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:"getMinYMaxY",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;"candlestick"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):"boxPlot"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;dh[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return"rangeBar"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),"bar"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){["min","max"].forEach((function(i){void 0!==e.xaxis[i]&&"number"==typeof e.xaxis[i]&&("min"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:"setXRange",value:function(){var t=this.w.globals,e=this.w.config,i="numeric"===e.xaxis.type||"datetime"===e.xaxis.type||"category"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;et.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):"dataPoints"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:"_setStackedMinMax",value:function(){var t=this.w.globals,e=[],i=[];if(t.series.length)for(var a=0;a0?s=s+parseFloat(t.series[o][a])+1e-4:r+=parseFloat(t.series[o][a])),o===t.series.length-1&&(e.push(s),i.push(r));for(var n=0;n=0;b--)x(b);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:"apexcharts-yaxis-title"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:"end",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g=0;d?g++:g--){var u=h[g];u=l(u,g,e);var p=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var f=this.axesUtils.getLabel(h,c,p,g,this.drawnLabels,this.xaxisFontSize);p=f.x,u=f.text,this.drawnLabels.push(f.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=""),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u="")}var x=i.drawText({x:p,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,"title");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(t){var e=this.w,i=new m(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;"bar"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);t.add(r)}}},{key:"inversedYAxisTitleText",value:function(t){var e=this.w,i=new m(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new m(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute("x",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute("transform","rotate(".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(e=x.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));r=x.listToArray(r);var o=s.getBoundingClientRect();"left"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","start")})),a.opposite||s.setAttribute("transform","translate(-".concat(o.width,", 0)"))):"center"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","middle")})),s.setAttribute("transform","translate(".concat(o.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute("text-anchor","end")})),a.opposite&&s.setAttribute("transform","translate(".concat(o.width,", 0)")))}}))}}]),t}(),J=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.documentEvent=x.bind(this.documentEvent,this)}return r(t,[{key:"addEventListener",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:"removeEventListener",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:"fireEvent",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=x.extend(C,i);this.w.globals.locale=a.options}}]),t}(),K=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawAxis",value:function(t,e){var i,a,s=this.w.globals,r=this.w.config,o=new _(this.ctx),n=new $(this.ctx);s.axisCharts&&"radar"!==t&&(s.isBarHorizontal?(a=n.drawYaxisInversed(0),i=o.drawXaxisInversed(0),s.dom.elGraphical.add(i),s.dom.elGraphical.add(a)):(i=o.drawXaxis(),s.dom.elGraphical.add(i),r.yaxis.map((function(t,e){-1===s.ignoreYAxisIndexes.indexOf(e)&&(a=n.drawYaxis(e),s.dom.Paper.add(a))}))))}}]),t}(),tt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawXCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=new v(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,p=s.blur,f=s.color,b=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===r&&(y=e.drawGradient("vertical",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!x.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!x.isNumber(A)||A<0)&&(A=0),w.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:p,color:f,opacity:b})),t.globals.dom.elGraphical.add(w)}}},{key:"drawYCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),t.globals.dom.elGraphical.add(r)}}]),t}(),et=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkResponsiveConfig",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new N({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=x.extend(n,t),t=x.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l0&&"function"==typeof e.config.colors[0]&&(e.globals.colors=e.config.series.map((function(i,a){var s=e.config.colors[a];return s||(s=e.config.colors[0]),"function"==typeof s?(t.isColorFn=!0,s({value:e.globals.axisCharts?e.globals.series[a][0]?e.globals.series[a][0]:0:e.globals.series[a],seriesIndex:a,dataPointIndex:a,w:e})):s})))),e.globals.seriesColors.map((function(t,i){t&&(e.globals.colors[i]=t)})),e.config.theme.monochrome.enabled){var a=[],s=e.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(s=e.globals.series[0].length*e.globals.series.length);for(var r=e.config.theme.monochrome.color,o=1/(s/e.config.theme.monochrome.shadeIntensity),n=e.config.theme.monochrome.shadeTo,l=0,h=0;h2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getLargestStringFromMultiArr",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,u(a));i=e[a.indexOf(s)]}return i}}]),t}(),rt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"getxAxisLabelsCoords",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==e.config.legend.position&&"right"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=x.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new V(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new R(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new R(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||""===String(r).trim())&&(o=r="1");var h=new m(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var t,e=this.w;if(!e.globals.hasGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=x.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new m(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e}),0);return 1.05*(t=new m(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){(function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)})(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c="right"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||"bar"!==s.chart.type&&"candlestick"!==s.chart.type&&"rangeBar"!==s.chart.type&&"boxPlot"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else"datetime"===r?e.dCtx.gridPad.rightString(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var p=e.globals.labels.slice();g=h(g=x.getLargestStringFromArr(p),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,p)}var f=new m(t.dCtx.ctx),b="rotate(".concat(r.labels.rotate," 0 0)"),v=f.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1),y=v;g!==u&&(y=f.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new m(t.dCtx.ctx),r="rotate(".concat(e.title.rotate," 0 0)"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new G(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),nt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"gridPadForColumnsInNumericAxis",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return"bar"===t||"rangeBar"===t||"candlestick"===t||"boxPlot"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:"gridPadFortitleSubtitle",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;["title","subtitle"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||"bottom"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w,a=new G(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new st(this),this.dimYAxis=new ot(this),this.dimXAxis=new rt(this),this.dimGrid=new nt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return r(t,[{key:"plotCoords",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&(e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=g(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;("radar"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||"treemap"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch("top"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case"bottom":i.translateY=c,d();break;case"top":i.translateY=this.lgRect.height+c,d();break;case"left":i.translateY=c,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case"right":i.translateY=c,i.translateX=l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new $(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s="pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case"bottom":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"top":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"left":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case"right":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(t,e,i){var a=this.w,s=a.globals.hasGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&"bottom"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),t}(),ht=function(){function t(e){a(this,t),this.w=e.w,this.lgCtx=e}return r(t,[{key:"getLegendStyles",value:function(){var t=document.createElement("style");t.setAttribute("type","text/css");var e=document.createTextNode("\t\n \t\n .apexcharts-legend {\t\n display: flex;\t\n overflow: auto;\t\n padding: 0 10px;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\t\n flex-wrap: wrap\t\n }\t\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n flex-direction: column;\t\n bottom: 0;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n justify-content: flex-start;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\t\n justify-content: center; \t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\t\n justify-content: flex-end;\t\n }\t\n .apexcharts-legend-series {\t\n cursor: pointer;\t\n line-height: normal;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\t\n display: flex;\t\n align-items: center;\t\n }\t\n .apexcharts-legend-text {\t\n position: relative;\t\n font-size: 14px;\t\n }\t\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n pointer-events: none;\t\n }\t\n .apexcharts-legend-marker {\t\n position: relative;\t\n display: inline-block;\t\n cursor: pointer;\t\n margin-right: 3px;\t\n border-style: solid;\n }\t\n \t\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\t\n display: inline-block;\t\n }\t\n .apexcharts-legend-series.apexcharts-no-click {\t\n cursor: auto;\t\n }\t\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n display: none !important;\t\n }\t\n .apexcharts-inactive-legend {\t\n opacity: 0.45;\t\n }");return t.appendChild(e),t}},{key:"getLegendBBox",value:function(){var t=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:"appendToForeignObject",value:function(){var t=this.w.globals;t.dom.elLegendForeign=document.createElementNS(t.SVGNS,"foreignObject");var e=t.dom.elLegendForeign;e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("width",t.svgWidth),e.setAttribute("height",t.svgHeight),t.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),e.appendChild(t.dom.elLegendWrap),e.appendChild(this.getLegendStyles()),t.dom.Paper.node.insertBefore(e,t.dom.elGraphical.node)}},{key:"toggleDataSeries",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||"radialBar"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t+1,"'] path")),n=a.config.chart.type;if("pie"===n||"polarArea"===n||"donut"===n){var l=a.config.plotOptions.pie.donut.labels;new m(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire("click")}}},{key:"hideSeries",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=x.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l0){for(var r=0;r-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),ct=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed="bar"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new ht(this)}return r(t,[{key:"init",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),x.isIE11()?document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"drawLegends",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if("heatmap"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+" - "+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h=o(a[l],{seriesIndex:l,w:e}),c=!1,d=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g0)for(var u=0;u0?l-10:0)+(h>0?h-10:0)}a.style.position="absolute",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=o+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px");["width","height"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+"px")}))}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.baseEl.querySelector(".apexcharts-legend").style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new lt(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;"bottom"===t.config.legend.position?r=-e.clwh/1.8:"top"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new E(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains("apexcharts-inactive-legend")&&i&&new E(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:"onLegendClick",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(t.target.getAttribute("rel"),10)-1,a="true"===t.target.getAttribute("data:collapsed"),s=this.w.config.chart.events.legendClick;"function"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;"function"==typeof r&&t.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),"treemap"!==e.config.chart.type&&"heatmap"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),dt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=i.globals.minX,this.maxX=i.globals.maxX}return r(t,[{key:"createToolbar",value:function(){var t=this,e=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=e.config.chart.toolbar.offsetY+"px",a.style.right=3-e.config.chart.toolbar.offsetX+"px",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\n \n \n\n'),o("zoomOut",this.elZoomOut,'\n \n \n\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:"zoom"===i?t.elZoom:t.elSelection,icon:"string"==typeof t.t[i]?t.t[i]:"zoom"===i?'\n \n \n \n':'\n \n \n',title:t.localeValues["zoom"===i?"selectionZoom":"selection"],class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(i,"-icon")})};n("zoom"),n("selection"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:"string"==typeof this.t.pan?this.t.pan:'\n \n \n \n \n \n \n \n',title:this.localeValues.pan,class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),o("reset",this.elZoomReset,'\n \n \n'),this.t.download&&r.push({el:this.elMenuIcon,icon:"string"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var l=0;l0&&e.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:"translate("+o+", "+l+")"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":h.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":h.config.chart.zoom.zoomedArea.stroke.opacity}),m.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,"fill-opacity":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,"stroke-width":h.config.chart.selection.stroke.width,"stroke-dasharray":h.config.chart.selection.stroke.dashArray,"stroke-opacity":h.config.chart.selection.stroke.opacity}),m.setAttrs(d.node,g))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g="x"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:"y"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging("resizing"),g}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;"resizing"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n("x"),y:n("y"),width:n("width"),height:n("height")};a.globals.selection=l,"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=x.clone(a.globals.initialConfig.yaxis),p=x.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),"xy"!==i&&"x"!==i||(p={min:h,max:c}),"xy"!==i&&"y"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var f=new q(s.ctx);u=f.autoScaleY(s.ctx,u,{xaxis:p})}if(o){var b=o.getBeforeZoomRange(p,u);b&&(p=b.xaxis?b.xaxis:p,u=b.yaxis?b.yaxis:u)}var v={xaxis:p};a.config.chart.group||(v.yaxis=u),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&o.zoomCallback(p,u)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:c},"xy"!==i&&"y"!==i||(y=x.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:"panDragging",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection="left":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection="right":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection="up":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection="down")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:"delayedPanScrolled",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;"left"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):"right"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:"panScrolled",value:function(t,e){var i=this.w,a=this.xyRatios,s=x.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),"left"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):"right"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new q(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:"updateScrolledChart",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(dt),ut=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return r(t,[{key:"getNearestValues",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):r.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):r.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var p=Math.round(g/h),f=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(p=Math.ceil(g/h),p-=1);var b=null,v=null,m=[],y=[];if(r.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),r.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);b=(v=this.closestInMultiArray(k,A,m,y)).index,p=v.j,null!==b&&(m=r.globals.seriesXvalues[b],p=(v=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===b?-1:b,(!p||p<1)&&(p=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=f:r.globals.capturedDataPointIndex=p,{capturedSeries:b,j:r.globals.isBarHorizontal?f:p,hoverX:g,hoverY:u}}},{key:"closestInMultiArray",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a0?e:-1})),s=0;s0)for(var a=0;a0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(i.attrs.name,"
    "),e+="
    ".concat(i.val,"
    ")})),v.innerHTML=t+"
    ",m.innerHTML=e+"
    "};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML="",m.innerHTML=""):y()}else v.innerHTML="",m.innerHTML="";null!==p&&(a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=l.config.tooltip.z.title,a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=void 0!==p?p:"");o&&f[0]&&(null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?f[0].parentNode.style.display="none":f[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:"toggleActiveInactiveSeries",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("apexcharts-active"),i.style.display=e.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",o="",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&"treemap"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var d=r;a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?r=new V(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new R(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o="function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(" "):l,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(o)?o.join(" "):o,zVal:n}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),ft=function(){function t(e){a(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return r(t,[{key:"moveXCrosshairs",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&m.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&m.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("apexcharts-active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid(),d=c.getBoundingClientRect();h=s.e.clientY+a.globals.translateY-d.top-o.ttHeight/2}else a.globals.isBarHorizontal||(o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY),h<0&&(h=0));isNaN(l)||(l+=a.globals.translateX,r.style.left=l+"px",r.style.top=h+"px")}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),r=0;r0&&(h.setAttribute("r",n),h.setAttribute("cx",i),h.setAttribute("cy",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:"moveDynamicPointsOnHover",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new E(this.ctx).getActiveConfigSeriesIndex(!0);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h0?(l[h]&&l[h].setAttribute("r",n),l[h]&&l[h].setAttribute("cy",d)):l[h]&&l[h].setAttribute("r",0)}}if(this.moveXCrosshairs(s),!i.fixedTooltip){var g=r||a.globals.gridHeight;this.moveTooltip(s,g,n)}}},{key:"moveStickyTooltipOverBars",value:function(t){var e=this.w,i=this.ttCtx,a=e.globals.columnSeries?e.globals.columnSeries.length:e.globals.series.length,s=a>=2&&a%2==0?Math.floor(a/2):Math.floor(a/2)+1;e.globals.isBarHorizontal&&(s=new E(this.ctx).getActiveConfigSeriesIndex(!1,"desc")+1);var r=e.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(s,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"']")),o=r?parseFloat(r.getAttribute("cx")):0,n=r?parseFloat(r.getAttribute("cy")):0,l=r?parseFloat(r.getAttribute("barWidth")):0,h=r?parseFloat(r.getAttribute("barHeight")):0,c=i.getElGrid().getBoundingClientRect(),d=r.classList.contains("apexcharts-candlestick-area")||r.classList.contains("apexcharts-boxPlot-area");if(e.globals.isXNumeric?(r&&!d&&(o-=a%2!=0?l/2:0),r&&d&&e.globals.comboCharts&&(o-=l/2)):e.globals.isBarHorizontal||(o=i.xAxisTicksPositions[t-1]+i.dataPointsDividedWidth/2,isNaN(o)&&(o=i.xAxisTicksPositions[t]-i.dataPointsDividedWidth/2)),e.globals.isBarHorizontal?(n>e.globals.gridHeight/2&&(n-=i.tooltipRect.ttHeight),(n=n+e.config.grid.padding.top+h/3)+h>e.globals.gridHeight&&(n=e.globals.gridHeight-h)):e.config.tooltip.followCursor?n=i.e.clientY-c.top-i.tooltipRect.ttHeight/2:n+i.tooltipRect.ttHeight+15>e.globals.gridHeight&&(n=e.globals.gridHeight),n<-10&&(n=-10),e.globals.isBarHorizontal||this.moveXCrosshairs(o),!i.fixedTooltip){var g=n||e.globals.gridHeight;this.moveTooltip(o,g)}}}]),t}(),xt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new ft(e)}return r(t,[{key:"drawDynamicPoints",value:function(){var t=this.w,e=new m(this.ctx),i=new M(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=u(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute("data:realIndex"))-parseFloat(e.getAttribute("data:realIndex"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute("cx"),o=e.getAttribute("cy");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if("radar"===s.config.chart.type){var n=this.ttCtx.getElGrid(),l=n.getBoundingClientRect();r=this.ttCtx.e.clientX-l.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),o=e.config.markers.hover.size,n=0;n=0?t[e].setAttribute("r",i):t[e].setAttribute("r",0)}}}]),t}(),bt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e}return r(t,[{key:"getAttr",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:"handleHeatTreeTooltip",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains("apexcharts-".concat(r,"-rect"))){var l=this.getAttr(e,"i"),h=this.getAttr(e,"j"),c=this.getAttr(e,"cx"),d=this.getAttr(e,"cy"),g=this.getAttr(e,"width"),u=this.getAttr(e,"height");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var p=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-p.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-p.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx"),10),c=parseInt(s.paths.getAttribute("cy"),10),d=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,l.intersect){var g=x.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),"mouseup"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)?c=r.globals.svgHeight-o.tooltipRect.ttHeight:c<0&&(c=0);var p=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),f=r.globals.isMultipleYAxis?r.config.yaxis[p]&&r.config.yaxis[p].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!f?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(f&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),!f||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),o.tooltipRect.ttHeight+c>r.globals.gridHeight?c=r.globals.gridHeight-o.tooltipRect.ttHeight+r.globals.translateY:(c=c+r.globals.translateY-o.tooltipRect.ttHeight/2)<0&&(c=0),n.style.left=h+r.globals.translateX+"px",n.style.top=c+"px")}},{key:"getBarTooltipXY",value:function(t){var e=t.e,i=t.opt,a=this.w,s=null,r=this.ttCtx,o=0,n=0,l=0,h=0,c=0,d=e.target.classList;if(d.contains("apexcharts-bar-area")||d.contains("apexcharts-candlestick-area")||d.contains("apexcharts-boxPlot-area")||d.contains("apexcharts-rangebar-area")){var g=e.target,u=g.getBoundingClientRect(),p=i.elGrid.getBoundingClientRect(),f=u.height;c=u.height;var x=u.width,b=parseInt(g.getAttribute("cx"),10),v=parseInt(g.getAttribute("cy"),10);h=parseFloat(g.getAttribute("barWidth"));var m="touchmove"===e.type?e.touches[0].clientX:e.clientX;s=parseInt(g.getAttribute("j"),10),o=parseInt(g.parentNode.getAttribute("rel"),10)-1;var y=g.getAttribute("data-range-y1"),w=g.getAttribute("data-range-y2");a.globals.comboCharts&&(o=parseInt(g.parentNode.getAttribute("data:realIndex"),10)),r.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:o,j:s,y1:y?parseInt(y,10):null,y2:w?parseInt(w,10):null,shared:!r.showOnIntersect&&a.config.tooltip.shared,e:e}),a.config.tooltip.followCursor?a.globals.isBarHorizontal?(n=m-p.left+15,l=v-r.dataPointsDividedHeight+f/2-r.tooltipRect.ttHeight/2):(n=a.globals.isXNumeric?b-x/2:b-r.dataPointsDividedWidth+x/2,l=e.clientY-p.top-r.tooltipRect.ttHeight/2-15):a.globals.isBarHorizontal?((n=b)0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),mt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.tConfig=i.config.tooltip,this.tooltipUtil=new ut(this),this.tooltipLabels=new pt(this),this.tooltipPosition=new ft(this),this.marker=new xt(this),this.intersect=new bt(this),this.axesTooltip=new vt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!i.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return r(t,[{key:"getElTooltip",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip"):null}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new _(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&"rangeBar"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement("div");o.classList.add("apexcharts-tooltip-series-group"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add("apexcharts-tooltip-series-group-hidden");var n=document.createElement("span");n.classList.add("apexcharts-tooltip-marker"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement("div");l.classList.add("apexcharts-tooltip-text"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,["y","goals","z"].forEach((function(t){var e=document.createElement("div");e.classList.add("apexcharts-tooltip-".concat(t,"-group"));var i=document.createElement("span");i.classList.add("apexcharts-tooltip-text-".concat(t,"-label")),e.appendChild(i);var a=document.createElement("span");a.classList.add("apexcharts-tooltip-text-".concat(t,"-value")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf("right")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf("bottom")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+"px",e.style.top=o+"px",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:"seriesHover",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:"seriesHoverByContext",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip();if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new E(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:"axisChartsTooltips",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n="touchmove"===a.type?a.touches[0].clientX:a.clientX,l="touchmove"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,lo.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if("mousemove"===a.type||"touchmove"===a.type||"mouseup"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add("apexcharts-active");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add("apexcharts-active"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if("heatmap"===r.config.chart.type||"treemap"===r.config.chart.type){var p=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=p.x,i=p.y,c.style.left=e+"px",c.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var f=0;fl.width?this.handleMouseOut(a):null!==n?this.handleStickyCapturedSeries(t,n,a,o):(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal)&&this.create(t,this,0,o,a.ttItems)}},{key:"handleStickyCapturedSeries",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);void 0!==s.globals.series[e][a]?this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1):this.tooltipUtil.isXoverlap(a)&&this.create(t,this,0,a,i.ttItems)}},{key:"deactivateHoverFilter",value:function(){for(var t=this.w,e=new m(this.ctx),i=t.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,o=this.w,n=e;"mouseup"===t.type&&this.markerClick(t,i,a),null===r&&(r=this.tConfig.shared);var l=this.tooltipUtil.hasMarkers(),h=this.tooltipUtil.getElBars();if(o.config.legend.tooltipHoverFormatter){var c=o.config.legend.tooltipHoverFormatter,d=Array.from(this.legendLabels);d.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}));for(var g=0;g0?n.marker.enlargePoints(a):n.tooltipPosition.moveDynamicPointsOnHover(a)),this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(h),this.barSeriesHeight>0)){var b=new m(this.ctx),v=o.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a);for(var y=0;y0&&(this.totalItems+=t[o].length);for(var n=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),l=0,h=0,c=function(r,o){var c=void 0,d=void 0,g=void 0,u=void 0,p=[],f=[],b=s.globals.comboCharts?i[r]:r;a.yRatio.length>1&&(a.yaxisIndex=b),a.isReversed=s.config.yaxis[a.yaxisIndex]&&s.config.yaxis[a.yaxisIndex].reversed;var v=a.graphics.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[b]),rel:r+1,"data:realIndex":b});a.ctx.series.addCollapsedClassToSeries(v,b);var m=a.graphics.group({class:"apexcharts-datalabels","data:realIndex":b}),y=0,w=0,k=a.initialPositions(l,h,c,d,g,u);h=k.y,y=k.barHeight,d=k.yDivision,u=k.zeroW,l=k.x,w=k.barWidth,c=k.xDivision,g=k.zeroH,a.yArrj=[],a.yArrjF=[],a.yArrjVal=[],a.xArrj=[],a.xArrjF=[],a.xArrjVal=[],1===a.prevY.length&&a.prevY[0].every((function(t){return isNaN(t)}))&&(a.prevY[0]=a.prevY[0].map((function(t){return g})),a.prevYF[0]=a.prevYF[0].map((function(t){return 0})));for(var A=0;A1?(i=l.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:n*parseInt(l.config.plotOptions.bar.columnWidth,10)/100,s=this.baseLineY[this.yaxisIndex]+(this.isReversed?l.globals.gridHeight:0)-(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=l.globals.padHorizontal+(i-n)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:o,barWidth:n,zeroH:s,zeroW:r}}},{key:"drawStackedBarPaths",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=n,g=i.i,u=i.j,p=0,f=0;f0){var x=r;this.prevXVal[g-1][u]<0?x=this.series[g][u]>=0?this.prevX[g-1][u]+p-2*(this.isReversed?p:0):this.prevX[g-1][u]:this.prevXVal[g-1][u]>=0&&(x=this.series[g][u]>=0?this.prevX[g-1][u]:this.prevX[g-1][u]-p+2*(this.isReversed?p:0)),e=x}else e=r;o=null===this.series[g][u]?e:e+this.series[g][u]/this.invertedYRatio-2*(this.isReversed?this.series[g][u]/this.invertedYRatio:0);var b=this.barHelpers.getBarpaths({barYPosition:d,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return this.barHelpers.barBackground({j:u,i:g,y1:d,y2:a,elSeries:h}),n+=l,{pathTo:b.pathTo,pathFrom:b.pathFrom,x:o,y:n}}},{key:"drawStackedColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH;t.strokeWidth;var n=t.elSeries,l=this.w,h=e.i,c=e.j,d=e.bc;if(l.globals.isXNumeric){var g=l.globals.seriesX[h][c];g||(g=0),i=(g-l.globals.minX)/this.xRatio-r/2}for(var u,p=i,f=0,x=0;x0&&!l.globals.isXNumeric||h>0&&l.globals.isXNumeric&&l.globals.seriesX[h-1][c]===l.globals.seriesX[h][c]){var b,v,m=Math.min(this.yRatio.length+1,h+1);if(void 0!==this.prevY[h-1])for(var y=1;y=0?v-f+2*(this.isReversed?f:0):v;break}if(this.prevYVal[h-w][c]>=0){b=this.series[h][c]>=0?v:v+f-2*(this.isReversed?f:0);break}}void 0===b&&(b=l.globals.gridHeight),u=this.prevYF[0].every((function(t){return 0===t}))&&this.prevYF.slice(1,h).every((function(t){return t.every((function(t){return isNaN(t)}))}))?l.globals.gridHeight-o:b}else u=l.globals.gridHeight-o;a=u-this.series[h][c]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[h][c]/this.yRatio[this.yaxisIndex]:0);var k=this.barHelpers.getColumnPaths({barXPosition:p,barWidth:r,y1:u,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,realIndex:e.realIndex,i:h,j:c,w:l});return this.barHelpers.barBackground({bc:d,j:c,i:h,x1:p,x2:r,elSeries:n}),i+=s,{pathTo:k.pathTo,pathFrom:k.pathFrom,x:l.globals.isXNumeric?i-s:i,y:a}}}]),s}(F),wt=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this,s=this.w,r=new m(this.ctx),o=new T(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=s.config.plotOptions.bar.horizontal;var n=new y(this.ctx,s);t=n.getLogSeries(t),this.series=t,this.yRatio=n.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var l=r.group({class:"apexcharts-".concat(s.config.chart.type,"-series apexcharts-plot-series")}),h=function(n){a.isBoxPlot="boxPlot"===s.config.chart.type||"boxPlot"===s.config.series[n].type;var h,c,d,g,u=void 0,p=void 0,f=[],b=[],v=s.globals.comboCharts?i[n]:n,m=r.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[v]),rel:n+1,"data:realIndex":v});a.ctx.series.addCollapsedClassToSeries(m,v),t[n].length>0&&(a.visibleI=a.visibleI+1);var y,w;a.yRatio.length>1&&(a.yaxisIndex=v);var k=a.barHelpers.initialPositions();p=k.y,y=k.barHeight,c=k.yDivision,g=k.zeroW,u=k.x,w=k.barWidth,h=k.xDivision,d=k.zeroH,b.push(u+w/2);for(var A=r.group({class:"apexcharts-datalabels","data:realIndex":v}),S=function(i){var r=a.barHelpers.getStrokeWidth(n,i,v),l=null,x={indexes:{i:n,j:i,realIndex:v},x:u,y:p,strokeWidth:r,elSeries:m};l=a.isHorizontal?a.drawHorizontalBoxPaths(e(e({},x),{},{yDivision:c,barHeight:y,zeroW:g})):a.drawVerticalBoxPaths(e(e({},x),{},{xDivision:h,barWidth:w,zeroH:d})),p=l.y,u=l.x,i>0&&b.push(u+w/2),f.push(p),l.pathTo.forEach((function(e,h){var c=!a.isBoxPlot&&a.candlestickOptions.wick.useFillColor?l.color[h]:s.globals.stroke.colors[n],d=o.fillPath({seriesNumber:v,dataPointIndex:i,color:l.color[h],value:t[n][i]});a.renderSeries({realIndex:v,pathFill:d,lineFill:c,j:i,i:n,pathFrom:l.pathFrom,pathTo:e,strokeWidth:r,elSeries:m,x:u,y:p,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:A,visibleSeries:a.visibleI,type:s.config.chart.type})}))},C=0;Cb.c&&(d=!1);var w=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/f,k=r-k/f,v=r-b.h/f,y=r-b.l/f,A=r-b.m/f);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+"z"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?p:d?[g]:[u]}}},{key:"drawHorizontalBoxPaths",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,p=this.getOHLCValue(u,c),f=r,x=r,b=Math.min(p.o,p.c),v=Math.max(p.o,p.c),y=p.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,f=r+p.h/g,x=r+p.l/g,y=r+p.m/g);var k=l.move(r,w),A=l.move(b,w+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,w)+l.line(b,w+s/2)+l.line(f,w+s/2)+l.line(f,w+s/2-s/4)+l.line(f,w+s/2+s/4)+l.line(f,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(b+o/2,w),l.move(y,w)+l.line(y,w+s)+l.line(v,w+s)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s-s/4)+l.line(x,w+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w)+l.line(y,w)+"z"],A+=l.move(b,w),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:w,color:d}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(F),kt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkColorRange",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:"getShadeColor",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,"treemap"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new x;return s.config.plotOptions[t].enableShades&&(l="dark"===this.w.config.theme.mode?x.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):x.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:"determineColor",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&"treemap"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,u(a.globals.series[e])),c=Math.max.apply(Math,u(a.globals.series[e]));r.distributed||"heatmap"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:"calculateDataLabels",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new m(this.ctx),c=new z(this.ctx),d=null;if(l.enabled){d=h.group({class:"apexcharts-data-labels"});var g=l.offsetX,u=l.offsetY,p=i+g,f=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:p,y:f,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:"addListeners",value:function(t){var e=new m(this.ctx);t.node.addEventListener("mouseenter",e.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",e.pathMouseLeave.bind(this,t)),t.node.addEventListener("mousedown",e.pathMouseDown.bind(this,t))}}]),t}(),At=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.xRatio=i.xRatio,this.yRatio=i.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new kt(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return r(t,[{key:"draw",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(e.globals.cuid,")"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:x.escapeString(e.globals.seriesNames[h]),rel:h+1,"data:realIndex":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new v(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,p=0;p-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+"%";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),p=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),f=a>180?1:0,b=["M",h,c,"A",s,s,0,f,1,d,g];return"donut"===e.chartType?[].concat(b,["L",u.x,u.y,"A",e.donutSize,e.donutSize,0,f,0,p.x,p.y,"L",h,c,"z"]).join(" "):"pie"===e.chartType||"polarArea"===e.chartType?[].concat(b,["L",e.centerX,e.centerY,"L",h,c]).join(" "):[].concat(b).join(" ")}},{key:"drawPolarElements",value:function(t){var e=this.w,i=new q(this.ctx),a=new m(this.ctx),s=new St(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,r),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==r&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),Lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var i=this.w;this.graphics=new m(this.ctx),this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=i.globals.svgHeight0&&(f=i.getPreviousPath(n));for(var b=0;b=10?t.x>0?(i="start",a+=10):t.x<0&&(i="end",a-=10):i="middle",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:"",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var p=h.dropShadow;s.dropShadow(u,p)}l.add(u),u.attr("id","apexcharts-radialbarTrack-"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new m(this.ctx),a=new T(this.ctx),s=new v(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),"back"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var p=!1;e.config.plotOptions.radialBar.inverseOrder&&(p=!0);for(var f=p?t.series.length-1:0;p?f>=0:f100?100:t.series[f])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*x.negToZero(e.globals.previousPaths[f])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var L=S-w,P=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[f]:e.config.stroke.dashArray,M=i.drawPath({d:"",stroke:y,strokeWidth:o,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+f,strokeDashArray:P});if(m.setAttrs(M.node,{"data:angle":L,"data:value":t.series[f]}),e.config.chart.dropShadow.enabled){var I=e.config.chart.dropShadow;s.dropShadow(M,I,f)}s.setSelectionFilter(M,0,f),this.addListeners(M,this.radialDataLabels),b.add(M),M.attr({index:0,j:f});var z=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(z=e.config.chart.animations.speed),e.globals.dataChanged&&(z=e.config.chart.animations.dynamicAnimation.speed),this.animDur=z/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(M,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:f,totalItems:2,animBeginArr:this.animBeginArr,dur:z,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:"drawHollow",value:function(t){var e=new m(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,r=new T(this.ctx),o=x.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:"pattern".concat(s.globals.cuid).concat(o)}),a="url(#pattern".concat(s.globals.cuid).concat(o,")");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),i}(Ct),Tt=function(){function t(e){a(this,t),this.w=e.w,this.lineCtx=e}return r(t,[{key:"sameValueSeriesFix",value:function(t,e){var i=this.w;if("line"===i.config.chart.type&&("gradient"===i.config.fill.type||"gradient"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:"calculatePoints",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(x.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:"checkPreviousPaths",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&("line"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):"area"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e=t.i,i=t.series,a=t.prevY,s=t.lineYPosition,r=this.w;if(void 0!==i[e][0])a=(s=r.config.chart.stacked&&e>0?this.lineCtx.prevSeriesY[e-1][0]:this.lineCtx.zeroY)-i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(r.config.chart.stacked&&e>0&&void 0===i[e][0])for(var o=e-1;o>=0;o--)if(null!==i[o][0]&&void 0!==i[o][0]){a=s=this.lineCtx.prevSeriesY[o][0];break}return{prevY:a,lineYPosition:s}}}]),t}(),Mt=function(){function t(e,i,s){a(this,t),this.ctx=e,this.w=e.w,this.xyRatios=i,this.pointsChart=!("bubble"!==this.w.config.chart.type&&"scatter"!==this.w.config.chart.type)||s,this.scatter=new I(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Tt(this),this.markers=new M(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return r(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=a.globals.comboCharts?e:a.config.chart.type,o=s.group({class:"apexcharts-".concat(r,"-series apexcharts-plot-series")}),n=new y(this.ctx,a);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=n.getLogSeries(t),this.yRatio=n.getLogYRatios(this.yRatio);for(var l=[],h=0;h0&&(u=(a.globals.seriesX[c][0]-a.globals.minX)/this.xRatio),g.push(u);var p,f=u,x=f,b=this.zeroY;b=this.lineHelpers.determineFirstPrevY({i:h,series:t,prevY:b,lineYPosition:0}).prevY,d.push(b),p=b;var v=this._calculatePathsFrom({series:t,i:h,realIndex:c,prevX:x,prevY:b}),w=this._iterateOverDataPoints({series:t,realIndex:c,i:h,x:u,y:1,pX:f,pY:p,pathsFrom:v,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:g,yArrj:d});this._handlePaths({type:r,realIndex:c,i:h,paths:w}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),l.push(this.elSeries)}if(a.config.chart.stacked)for(var k=l.length;k>0;k--)o.add(l[k-1]);else for(var A=0;A1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||"end"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",seriesName:x.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":r,rel:e+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(t){var e,i,a,s,r=t.series,o=t.i,n=t.realIndex,l=t.prevX,h=t.prevY,c=this.w,d=new m(this.ctx);if(null===r[o][0]){for(var g=0;g0){var u=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:n});a=u.pathFromLine,s=u.pathFromArea}return{prevX:l,prevY:h,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(t){var i=t.type,a=t.realIndex,s=t.i,r=t.paths,o=this.w,n=new m(this.ctx),l=new T(this.ctx);this.prevSeriesY.push(r.yArrj),o.globals.seriesXvalues[a]=r.xArrj,o.globals.seriesYvalues[a]=r.yArrj;var h=o.config.forecastDataPoints;if(h.count>0){var c=o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length-h.count-1],d=n.drawRect(c,0,o.globals.gridWidth,o.globals.gridHeight,0);o.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,o.globals.gridHeight,0);o.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||o.globals.delayedElements.push({el:this.elPointsMain.node,index:a});var u={i:s,realIndex:a,animationDelay:s,initialSpeed:o.config.chart.animations.speed,dataChangeSpeed:o.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(i)};if("area"===i)for(var p=l.fillPath({seriesNumber:a}),f=0;f0){var k=n.renderPaths(y);k.node.setAttribute("stroke-dasharray",h.dashArray),h.strokeWidth&&k.node.setAttribute("stroke-width",h.strokeWidth),this.elSeries.add(k),k.attr("clip-path","url(#forecastMask".concat(o.globals.cuid,")")),w.attr("clip-path","url(#nonForecastMask".concat(o.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(t){for(var e=t.series,i=t.realIndex,a=t.i,s=t.x,r=t.y,o=t.pX,n=t.pY,l=t.pathsFrom,h=t.linePaths,c=t.areaPaths,d=t.seriesIndex,g=t.lineYPosition,u=t.xArrj,p=t.yArrj,f=this.w,b=new m(this.ctx),v=this.yRatio,y=l.prevY,w=l.linePath,k=l.areaPath,A=l.pathFromLine,S=l.pathFromArea,C=x.isNumber(f.globals.minYArr[i])?f.globals.minYArr[i]:f.globals.minY,L=f.globals.dataPoints>1?f.globals.dataPoints-1:f.globals.dataPoints,P=0;P0&&f.globals.collapsedSeries.length-1){e--;break}return e>=0?e:0}(a-1)][P+1]}else g=this.zeroY;else g=this.zeroY;r=T?g-C/v[this.yaxisIndex]+2*(this.isReversed?C/v[this.yaxisIndex]:0):g-e[a][P+1]/v[this.yaxisIndex]+2*(this.isReversed?e[a][P+1]/v[this.yaxisIndex]:0),u.push(s),p.push(r);var I=this.lineHelpers.calculatePoints({series:e,x:s,y:r,realIndex:i,i:a,j:P,prevY:y}),z=this._createPaths({series:e,i:a,realIndex:i,j:P,x:s,y:r,pX:o,pY:n,linePath:w,areaPath:k,linePaths:h,areaPaths:c,seriesIndex:d});c=z.areaPaths,h=z.linePaths,o=z.pX,n=z.pY,k=z.areaPath,w=z.linePath,this.appendPathFrom&&(A+=b.line(s,this.zeroY),S+=b.line(s,this.zeroY)),this.handleNullDataPoints(e,I,a,P,i),this._handleMarkersAndLabels({pointsPos:I,series:e,x:s,y:r,prevY:y,i:a,j:P,realIndex:i})}return{yArrj:p,xArrj:u,pathFromArea:S,areaPaths:c,pathFromLine:A,linePaths:h}}},{key:"_handleMarkersAndLabels",value:function(t){var e=t.pointsPos;t.series,t.x,t.y,t.prevY;var i=t.i,a=t.j,s=t.realIndex,r=this.w,o=new z(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,a,{realIndex:s,pointsPos:e,zRatio:this.zRatio,elParent:this.elPointsMain});else{r.globals.series[i].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var n=this.markers.plotChartMarkers(e,s,a+1);null!==n&&this.elPointsMain.add(n)}var l=o.drawDataLabel(e,s,a+1,null);null!==l&&this.elDataLabelsWrap.add(l)}},{key:"_createPaths",value:function(t){var e=t.series,i=t.i,a=t.realIndex,s=t.j,r=t.x,o=t.y,n=t.pX,l=t.pY,h=t.linePath,c=t.areaPath,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,p=this.w,f=new m(this.ctx),x=p.config.stroke.curve,b=this.areaBottomY;if(Array.isArray(p.config.stroke.curve)&&(x=Array.isArray(u)?p.config.stroke.curve[u[i]]:p.config.stroke.curve[i]),"smooth"===x){var v=.35*(r-n);p.globals.hasNullValues?(null!==e[i][s]&&(null!==e[i][s+1]?(h=f.move(n,l)+f.curve(n+v,l,r-v,o,r+1,o),c=f.move(n+1,l)+f.curve(n+v,l,r-v,o,r+1,o)+f.line(r,b)+f.line(n,b)+"z"):(h=f.move(n,l),c=f.move(n,l)+"z")),d.push(h),g.push(c)):(h+=f.curve(n+v,l,r-v,o,r,o),c+=f.curve(n+v,l,r-v,o,r,o)),n=r,l=o,s===e[i].length-2&&(c=c+f.curve(n,l,r,o,r,b)+f.move(r,o)+"z",p.globals.hasNullValues||(d.push(h),g.push(c)))}else{if(null===e[i][s+1]){h+=f.move(r,o);var y=p.globals.isXNumeric?(p.globals.seriesX[a][s]-p.globals.minX)/this.xRatio:r-this.xDivision;c=c+f.line(y,b)+f.move(r,o)+"z"}null===e[i][s]&&(h+=f.move(r,o),c+=f.move(r,b)),"stepline"===x?(h=h+f.line(r,null,"H")+f.line(null,o,"V"),c=c+f.line(r,null,"H")+f.line(null,o,"V")):"straight"===x&&(h+=f.line(r,o),c+=f.line(r,o)),s===e[i].length-2&&(c=c+f.line(r,b)+f.move(r,o)+"z",d.push(h),g.push(c))}return{linePaths:d,areaPaths:g,pX:n,pY:l,linePath:h,areaPath:c}}},{key:"handleNullDataPoints",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){return o=void 0===o?0:o,n=void 0===n?0:n,function(t){var e,i,a=[];for(e=0;e=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;es-i&&n.width<=r-a){var l=o.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(-90 ".concat(l.x," ").concat(l.y,")"))}}},{key:"animateTreemap",value:function(t,e,i,a){var s=new b(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Et=86400,Yt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return r(t,[{key:"calculateTimeScaleTicks",value:function(t,i){var a=this,s=this.w;if(s.globals.allSeriesCollapsed)return s.globals.labels=[],s.globals.timescaleLabels=[],[];var r=new R(this.ctx),o=(i-t)/864e5;this.determineInterval(o),s.globals.disableZoomIn=!1,s.globals.disableZoomOut=!1,o<.00011574074074074075?s.globals.disableZoomIn=!0:o>5e4&&(s.globals.disableZoomOut=!0);var n=r.getTimeUnitsfromTimestamp(t,i,this.utc),l=s.globals.gridWidth/o,h=l/24,c=h/60,d=c/60,g=Math.floor(24*o),u=Math.floor(1440*o),p=Math.floor(o*Et),f=Math.floor(o),x=Math.floor(o/30),b=Math.floor(o/365),v={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:p,numberOfMinutes:u,numberOfHours:g,numberOfDays:f,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case"years":this.generateYearScale(m);break;case"months":case"half_year":this.generateMonthScale(m);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(m);break;case"hours":this.generateHourScale(m);break;case"minutes_fives":case"minutes":this.generateMinuteScale(m);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var i={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?e(e({},i),{},{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?e(e({},i),{},{value:t.value}):"minute"===t.unit?e(e({},i),{},{value:t.value,minute:t.value}):"second"===t.unit?e(e({},i),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,i=Math.ceil(s.globals.gridWidth/120),r=t.value;void 0!==s.config.xaxis.tickAmount&&(i=s.config.xaxis.tickAmount),y.length>i&&(e=Math.floor(y.length/i));var o=!1,n=!1;switch(a.tickInterval){case"years":"year"===t.unit&&(o=!0);break;case"half_year":e=7,"year"===t.unit&&(o=!0);break;case"months":e=1,"year"===t.unit&&(o=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(o=!0),30===r&&(n=!0);break;case"months_days":e=10,"month"===t.unit&&(o=!0),30===r&&(n=!0);break;case"week_days":e=8,"month"===t.unit&&(o=!0);break;case"days":e=1,"month"===t.unit&&(o=!0);break;case"hours":"day"===t.unit&&(o=!0);break;case"minutes_fives":r%5!=0&&(n=!0);break;case"seconds_tens":r%10!=0&&(n=!0);break;case"seconds_fives":r%5!=0&&(n=!0)}if("hours"===a.tickInterval||"minutes_fives"===a.tickInterval||"seconds_tens"===a.tickInterval||"seconds_fives"===a.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new lt(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval="years";break;case t>800:this.tickInterval="half_year";break;case t>180:this.tickInterval="months";break;case t>90:this.tickInterval="months_fortnight";break;case t>60:this.tickInterval="months_days";break;case t>30:this.tickInterval="week_days";break;case t>2:this.tickInterval="days";break;case e>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new R(this.ctx),h="year";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:x.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:x.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=x.monthMod(a+1);var g=s+d,u=x.monthMod(n),p=n;0===n&&(c="year",p=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:p,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:x.monthMod(a)});for(var f=n+1,b=l,v=0,m=1;vo.determineDaysOfMonths(e+1,i)?(h=1,n="month",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=x.monthMod(e.minMonth),n="month",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:x.monthMod(u),day:h});for(var p=d,f=0;fn.determineDaysOfMonths(e+1,s)&&(f=1,e+=1),{month:e,date:f}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,p=u+1;60===d&&(g=0,p=(u=e.minHour)+1);var f=i,b=c(f,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:f,hour:p,year:s,month:x.monthMod(b)});for(var v=g,m=0;m=24)p=0,l="day",b=h(f+=1,b).month,b=c(f,b);var y=this._getYear(s,b,0);v=0===p&&0===m?d*r:60*r+v;var w=0===p?f:p;this.timeScaleArray.push({position:v,value:w,unit:l,hour:p,day:f,year:y,month:x.monthMod(b)}),p++}}},{key:"generateMinuteScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,p=n,f=s,b=(60-i-e/1e3)*h,v=0;v=60&&(d=0,24===(f+=1)&&(f=0)),this.timeScaleArray.push({position:b,value:d,unit:"minute",hour:f,minute:d,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,d++}},{key:"generateSecondScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,p=n,f=s,b=(1e3-e)/1e3*l,v=0;v=60&&(c=0,++d>=60&&(d=0,24===++f&&(f=0))),this.timeScaleArray.push({position:b,value:c,unit:"second",hour:f,minute:d,second:c,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,c++}},{key:"createRawDateString",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),"minute"===t.unit?i+=":"+("0"+e).slice(-2):i+=":"+(t.minute?("0"+t.minute).slice(-2):"00"),"second"===t.unit?i+=":"+("0"+e).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new R(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(n=l.year),"month"===t.unit&&(n=l.month),"day"===t.unit&&(n=l.day),"hour"===t.unit&&(n=l.hour),"minute"===t.unit&&(n=l.minute),"second"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:"removeOverlappingTS",value:function(t){var e,i=this,a=new m(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:"_getYear",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Ft=function(){function t(e,i){a(this,t),this.ctx=i,this.w=i.w,this.el=e}return r(t,[{key:"setupElements",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].indexOf(i)>-1,t.xyCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type||"boxPlot"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),m.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elAnnotations=t.dom.Paper.group().attr({class:"apexcharts-annotations"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elWrap.appendChild(t.dom.elLegendWrap),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]};s.series.map((function(e,g){var u=0;void 0!==t[g].type?("column"===t[g].type||"bar"===t[g].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"),h.series.push(e),h.i.push(g),u++,i.globals.columnSeries=h.series):"area"===t[g].type?(o.series.push(e),o.i.push(g),u++):"line"===t[g].type?(r.series.push(e),r.i.push(g),u++):"scatter"===t[g].type?(n.series.push(e),n.i.push(g)):"bubble"===t[g].type?(l.series.push(e),l.i.push(g),u++):"candlestick"===t[g].type?(c.series.push(e),c.i.push(g),u++):"boxPlot"===t[g].type?(d.series.push(e),d.i.push(g),u++):console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble"),u>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(g))}));var g=new Mt(this.ctx,e),u=new wt(this.ctx,e);this.ctx.pie=new Ct(this.ctx);var p=new Pt(this.ctx);this.ctx.rangeBar=new H(this.ctx,e);var f=new Lt(this.ctx),x=[];if(s.comboCharts){if(o.series.length>0&&x.push(g.draw(o.series,"area",o.i)),h.series.length>0)if(i.config.chart.stacked){var b=new yt(this.ctx,e);x.push(b.draw(h.series,h.i))}else this.ctx.bar=new F(this.ctx,e),x.push(this.ctx.bar.draw(h.series,h.i));if(r.series.length>0&&x.push(g.draw(r.series,"line",r.i)),c.series.length>0&&x.push(u.draw(c.series,c.i)),d.series.length>0&&x.push(u.draw(d.series,d.i)),n.series.length>0){var v=new Mt(this.ctx,e,!0);x.push(v.draw(n.series,"scatter",n.i))}if(l.series.length>0){var m=new Mt(this.ctx,e,!0);x.push(m.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":x=g.draw(s.series,"line");break;case"area":x=g.draw(s.series,"area");break;case"bar":if(a.chart.stacked)x=new yt(this.ctx,e).draw(s.series);else this.ctx.bar=new F(this.ctx,e),x=this.ctx.bar.draw(s.series);break;case"candlestick":x=new wt(this.ctx,e).draw(s.series);break;case"boxPlot":x=new wt(this.ctx,e).draw(s.series);break;case"rangeBar":x=this.ctx.rangeBar.draw(s.series);break;case"heatmap":x=new At(this.ctx,e).draw(s.series);break;case"treemap":x=new Xt(this.ctx,e).draw(s.series);break;case"pie":case"donut":case"polarArea":x=this.ctx.pie.draw(s.series);break;case"radialBar":x=p.draw(s.series);break;case"radar":x=f.draw(s.series);break;default:x=g.draw(s.series)}return x}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=x.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();"%"===a?x.isNumber(i[0])&&(0===i[0].width&&(i=x.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if("auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===s){var r=x.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),m.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),"%"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+"px"}t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};m.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new ct(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=x.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",l),e.dom.elWrap.style.height=l+"px",m.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+"px"}},{key:"coreCalculations",value:function(){new Z(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new O,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if("back"===e.config.xaxis.crosshairs.position)new tt(this.ctx).drawXCrosshairs();if("back"===e.config.yaxis[0].crosshairs.position)new tt(this.ctx).drawYCrosshairs();if("datetime"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Yt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var t=this,i=this.w;if(i.config.chart.brush.enabled&&"function"!=typeof i.config.chart.events.selection){var a=i.config.chart.brush.targets||[i.config.chart.brush.target];a.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,"function"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),"function"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),i.config.chart.events.selection=function(t,s){a.forEach((function(t){var a=ApexCharts.getChartByID(t),r=x.clone(i.config.yaxis);if(i.config.chart.brush.autoScaleYaxis&&1===a.w.globals.series.length){var o=new q(a);r=o.autoScaleY(a,r,s)}var n=a.w.config.yaxis.reduce((function(t,i,s){return[].concat(u(t),[e(e({},a.w.config.yaxis[s]),{},{min:r[0].min,max:r[0].max})])}),[]);a.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Rt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"_updateOptions",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(n){var l=[e.ctx];r&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(r,h){var c=r.w;if(c.globals.shouldAnimate=s,a||(c.globals.resized=!0,c.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),t&&"object"===i(t)&&(r.config=new N(t),t=y.extendArrayProps(r.config,t,c),r.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,c.config=x.extend(c.config,t),o&&(c.globals.lastXAxis=t.xaxis?x.clone(t.xaxis):[],c.globals.lastYAxis=t.yaxis?x.clone(t.yaxis):[],c.globals.initialConfig=x.extend({},c.config),c.globals.initialSeries=x.clone(c.config.series),t.series))){for(var d=0;d2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialSeries=x.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:"_extendSeries",value:function(t,i){var a=this.w,s=a.config.series[i];return e(e({},a.config.series[i]),{},{name:t.name?t.name:s&&s.name,color:t.color?t.color:s&&s.color,type:t.type?t.type:s&&s.type,data:t.data?t.data:s&&s.data})}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(t,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"'], ").concat(s," circle[j='").concat(e,"'], ").concat(s," rect[j='").concat(e,"']")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"']")).members[0],"pie"!==i.config.chart.type&&"polarArea"!==i.config.chart.type&&"donut"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new m(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(t){var e=this.w;if(["min","max"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new D(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:"forceYAxisUpdate",value:function(t){var e=this.w;return e.config.chart.stacked&&"100%"===e.config.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:"revertDefaultAxisMinMax",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();It="undefined"!=typeof window?window:void 0,zt=function(t,e){var a=(void 0!==this?this:t).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns="http://www.w3.org/2000/svg",a.xmlns="http://www.w3.org/2000/xmlns/",a.xlink="http://www.w3.org/1999/xlink",a.svgjs="http://svgjs.dev",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return"Svgjs"+d(t)+a.did++},a.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute("id",this.eid(t)),i},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(e){return e?e.instance?e.instance:((i="svg"==e.nodeName?e.parentNode instanceof t.SVGElement?new a.Nested:new a.Doc:"linearGradient"==e.nodeName?new a.Gradient("linear"):"radialGradient"==e.nodeName?new a.Gradient("radial"):a[d(e.nodeName)]?new(a[d(e.nodeName)]):new a.Element(e)).type=e.nodeName,i.node=e,e.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(e.getAttribute("svgjs:data"))||{}),i):null;var i},a.prepare=function(){var t=e.getElementsByTagName("body")[0],i=(t?new a.Doc(t):a.adopt(e.documentElement).nested()).size(2,0);a.parser={body:t||e.documentElement,draw:i.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:i.polyline().node,path:i.path().node,native:a.create("svg")}},a.parser={native:a.create("svg")},e.addEventListener("DOMContentLoaded",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+="",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]}},r="mlhvqtcsaz".split(""),o=0,n=r.length;ol);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute("d",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return"none"!=this.style("display")},toString:function(){return this.attr("id")},classes:function(){var t=this.attr("class");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!=t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(e){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!e)return i;for(;i&&i.node instanceof t.SVGElement;){if("string"==typeof e?i.matches(e):i instanceof e)return i;if(!i.node.parentNode||"#document"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var i=e.createElement("svg");if(!(t&&this instanceof a.Parent))return i.appendChild(t=e.createElement("svg")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),i.innerHTML.replace(/^/,"").replace(/<\/svg>$/,"");i.innerHTML=""+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var s=0,r=i.firstChild.childNodes.length;s":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,s){"object"===i(t)&&(e=t.ease,s=t.delay,t=t.duration);var r=new a.Situation({duration:t||1e3,delay:s||0,ease:a.easing[e||"-"]||e});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on("finished.fx",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off("during.fx",i).on("during.fx",i),this.after((function(){this.off("during.fx",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--s)this[m[s]]=null!=t[m[s]]?t[m[s]]:e[m[s]]},extend:{extract:function(){var t=p(this,0,1);p(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=m.length-1;e>=0;e--)t[m[e]]=this[m[e]];return t},toString:function(){return"matrix("+v(this.a)+","+v(this.b)+","+v(this.c)+","+v(this.d)+","+v(this.e)+","+v(this.f)+")"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(t,e){var a;a=Array.isArray(t)?{x:t[0],y:t[1]}:"object"===i(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(t,e,s){if(null==t){for(t={},s=(e=this.node.attributes).length-1;s>=0;s--)t[e[s].nodeName]=a.regex.isNumber.test(e[s].nodeValue)?parseFloat(e[s].nodeValue):e[s].nodeValue;return t}if("object"===i(t))for(var r in t)this.attr(r,t[r]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?a.defaults.attrs[t]:a.regex.isNumber.test(e)?parseFloat(e):e;"stroke-width"==t?this.attr("stroke",parseFloat(e)>0?this._stroke:null):"stroke"==t&&(this._stroke=e),"fill"!=t&&"stroke"!=t||(a.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof a.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),"number"==typeof e?e=new a.Number(e):a.Color.isColor(e)?e=new a.Color(e):Array.isArray(e)&&(e=new a.Array(e)),"leading"==t?this.leading&&this.leading(e):"string"==typeof s?this.node.setAttributeNS(s,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!=t&&"x"!=t||this.rebuild(t,e)}return this}}),a.extend(a.Element,{transform:function(t,e){var s;return"object"!==i(t)?(s=new a.Matrix(this).extract(),"string"==typeof t?s[t]:s):(s=new a.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(s=e?s.multiply(new a.Matrix(t)):new a.Matrix(t)),this.attr("transform",s))}}),a.extend(a.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split("(");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return"matrix"==e[0]?t.multiply(f(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(t,e){if(arguments.length>1&&"boolean"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var a=0,s=this.arguments.length;a=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s=0;i--)e.childNodes[i]instanceof t.SVGElement&&x(e.childNodes[i]);return a.adopt(e).id(a.eid(e.nodeName))}function b(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function v(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if("string"==typeof e||a.Color.isRgb(e)||e&&"function"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr("transform",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)"function"==typeof a.Shape.prototype[e]&&"function"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var i=e.getElementById(function(t){var e=(t||"").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(i)},a.select=function(t,i){return new a.Set(a.utils.map((i||e).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var m="abcdef".split("");if("function"!=typeof t.CustomEvent){var y=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent("CustomEvent");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};y.prototype=t.Event.prototype,a.CustomEvent=y}else a.CustomEvent=t.CustomEvent;return a},"function"==typeof define&&define.amd?define((function(){return zt(It,It.document)})):"object"===("undefined"==typeof exports?"undefined":i(exports))&&"undefined"!=typeof module?module.exports=It.document?zt(It,It.document):function(t){return zt(t,t.document)}:It.SVG=zt(It,It.document), +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ApexCharts=e()}(this,(function(){"use strict";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;it.length)&&(e=t.length);for(var i=0,a=new Array(e);i>16,o=i>>8&255,n=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:"shadeColor",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:"bind",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:"isObject",value:function(t){return t&&"object"===i(t)&&!Array.isArray(t)&&null!=t}},{key:"is",value:function(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"}},{key:"listToArray",value:function(t){var e,i=[];for(e=0;ee.length?t:e}))),t.length>e.length?t:e}),0)}},{key:"hexToRgba",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"#999999",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;"#"!==t.substring(0,1)&&(t="#999999");var i=t.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"x",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi,e)}},{key:"negToZero",value:function(t){return t<0?0:t}},{key:"moveIndexInArray",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:"extractNumber",value:function(t){return parseFloat(t.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:"setELstyles",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:"isNumber",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:"isFloat",value:function(t){return Number(t)===t&&t%1!=0}},{key:"isSafari",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isIE11",value:function(){if(-1!==window.navigator.userAgent.indexOf("MSIE")||window.navigator.appVersion.indexOf("Trident/")>-1)return!0}},{key:"isIE",value:function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var a=t.indexOf("Edge/");return a>0&&parseInt(t.substring(a+5,t.indexOf(".",a)),10)}}]),t}(),b=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return r(t,[{key:"setEasingFunctions",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case"linear":t="-";break;case"easein":t="<";break;case"easeout":t=">";break;case"easeinout":t="<>";break;case"swing":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case"bounce":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case"elastic":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1};break;default:t="<>"}this.w.globals.easing=t}}},{key:"animateLine",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:"animateMarker",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:"animateCircle",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:"animateRect",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:"animatePathsGradually",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&"bar"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,"line"!==h.config.chart.type||h.globals.comboCharts?s:"stroke",r,o,n,l*c)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach((function(t){t.el.classList.remove("apexcharts-element-hidden")}))}},{key:"animationCompleted",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:"morphSVG",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr("pathFrom")),r||(r=t.attr("pathTo"));var c=function(t){return"radar"===h.config.chart.type&&(o=1),"M 0 ".concat(h.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=c()),(!r||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){x.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):"none"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),v=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getDefaultFilter",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size("120%","180%","-5%","-40%"),"none"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addNormalFilter",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains("apexcharts-marker")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addLightenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"addDarkenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"applyFilter",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(t,e);break;case"lighten":this.addLightenFilter(t,e,{intensity:a});break;case"darken":this.addDarkenFilter(t,e,{intensity:a})}}},{key:"addShadow",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,o=i.color,n=i.opacity,l=t.flood(Array.isArray(o)?o[e]:o,n).composite(t.sourceAlpha,"in").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:"dropShadow",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,o=e.color,n=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),x.isIE()&&"radialBar"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e=null;e=x.isSafari()||x.isFirefox()||x.isIE()?t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r):t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)),t}},{key:"setSelectionFilter",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute("selected",!0);var s=a.config.states.active.filter;"none"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:"_scaleFilterSize",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}]),t}(),m=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawLine",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"#a8a8a8",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"butt",l=this.w,h=l.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":o,"stroke-linecap":n});return h}},{key:"drawRect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"#fefefe",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w,d=c.globals.dom.Paper.rect();return d.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,"stroke-width":null!==n?n:0,stroke:null!==l?l:"none","stroke-dasharray":h}),d.node.setAttribute("fill",r),d}},{key:"drawPolygon",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#e1e1e1",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",s=this.w,r=s.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,"stroke-width":i});return r}},{key:"drawCircle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;t<0&&(t=0);var a=i.globals.dom.Paper.circle(2*t);return null!==e&&a.attr(e),a}},{key:"drawPath",value:function(t){var e=t.d,i=void 0===e?"":e,a=t.stroke,s=void 0===a?"#a8a8a8":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,f=void 0===u?null:u,p=t.strokeDashArray,x=void 0===p?0:p,b=this.w;return null===f&&(f=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,"fill-opacity":h,stroke:s,"stroke-opacity":d,"stroke-linecap":f,"stroke-width":o,"stroke-dasharray":x,class:g})}},{key:"group",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=e.globals.dom.Paper.group();return null!==t&&i.attr(t),i}},{key:"move",value:function(t,e){var i=["M",t,e].join(" ");return i}},{key:"line",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=["L",t,e].join(" "):"H"===i?a=["H",t].join(" "):"V"===i&&(a=["V",e].join(" ")),a}},{key:"curve",value:function(t,e,i,a,s,r){var o=["C",t,e,i,a,s,r].join(" ");return o}},{key:"quadraticCurve",value:function(t,e,i,a){return["Q",t,e,i,a].join(" ")}},{key:"arc",value:function(t,e,i,a,s,r,o){var n=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l="A";n&&(l="a");var h=[l,t,e,i,a,s,r,o].join(" ");return h}},{key:"renderPaths",value:function(t){var i,a=t.j,s=t.realIndex,r=t.pathFrom,o=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,f=t.className,p=t.shouldClipToGrid,x=void 0===p||p,m=t.bindEventsOnPaths,y=void 0===m||m,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new v(this.ctx),C=new b(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,M=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);M?i=r:(i=o,A.globals.animationEnded=!0);var T=A.config.stroke.dashArray,I=0;I=Array.isArray(T)?T[s]:A.config.stroke.dashArray;var z=this.drawPath({d:i,stroke:n,strokeWidth:l,fill:c,fillOpacity:1,classes:f,strokeLinecap:h,strokeDashArray:I});if(z.attr("index",s),x&&z.attr({"clip-path":"url(#gridRectMask".concat(A.globals.cuid,")")}),"none"!==A.config.states.normal.filter.type)S.getDefaultFilter(z,s);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(s))){var X=A.config.chart.dropShadow;S.dropShadow(z,X,s)}y&&(z.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,z)),z.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,z)),z.node.addEventListener("mousedown",this.pathMouseDown.bind(this,z))),z.attr({pathTo:o,pathFrom:r});var E={el:z,j:a,realIndex:s,pathFrom:r,pathTo:o,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(e(e({},E),{},{speed:g})),A.globals.dataChanged&&P&&M&&C.animatePathsGradually(e(e({},E),{},{speed:u})),z}},{key:"drawPattern",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#a8a8a8",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=this.w,o=r.globals.dom.Paper.pattern(e,i,(function(r){"horizontalLines"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):"verticalLines"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):"slantedLines"===t?r.line(0,0,e,i).stroke({color:a,width:s}):"squares"===t?r.rect(e,i).fill("none").stroke({color:a,width:s}):"circles"===t&&r.circle(e).fill("none").stroke({color:a,width:s})}));return o}},{key:"drawGradient",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf("#")&&(e=x.hexToRgba(e,a)),i.length<9&&0===i.indexOf("#")&&(i=x.hexToRgba(i,s));var d=0,g=1,u=1,f=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,f=void 0!==n[3]?n[3]/100:null);var p=!("donut"!==c.config.chart.type&&"pie"!==c.config.chart.type&&"polarArea"!==c.config.chart.type&&"bubble"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(p?"radial":"linear",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==f&&t.at(f,e,a)})):c.globals.dom.Paper.gradient(p?"radial":"linear",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),p){var b=c.globals.gridWidth/2,v=c.globals.gridHeight/2;"bubble"!==c.config.chart.type?r.attr({gradientUnits:"userSpaceOnUse",cx:b,cy:v,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?r.from(0,0).to(0,1):"diagonal"===t?r.from(0,0).to(1,1):"horizontal"===t?r.from(0,1).to(1,1):"diagonal2"===t&&r.from(1,0).to(0,1);return r}},{key:"getTextBasedOnMaxWidth",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),o=r.width/e.length,n=Math.floor(i/o);return i-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(".apexcharts-series path").members,h=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute("selected","true"),o="true",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if("true"===o){var d=i.config.states.active.filter;if("none"!==d)a.applyFilter(t,s,d.type,d.value);else if("none"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else if("none"!==i.config.states.active.filter.type)if("none"===i.config.states.hover.filter.type||i.globals.isTouchDevice)a.getDefaultFilter(t,s);else{g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}"function"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent("dataPointSelection",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(t){var e={};return t&&"function"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:"getTextRects",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:"start",fontSize:e,fontFamily:i,foreColor:"#fff",opacity:0});a&&o.attr("transform",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:"placeTextWithEllipsis",value:function(t,e,i){if("function"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+"...");t.textContent="."}}}],[{key:"setAttrs",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),y=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getStackedSeriesTotals",value:function(){var t=this.w,e=[];if(0===t.globals.series.length)return e;for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:"isSeriesNull",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:"seriesHaveSameValues",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:"getCategoryLabels",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:"getLargestSeries",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:"getLargestMarkerSize",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:"getSeriesTotals",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][o]0&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:"extendArrayProps",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e}return r(t,[{key:"setOrientations",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if("vertical"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4),"top"===t.label.position?s.setAttribute("y",parseFloat(s.getAttribute("y"))+r.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute("transform","rotate(-90 ".concat(n," ").concat(l,")"))}}}},{key:"addBackgroundToAnno",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;"vertical"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:"annotationsBackground",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(a,"']"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener("mouseenter",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener("mouseleave",i.label.mouseLeave.bind(t,i)),i.label.click&&n.node.addEventListener("click",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,"xaxis")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,"yaxis")})),e.config.annotations.points.map((function(t,e){i(t,e,"point")}))}},{key:"getY1Y2",value:function(t,e){var i,a="y1"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var o=s.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child("+(r+1)+")");o&&(i=parseFloat(o.getAttribute("y")))}else{var n;if(s.config.yaxis[e.yAxisIndex].logarithmic)n=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else n=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-n,!e.marker||void 0!==e.y&&null!==e.y||(i=0),s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=n)}return i}},{key:"getX1X2",value:function(t,e){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,o=(e.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(o=(s-e.x)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(e.x));var n=(e.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(n=(s-e.x2)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(e.x2)),void 0!==e.x&&null!==e.x||!e.marker||(o=i.globals.gridWidth),"x1"===t?o:n}},{key:"getStringX",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}}]),t}(),k=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addXaxisAnnotation",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2("x1",t),o=t.label.text,n=t.strokeDashArray;if(x.isNumber(r)){if(null===t.x2||void 0===t.x2){var l=this.annoCtx.graphics.drawLine(r+t.offsetX,0+t.offsetY,r+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,n,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getX1X2("x2",t))o){var h=o;o=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),o-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add("apexcharts-annotation-rect"),c.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d="right"===t.label.position?s.globals.gridWidth:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(null!=a?a:o)+t.label.offsetY-3,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});g.attr({rel:i}),e.appendChild(g.node)}},{key:"_getYAxisAnnotationWidth",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf("%")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:"drawYAxisAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),S=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addPointAnnotation",value:function(t,e,i){this.w;var a=this.helpers.getX1X2("x1",t),s=this.helpers.getY1Y2("y1",t);if(x.isNumber(a)){var r={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:"apexcharts-point-annotation-marker ".concat(t.marker.cssClass," ").concat(t.id?t.id:"")},o=this.annoCtx.graphics.drawMarker(a+t.marker.offsetX,s+t.marker.offsetY,r);e.appendChild(o.node);var n=t.label.text?t.label.text:"",l=this.annoCtx.graphics.drawText({x:a+t.label.offsetX,y:s+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});if(l.attr({rel:i}),e.appendChild(l.node),t.customSVG.SVG){var h=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+t.customSVG.cssClass});h.attr({transform:"translate(".concat(a+t.customSVG.offsetX,", ").concat(s+t.customSVG.offsetY,")")}),h.node.innerHTML=t.customSVG.SVG,e.appendChild(h.node)}if(t.image.path){var c=t.image.width?t.image.width:20,d=t.image.height?t.image.height:20;o=this.annoCtx.addImage({x:a+t.image.offsetX-c/2,y:s+t.image.offsetY-d/2,width:c,height:d,path:t.image.path,appendTo:".apexcharts-point-annotations"})}t.mouseEnter&&o.node.addEventListener("mouseenter",t.mouseEnter.bind(this,t)),t.mouseLeave&&o.node.addEventListener("mouseleave",t.mouseLeave.bind(this,t)),t.click&&o.node.addEventListener("click",t.click.bind(this,t))}}},{key:"drawPointAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var C={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},L=function(){function t(){a(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,radius:2,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return r(t,[{key:"init",value:function(){return{annotations:{position:"front",yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:"easeinout",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"transparent",locales:[C],defaultLocale:"en",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0},stacked:!1,stackType:"normal",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,rangeBarOverlap:!0,rangeBarGroupRows:!1,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal"}},bubble:{minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+"%"}},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+"%"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:""},textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:"#fff",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:"none",value:0}},hover:{filter:{type:"lighten",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.5}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0,fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",cssClass:"",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+": ":""}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss",second:"HH:mm:ss"}},group:{groups:[],style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"light",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),t}(),P=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.graphics=new m(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new w(this),this.xAxisAnnotations=new k(this),this.yAxisAnnotations=new A(this),this.pointsAnnotations=new S(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return r(t,[{key:"drawAxesAnnotations",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||"scatter"!==t.config.chart.type&&"bubble"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add("apexcharts-element-hidden"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:"drawTextAnnos",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:"addXaxisAnnotation",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:"addYaxisAnnotation",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:"addPointAnnotation",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:"addText",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,f=t.borderRadius,p=t.borderColor,x=t.appendTo,b=void 0===x?".apexcharts-annotations":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:n||"12px",fontWeight:h||"regular",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),M=L.globals.dom.baseEl.querySelector(b);M&&M.appendChild(P.node);var T=P.bbox();if(s){var I=this.graphics.drawRect(T.x-m,T.y-C,T.width+m+w,T.height+A+C,f,d||"transparent",1,g,p,u);M.insertBefore(I.node,P.node)}}},{key:"addImage",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?".apexcharts-annotations":g,f=i.globals.dom.Paper.image(a);f.size(h,d).move(r,n);var p=i.globals.dom.baseEl.querySelector(u);return p&&p.appendChild(f.node),f}},{key:"addXaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),h=l.childNodes.length+1,c=new L,d=Object.assign({},"xaxis"===s?c.xAxisAnnotation:"yaxis"===s?c.yAxisAnnotation:c.pointAnnotation),g=x.extend(d,e);switch(s){case"xaxis":this.addXaxisAnnotation(g,l,h);break;case"yaxis":this.addYaxisAnnotation(g,l,h);break;case"point":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(h,"']")),f=this.helpers.addBackgroundToAnno(u,g);return f&&l.insertBefore(f.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:x.randomId(),method:r,label:"addAnnotation",params:e}),a}},{key:"clearAnnotations",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");e.globals.memory.methodsToExec.map((function(t,i){"addText"!==t.label&&"addAnnotation"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=x.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:"removeAnnotation",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),M=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0}return r(t,[{key:"clippedImgArea",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,"pattern");m.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:n+"px",height:l+"px"});var c=document.createElementNS(e.globals.SVGNS,"image");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,"href",o),m.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:n+"px",height:l+"px"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:"getSeriesIndex",value:function(t){var e=this.w;return("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||"heatmap"===e.config.chart.type||"treemap"===e.config.chart.type?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),"function"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf("rgb")?o.length<9&&(h=x.hexToRgba(o,l)):o.indexOf("rgba")>-1&&(l=x.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),"pattern"===n&&(a=this.handlePatternFill(a,o,l,h)),"gradient"===n&&(s=this.handleGradientFill(o,l,this.seriesIndex)),"image"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:"";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber-1&&(c=x.getOpacityFromRGBA(h));var d=void 0===s.fill.gradient.opacityTo?e:Array.isArray(s.fill.gradient.opacityTo)?s.fill.gradient.opacityTo[i]:s.fill.gradient.opacityTo;if(void 0===s.fill.gradient.gradientToColors||0===s.fill.gradient.gradientToColors.length)a="dark"===s.fill.gradient.shade?n.shadeColor(-1*parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?x.rgb2hex(t):t):n.shadeColor(parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?x.rgb2hex(t):t);else if(s.fill.gradient.gradientToColors[r.seriesNumber]){var g=s.fill.gradient.gradientToColors[r.seriesNumber];a=g,g.indexOf("rgba")>-1&&(d=x.getOpacityFromRGBA(g))}else a=t;if(s.fill.gradient.inverseColors){var u=h;h=a,a=u}return h.indexOf("rgb")>-1&&(h=x.rgb2hex(h)),a.indexOf("rgb")>-1&&(a=x.rgb2hex(a)),o.drawGradient(l,h,a,c,d,r.size,s.fill.gradient.stops,s.fill.gradient.colorStops,i)}}]),t}(),T=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"setGlobalMarkerSize",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new m(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(o.globals.cuid,")")),Array.isArray(l.x))for(var g=0;g0:o.config.markers.size>0;if(p||r||d){x.isNumber(l.y[g])?f+=" w".concat(x.randomId()):f="apexcharts-nullpoint";var b=this.getMarkerConfig({cssClass:f,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(b.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(b.pointStrokeColor=o.config.series[n].data[u].strokeColor)),a&&(b.pSize=a),(s=c.drawMarker(l.x[g],l.y[g],b)).attr("rel",u),s.attr("j",u),s.attr("index",e),s.node.setAttribute("default-marker-size",b.pSize);var y=new v(this.ctx);y.setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:"getMarkerConfig",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.finishRadius,o=void 0===r?null:r,n=this.w,l=this.getMarkerStyle(i),h=n.globals.markers.size[i],c=n.config.markers;return null!==s&&c.discrete.length&&c.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(l.pointStrokeColor=t.strokeColor,l.pointFillColor=t.fillColor,h=t.size,l.pointShape=t.shape)})),{pSize:null===o?h:o,pRadius:c.radius,width:Array.isArray(c.width)?c.width[i]:c.width,height:Array.isArray(c.height)?c.height[i]:c.height,pointStrokeWidth:Array.isArray(c.strokeWidth)?c.strokeWidth[i]:c.strokeWidth,pointStrokeColor:l.pointStrokeColor,pointFillColor:l.pointFillColor,shape:l.pointShape||(Array.isArray(c.shape)?c.shape[i]:c.shape),class:e,pointStrokeOpacity:Array.isArray(c.strokeOpacity)?c.strokeOpacity[i]:c.strokeOpacity,pointStrokeDashArray:Array.isArray(c.strokeDashArray)?c.strokeDashArray[i]:c.strokeDashArray,pointFillOpacity:Array.isArray(c.fillOpacity)?c.fillOpacity[i]:c.fillOpacity,seriesIndex:i}}},{key:"addEvents",value:function(t){var e=this.w,i=new m(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener("click",e.config.markers.onClick),t.node.addEventListener("dblclick",e.config.markers.onDblClick),t.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:"getMarkerStyle",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),I=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return r(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(h.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),Array.isArray(o.x))for(var c=0;cp.maxBubbleRadius&&(f=p.maxBubbleRadius)}a.config.chart.animations.enabled||(u=f);var x=o.x[c],b=o.y[c];if(u=u||0,null!==b&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,b,u,f,r,d,e);h.add(v)}l.add(h)}}},{key:"drawPoint",value:function(t,e,i,a,s,r,o){var n=this.w,l=s,h=new b(this.ctx),c=new v(this.ctx),d=new M(this.ctx),g=new T(this.ctx),u=new m(this.ctx),f=g.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:l,dataPointIndex:r,finishRadius:"bubble"===n.config.chart.type||n.globals.comboCharts&&n.config.series[s]&&"bubble"===n.config.series[s].type?a:null});a=f.pSize;var p,x=d.fillPath({seriesNumber:s,dataPointIndex:r,color:f.pointFillColor,patternUnits:"objectBoundingBox",value:n.globals.series[s][o]});if("circle"===f.shape?p=u.drawCircle(i):"square"!==f.shape&&"rect"!==f.shape||(p=u.drawRect(0,0,f.width-f.pointStrokeWidth/2,f.height-f.pointStrokeWidth/2,f.pRadius)),n.config.series[l].data[r]&&n.config.series[l].data[r].fillColor&&(x=n.config.series[l].data[r].fillColor),p.attr({x:t-f.width/2-f.pointStrokeWidth/2,y:e-f.height/2-f.pointStrokeWidth/2,cx:t,cy:e,fill:x,"fill-opacity":f.pointFillOpacity,stroke:f.pointStrokeColor,r:a,"stroke-width":f.pointStrokeWidth,"stroke-dasharray":f.pointStrokeDashArray,"stroke-opacity":f.pointStrokeOpacity}),n.config.chart.dropShadow.enabled){var y=n.config.chart.dropShadow;c.dropShadow(p,y,s)}if(!this.initialAnim||n.globals.dataChanged||n.globals.resized)n.globals.animationEnded=!0;else{var w=n.config.chart.animations.speed;h.animateMarker(p,0,"circle"===f.shape?a:{width:f.width,height:f.height},w,n.globals.easing,(function(){window.setTimeout((function(){h.animationCompleted(p)}),100)}))}if(n.globals.dataChanged&&"circle"===f.shape)if(this.dynamicAnim){var k,A,S,C,L=n.config.chart.animations.dynamicAnimation.speed;null!=(C=n.globals.previousPaths[s]&&n.globals.previousPaths[s][o])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var P=0;Pn.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var f=n.globals.dataLabelsRects[a][u];(t>f.x+f.width+2||e>f.y+f.height+2||t+c4&&void 0!==arguments[4]?arguments[4]:2,r=this.w,o=new m(this.ctx),n=r.config.dataLabels,l=0,h=0,c=i,d=null;if(!n.enabled||!Array.isArray(t.x))return d;d=o.group({class:"apexcharts-data-labels"});for(var g=0;ge.globals.gridWidth+p.textRects.width+10)&&(n="");var x=e.globals.dataLabels.style.colors[r];(("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(x=e.globals.dataLabels.style.colors[o]),"function"==typeof x&&(x=x({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(x=g);var b=d.offsetX,y=d.offsetY;if("bar"!==e.config.chart.type&&"rangeBar"!==e.config.chart.type||(b=0,y=0),p.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+b,y:s+y,foreColor:x,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||"normal"});if(w.attr({class:"apexcharts-datalabel",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new v(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}}}},{key:"addBackgroundToDataLabel",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new m(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,"transparent"===i.config.chart.background?"#fff":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new v(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:"dataLabelsBackground",value:function(){var t=this.w;if("bubble"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;ii.globals.gridHeight&&(c=i.globals.gridHeight-g)),{bcx:o,bcy:r,dataLabelsX:e,dataLabelsY:c}}},{key:"calculateBarsDataLabelsPosition",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.bcy,o=t.barHeight,n=t.barWidth,l=t.textRects,h=t.dataLabelsX,c=t.strokeWidth,d=t.barDataLabelsConfig,g=t.offX,u=t.offY,f=e.globals.gridHeight/e.globals.dataPoints;n=Math.abs(n);var p=r-(this.barCtx.isRangeBar?0:f)+o/2+l.height/2+u-3,x=this.barCtx.series[a][s]<0,b=i;switch(this.barCtx.isReversed&&(b=i+n-(x?2*n:0),i=e.globals.gridWidth-n),d.position){case"center":h=x?b+n/2-g:Math.max(l.width/2,b-n/2)+g;break;case"bottom":h=x?b+n-c-Math.round(l.width/2)-g:b-n+c+Math.round(l.width/2)+g;break;case"top":h=x?b-c+Math.round(l.width/2)-g:b-c-Math.round(l.width/2)+g}return e.config.chart.stacked||(h<0?h=h+l.width+c:h+l.width/2>e.globals.gridWidth&&(h=e.globals.gridWidth-l.width-c)),{bcx:i,bcy:r,dataLabelsX:h,dataLabelsY:p}}},{key:"drawCalculatedDataLabels",value:function(t){var i=t.x,a=t.y,s=t.val,r=t.i,o=t.j,n=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g="rotate(0)";"vertical"===d.config.plotOptions.bar.dataLabels.orientation&&(g="rotate(-90, ".concat(i,", ").concat(a,")"));var u=new z(this.barCtx.ctx),f=new m(this.barCtx.ctx),p=c.formatter,x=null,b=d.globals.collapsedSeriesIndices.indexOf(r)>-1;if(c.enabled&&!b){x=f.group({class:"apexcharts-data-labels",transform:g});var v="";void 0!==s&&(v=p(s,{seriesIndex:r,dataPointIndex:o,w:d}));var y=d.globals.series[r][o]<0,w=d.config.plotOptions.bar.dataLabels.position;if("vertical"===d.config.plotOptions.bar.dataLabels.orientation&&("top"===w&&(c.textAnchor=y?"end":"start"),"center"===w&&(c.textAnchor="middle"),"bottom"===w&&(c.textAnchor=y?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)hMath.abs(h)&&(v=""):n.height/1.6>Math.abs(l)&&(v=""));var k=e({},c);this.barCtx.isHorizontal&&s<0&&("start"===c.textAnchor?k.textAnchor="end":"end"===c.textAnchor&&(k.textAnchor="start")),u.plotDataLabelsText({x:i,y:a,text:v,i:r,j:o,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}}]),t}(),E=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.legendInactiveClass="legend-mouseover-inactive"}return r(t,[{key:"getAllSeriesEls",value:function(){return this.w.globals.dom.baseEl.getElementsByClassName("apexcharts-series")}},{key:"getSeriesByName",value:function(t){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner .apexcharts-series[seriesName='".concat(x.escapeString(t),"']"))}},{key:"isSeriesHidden",value:function(t){var e=this.getSeriesByName(t),i=parseInt(e.getAttribute("data:realIndex"),10);return{isHidden:e.classList.contains("apexcharts-series-collapsed"),realIndex:i}}},{key:"addCollapsedClassToSeries",value:function(t,e){var i=this.w;function a(i){for(var a=0;a0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=x.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:"toggleSeriesOnHover",value:function(t,e){var i=this.w;e||(e=t.target);var a=i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels");if("mousemove"===t.type){var s=parseInt(e.getAttribute("rel"),10)-1,r=null,o=null;i.globals.axisCharts||"radialBar"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s,"']")),o=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s,"']"))):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"']")):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"'] path"));for(var n=0;n=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[o])}else"mouseout"===t.type&&r("remove")}},{key:"getActiveConfigSeriesIndex",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"asc",i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(e,a){var s=!1;return t&&(s="bar"===i.config.series[a].type||"column"===i.config.series[a].type),e.data&&e.data.length>0&&!s?a:-1})),r="asc"===e?0:s.length-1;"asc"===e?r=0;"asc"===e?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:"getPreviousPaths",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute("data:realIndex")},o=0;o0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(e,"'] rect")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e("x")),y:parseFloat(e("y")),width:parseFloat(e("width")),height:parseFloat(e("height"))};a.push({rect:s,color:i[t].getAttribute("color")})},r=0;r0)for(var a=0;a0?t:[]}));return t}}]),t}(),Y=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e}return r(t,[{key:"initVariables",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/this.barCtx.seriesLen*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:"getPathFillColor",value:function(t,e,i,a){var s=this.w,r=new M(this.barCtx.ctx),o=null,n=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(o=a.color)}));return s.config.series[e].data[i]&&s.config.series[e].data[i].fillColor&&(o=s.config.series[e].data[i].fillColor),r.fillPath({seriesNumber:this.barCtx.barOptions.distributed?n:a,dataPointIndex:i,color:o,value:t[e][i]})}},{key:"getStrokeWidth",value:function(t,e,i){var a=0,s=this.w;return void 0===this.barCtx.series[t][e]||null===this.barCtx.series[t][e]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"barBackground",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new m(this.barCtx.ctx),c=new E(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(t){var e=t.barWidth,i=t.barXPosition,a=t.yRatio,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.series,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u={barWidth:e,strokeWidth:o,yRatio:a,barXPosition:i,y1:s,y2:r},f=this.getRoundedBars(d,u,n,h,c),p=i,x=i+e,b=g.move(p,s),v=g.move(p,s),y=g.line(x-o,s);return d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1)),b=b+g.line(p,f.y2)+f.pathWithRadius+g.line(x-o,f.y2)+y+y+"z",v=v+g.line(p,s)+y+y+y+y+y+g.line(p,s),d.config.chart.stacked&&(this.barCtx.yArrj.push(f.y2WithRadius),this.barCtx.yArrjF.push(Math.abs(s-f.y2WithRadius)),this.barCtx.yArrjVal.push(this.barCtx.series[h][c])),{pathTo:b,pathFrom:v}}},{key:"getBarpaths",value:function(t){var e=t.barYPosition,i=t.barHeight,a=t.x1,s=t.x2,r=t.strokeWidth,o=t.series,n=t.realIndex,l=t.i,h=t.j,c=t.w,d=new m(this.barCtx.ctx);(r=Array.isArray(r)?r[n]:r)||(r=0);var g={barHeight:i,strokeWidth:r,barYPosition:e,x2:s,x1:a},u=this.getRoundedBars(c,g,o,l,h),f=d.move(a,e),p=d.move(a,e);c.globals.previousPaths.length>0&&(p=this.barCtx.getPreviousPath(n,h,!1));var x=e,b=e+i,v=d.line(a,b-r);return f=f+d.line(u.x2,x)+u.pathWithRadius+d.line(u.x2,b-r)+v+v+"z",p=p+d.line(a,x)+v+v+v+v+v+d.line(a,x),c.config.chart.stacked&&(this.barCtx.xArrj.push(u.x2WithRadius),this.barCtx.xArrjF.push(Math.abs(a-u.x2WithRadius)),this.barCtx.xArrjVal.push(this.barCtx.series[l][h])),{pathTo:f,pathFrom:p}}},{key:"getRoundedBars",value:function(t,e,i,a,s){var r=new m(this.barCtx.ctx),o=0,n=t.config.plotOptions.bar.borderRadius,l=Array.isArray(n);l?o=n[a>n.length-1?n.length-1:a]:o=n;if(t.config.chart.stacked&&i.length>1&&a!==this.barCtx.radiusOnSeriesNumber&&!l&&(o=0),this.barCtx.isHorizontal){var h="",c=e.x2;if(Math.abs(e.x1-e.x2)0:i[a][s]<0;d&&(o*=-1),c-=o,h=r.quadraticCurve(c+o,e.barYPosition,c+o,e.barYPosition+(d?-1*o:o))+r.line(c+o,e.barYPosition+e.barHeight-e.strokeWidth-(d?-1*o:o))+r.quadraticCurve(c+o,e.barYPosition+e.barHeight-e.strokeWidth,c,e.barYPosition+e.barHeight-e.strokeWidth)}return{pathWithRadius:h,x2WithRadius:c+o,x2:c}}var g="",u=e.y2;if(Math.abs(e.y1-e.y2)=0;o--)this.barCtx.zeroSerieses.indexOf(o)>-1&&o===this.radiusOnSeriesNumber&&(this.barCtx.radiusOnSeriesNumber-=1);for(var n=e.length-1;n>=0;n--)i.globals.collapsedSeriesIndices.indexOf(this.barCtx.radiusOnSeriesNumber)>-1&&(this.barCtx.radiusOnSeriesNumber-=1)}},{key:"getXForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),a}},{key:"getYForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),a}},{key:"getGoalValues",value:function(t,e,i,a,s){var r=this,n=this.w,l=[];return n.globals.seriesGoals[a]&&n.globals.seriesGoals[a][s]&&Array.isArray(n.globals.seriesGoals[a][s])&&n.globals.seriesGoals[a][s].forEach((function(a){var s;l.push((o(s={},t,"x"===t?r.getXForValue(a.value,e,!1):r.getYForValue(a.value,i,!1)),o(s,"attrs",a),s))})),l}},{key:"drawGoalLine",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new m(this.barCtx.ctx),l=n.group({className:"apexcharts-bar-goals-groups"}),h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)})):Array.isArray(s)&&s.forEach((function(t){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)})),l}}]),t}(),F=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRangeBar.length&&this.isHorizontal,this.xyRatios=i,null!==this.xyRatios&&(this.xRatio=i.xRatio,this.initialXRatio=i.initialXRatio,this.yRatio=i.yRatio,this.invertedXRatio=i.invertedXRatio,this.invertedYRatio=i.invertedYRatio,this.baseLineY=i.baseLineY,this.baseLineInvertedY=i.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0,this.barHelpers=new Y(this)}return r(t,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx),r=new y(this.ctx,a);t=r.getLogSeries(t),this.series=t,this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var o=s.group({class:"apexcharts-bar-series apexcharts-plot-series"});a.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.");for(var n=0,l=0;n0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();f=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||b.push(u+A/2);for(var C=s.group({class:"apexcharts-datalabels","data:realIndex":v}),L=s.group({class:"apexcharts-bar-goals-markers",style:"pointer-events: none"}),P=0;P0&&b.push(u+A/2),p.push(f);var X=this.barHelpers.getPathFillColor(t,n,P,v);this.renderSeries({realIndex:v,pathFill:X,j:P,i:n,pathFrom:T.pathFrom,pathTo:T.pathTo,strokeWidth:M,elSeries:w,x:u,y:f,series:t,barHeight:k,barWidth:A,elDataLabelsWrap:C,elGoalsMarkers:L,visibleSeries:this.visibleI,type:"bar"})}a.globals.seriesXvalues[v]=b,a.globals.seriesYvalues[v]=p,o.add(w)}return o}},{key:"renderSeries",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.pathFrom,n=t.pathTo,l=t.strokeWidth,h=t.elSeries,c=t.x,d=t.y,g=t.y1,u=t.y2,f=t.series,p=t.barHeight,x=t.barWidth,b=t.barYPosition,y=t.elDataLabelsWrap,w=t.elGoalsMarkers,k=t.visibleSeries,A=t.type,S=this.w,C=new m(this.ctx);a||(a=this.barOptions.distributed?S.globals.stroke.colors[s]:S.globals.stroke.colors[e]),S.config.series[r].data[s]&&S.config.series[r].data[s].strokeColor&&(a=S.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var L=s/S.config.chart.animations.animateGradually.delay*(S.config.chart.animations.speed/S.globals.dataPoints)/2.4,P=C.renderPaths({i:r,j:s,realIndex:e,pathFrom:o,pathTo:n,stroke:a,strokeWidth:l,strokeLineCap:S.config.stroke.lineCap,fill:i,animationDelay:L,initialSpeed:S.config.chart.animations.speed,dataChangeSpeed:S.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(A,"-area")});P.attr("clip-path","url(#gridRectMask".concat(S.globals.cuid,")"));var M=S.config.forecastDataPoints;M.count>0&&s>=S.globals.dataPoints-M.count&&(P.node.setAttribute("stroke-dasharray",M.dashArray),P.node.setAttribute("stroke-width",M.strokeWidth),P.node.setAttribute("fill-opacity",M.fillOpacity)),void 0!==g&&void 0!==u&&(P.attr("data-range-y1",g),P.attr("data-range-y2",u)),new v(this.ctx).setSelectionFilter(P,e,s),h.add(P);var T=new X(this).handleBarDataLabels({x:c,y:d,y1:g,y2:u,i:r,j:s,series:f,realIndex:e,barHeight:p,barWidth:x,barYPosition:b,renderedPath:P,visibleSeries:k});return null!==T&&y.add(T),h.add(y),w&&h.add(w),h}},{key:"drawBarPaths",value:function(t){var e=t.indexes,i=t.barHeight,a=t.strokeWidth,s=t.zeroW,r=t.x,o=t.y,n=t.yDivision,l=t.elSeries,h=this.w,c=e.i,d=e.j;h.globals.isXNumeric&&(o=(h.globals.seriesX[c][d]-h.globals.minX)/this.invertedXRatio-i);var g=o+i*this.visibleI;r=this.barHelpers.getXForValue(this.series[c][d],s);var u=this.barHelpers.getBarpaths({barYPosition:g,barHeight:i,x1:s,x2:r,strokeWidth:a,series:this.series,realIndex:e.realIndex,i:c,j:d,w:h});return h.globals.isXNumeric||(o+=n),this.barHelpers.barBackground({j:d,i:c,y1:g-i*this.visibleI,y2:i*this.seriesLen,elSeries:l}),{pathTo:u.pathTo,pathFrom:u.pathFrom,x:r,y:o,goalX:this.barHelpers.getGoalValues("x",s,null,c,d),barYPosition:g}}},{key:"drawColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.strokeWidth,l=t.elSeries,h=this.w,c=e.realIndex,d=e.i,g=e.j,u=e.bc;if(h.globals.isXNumeric){var f=c;h.globals.seriesX[c].length||(f=h.globals.maxValsInArrayIndex),i=(h.globals.seriesX[f][g]-h.globals.minX)/this.xRatio-r*this.seriesLen/2}var p=i+r*this.visibleI;a=this.barHelpers.getYForValue(this.series[d][g],o);var x=this.barHelpers.getColumnPaths({barXPosition:p,barWidth:r,y1:o,y2:a,strokeWidth:n,series:this.series,realIndex:e.realIndex,i:d,j:g,w:h});return h.globals.isXNumeric||(i+=s),this.barHelpers.barBackground({bc:u,j:g,i:d,x1:p-n/2-r*this.visibleI,x2:r*this.seriesLen+n/2,elSeries:l}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x:i,y:a,goalY:this.barHelpers.getGoalValues("y",null,o,d,g),barXPosition:p}}},{key:"getPreviousPath",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),R=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return r(t,[{key:"isValidDate",value:function(t){return!isNaN(this.parseDate(t))}},{key:"getTimeStamp",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:"getDate",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:"parseDate",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "));return i=this.getTimeStamp(i)}},{key:"parseDateWithTimezone",value:function(t){return Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "))}},{key:"formatDate",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=["\0"].concat(u(i.months)),r=["\x01"].concat(u(i.shortMonths)),o=["\x02"].concat(u(i.days)),n=["\x03"].concat(u(i.shortDays));function l(t,e){var i=t+"";for(e=e||2;i.length12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+l(g))).replace(/(^|[^\\])H/g,"$1"+g)).replace(/(^|[^\\])hh+/g,"$1"+l(f))).replace(/(^|[^\\])h/g,"$1"+f);var p=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+l(p))).replace(/(^|[^\\])m/g,"$1"+p);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+l(x))).replace(/(^|[^\\])s/g,"$1"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\])ff/g,"$1"+l(b)),b=Math.round(b/10);var v=g<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+b)).replace(/(^|[^\\])TT+/g,"$1"+v)).replace(/(^|[^\\])T/g,"$1"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+m)).replace(/(^|[^\\])t/g,"$1"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?"Z":y>0?"+":"-";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+":"+l(k)}e=e.replace(/(^|[^\\])K/g,"$1"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],"g"),o[A])).replace(new RegExp(n[0],"g"),n[A])).replace(new RegExp(s[0],"g"),s[c])).replace(new RegExp(r[0],"g"),r[c])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),n=this.formatDate(r,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:"isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"calculcateLastDaysOfMonth",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:"determineDaysOfYear",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:"determineRemainingDaysOfYear",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(t,e){var i=30;switch(t=x.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),H=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=a.globals.seriesRangeStart,this.seriesRangeEnd=a.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var r=s.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),o=0;o0&&(this.visibleI=this.visibleI+1);var p=0,b=0;this.yRatio.length>1&&(this.yaxisIndex=u);var v=this.barHelpers.initialPositions();d=v.y,h=v.zeroW,c=v.x,b=v.barWidth,n=v.xDivision,l=v.zeroH;for(var y=s.group({class:"apexcharts-datalabels","data:realIndex":u}),w=s.group({class:"apexcharts-rangebar-goals-markers",style:"pointer-events: none"}),k=0;k0}));return a=l.config.plotOptions.bar.rangeBarGroupRows?s+o*g:s+r*this.visibleI+o*g,u>-1&&!l.config.plotOptions.bar.rangeBarOverlap&&(h=l.globals.seriesRangeBar[e][u].overlaps).indexOf(c)>-1&&(a=(r=n.barHeight/h.length)*this.visibleI+o*(100-parseInt(this.barOptions.barHeight,10))/100/2+r*(this.visibleI+h.indexOf(c))+o*g),{barYPosition:a,barHeight:r}}},{key:"drawRangeColumnPaths",value:function(t){var e=t.indexes,i=t.x;t.strokeWidth;var a=t.xDivision,s=t.barWidth,r=t.zeroH,o=this.w,n=e.i,l=e.j,h=this.yRatio[this.yaxisIndex],c=e.realIndex,d=this.getRangeValue(c,l),g=Math.min(d.start,d.end),u=Math.max(d.start,d.end);o.globals.isXNumeric&&(i=(o.globals.seriesX[n][l]-o.globals.minX)/this.xRatio-s/2);var f=i+s*this.visibleI;void 0===this.series[n][l]||null===this.series[n][l]?g=r:(g=r-g/h,u=r-u/h);var p=Math.abs(u-g),x=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:s,y1:g,y2:u,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:c,j:l,w:o});return o.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:p,x:i,y:u,goalY:this.barHelpers.getGoalValues("y",null,r,n,l),barXPosition:f}}},{key:"drawRangeBarPaths",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,goalX:this.barHelpers.getGoalValues("x",l,null,e.realIndex,e.j),y:i}}},{key:"getRangeValue",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}},{key:"getTooltipValues",value:function(t){var e=t.ctx,i=t.seriesIndex,a=t.dataPointIndex,s=t.y1,r=t.y2,o=t.w,n=o.globals.seriesRangeStart[i][a],l=o.globals.seriesRangeEnd[i][a],h=o.globals.labels[a],c=o.config.series[i].name?o.config.series[i].name:"",d=o.config.tooltip.y.formatter,g=o.config.tooltip.y.title.formatter,u={w:o,seriesIndex:i,dataPointIndex:a,start:n,end:l};"function"==typeof g&&(c=g(c,u)),Number.isFinite(s)&&Number.isFinite(r)&&(n=s,l=r,o.config.series[i].data[a].x&&(h=o.config.series[i].data[a].x+":"),"function"==typeof d&&(h=d(h,u)));var f="",p="",x=o.globals.colors[i];if(void 0===o.config.tooltip.x.formatter)if("datetime"===o.config.xaxis.type){var b=new R(e);f=b.formatDate(b.getDate(n),o.config.tooltip.x.format),p=b.formatDate(b.getDate(l),o.config.tooltip.x.format)}else f=n,p=l;else f=o.config.tooltip.x.formatter(n),p=o.config.tooltip.x.formatter(l);return{start:n,end:l,startVal:f,endVal:p,ylabel:h,color:x,seriesName:c}}},{key:"buildCustomTooltipHTML",value:function(t){var e=t.color,i=t.seriesName;return'
    '+(i||"")+'
    '+t.ylabel+' '+t.start+' - '+t.end+"
    "}}]),s}(F),D=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(t){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0;return x.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"candlestick",value:function(){var t=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:5,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-r},background:{enabled:!1},style:{colors:["#fff"]}},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var e=new H(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t):function(t){var e=new H(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"area",value:function(){return{stroke:{width:4,fill:{type:"solid",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"brush",value:function(t){return x.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),"bar"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t}),t}},{key:"convertCatToNumeric",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:"convertCatToNumericXaxis",value:function(t,e,i){t.xaxis.type="numeric",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return x.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return x.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||"dataPoints",t}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"polarArea",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:"_getBoxTooltip",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
    \n '.concat(t.config.series[e].name?t.config.series[e].name:"series-"+(e+1),": ").concat(t.globals.series[e][i],"\n
    "):'
    ')+"
    ".concat(a[0],': ')+r+"
    "+"
    ".concat(a[1],': ')+o+"
    "+(n?"
    ".concat(a[2],': ')+n+"
    ":"")+"
    ".concat(a[3],': ')+l+"
    "+"
    ".concat(a[4],': ')+h+"
    "}}]),t}(),N=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(t){var e=t.responsiveOverride,a=this.opts,s=new L,r=new D(a);this.chartType=a.chart.type,"histogram"===this.chartType&&(a.chart.type="bar",a=x.extend({plotOptions:{bar:{columnWidth:"99.99%"}}},a)),a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&"object"===i(a)){var l={};l=-1!==["line","area","bar","candlestick","boxPlot","rangeBar","histogram","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),a.chart.brush&&a.chart.brush.enabled&&(l=r.brush(l)),a.chart.stacked&&"100%"===a.chart.stackType&&(a=r.stacked100(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},e||(a.xaxis.convertedCatToNumeric=!1),((a=this.checkForCatToNumericXAxis(this.chartType,l,a)).chart.sparkline&&a.chart.sparkline.enabled||window.Apex.chart&&window.Apex.chart.sparkline&&window.Apex.chart.sparkline.enabled)&&(l=r.sparkline(l)),n=x.extend(o,l)}var h=x.extend(n,window.Apex);return o=x.extend(h,a),o=this.handleUserInputErrors(o)}},{key:"checkForCatToNumericXAxis",value:function(t,e,i){var a=new D(i),s=("bar"===t||"boxPlot"===t)&&i.plotOptions&&i.plotOptions.bar&&i.plotOptions.bar.horizontal,r="pie"===t||"polarArea"===t||"donut"===t||"radar"===t||"radialBar"===t||"heatmap"===t,o="datetime"!==i.xaxis.type&&"numeric"!==i.xaxis.type,n=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return s||r||!o||"between"===n||(i=a.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(t,e){var i=new L;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=x.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[x.extend(i.yAxis,t.yaxis)]:t.yaxis=x.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name="series-".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=x.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both."),t}},{key:"extendAnnotations",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:"extendYAxisAnnotations",value:function(t){var e=new L;return t.annotations.yaxis=x.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:"extendXAxisAnnotations",value:function(t){var e=new L;return t.annotations.xaxis=x.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:"extendPointAnnotations",value:function(t){var e=new L;return t.annotations.points=x.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:"checkForDarkTheme",value:function(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.chart.background||(t.chart.background="#424242"),t.theme.palette||(t.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(e.chart.type," chart is not supported.")),e.yaxis[0].reversed=!1),e}}]),t}(),O=function(){function t(){a(this,t)}return r(t,[{key:"initGlobalVars",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRangeBar=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasGroups=!1,t.groups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.xaxisLabelsCount=0,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:"globalVars",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:"init",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=x.extend({},t),e.initialSeries=x.clone(t.series),e.lastXAxis=x.clone(e.initialConfig.xaxis),e.lastYAxis=x.clone(e.initialConfig.yaxis),e}}]),t}(),W=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(){var t=new N(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new O).init(t)}}}]),t}(),B=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return r(t,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var t=this.w.config.series.slice(),e=new E(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new E(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s="boxPlot"===i.chart.type||"boxPlot"===i.series[e].type,r=0;r=5?this.twoDSeries.push(x.parseNumber(t[e].data[r][4])):this.twoDSeries.push(x.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),"datetime"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new R(i),o=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isRangeBar="rangeBar"===a.chart.type&&s.isBarHorizontal,s.hasGroups="category"===a.xaxis.type&&a.xaxis.group.groups.length>0,s.hasGroups&&(s.groups=a.xaxis.group.groups);for(var n=function(){for(var t=0;t0&&(this.twoDSeriesX=o,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var h=t[l].data.map((function(t){return x.parseNumber(t)}));s.series.push(h)}s.seriesZ.push(this.threeDSeries),void 0!==t[l].name?s.seriesNames.push(t[l].name):s.seriesNames.push("series-"+parseInt(l+1,10)),void 0!==t[l].color?s.seriesColors.push(t[l].color):s.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRangeBar.length&&(i.seriesRangeBar.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=i.labels.filter((function(t,e,i){return i.indexOf(t)===e}))),e.xaxis.convertedCatToNumeric)new D(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:"_generateExternalLabels",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},"function"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,"function"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),G=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getLabel",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"12px",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?"":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new V(this.ctx),f=l;o&&(h=u.xLabelFormat(c,l,f,{i:a,dateFormatter:new R(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new R(this.ctx).formatDate,w:n})));var p=function(t){var i=null;return e.forEach((function(t){"month"===t.unit?i="year":"day"===t.unit?i="month":"hour"===t.unit?i="day":"minute"===t.unit&&(i="hour")})),i===t};e.length>0?(g=p(e[a].unit),i=e[a].position,h=e[a].value):"datetime"===n.config.xaxis.type&&void 0===d&&(h=""),void 0===h&&(h=""),h=Array.isArray(h)?h:h.toString();var x=new m(this.ctx),b={};b=n.globals.rotateXLabels&&o?x.getTextRects(h,parseInt(r,10),null,"rotate(".concat(n.config.xaxis.labels.rotate," 0 0)"),!1):x.getTextRects(h,parseInt(r,10));var v=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(0===h.indexOf("NaN")||0===h.toLowerCase().indexOf("invalid")||h.toLowerCase().indexOf("infinity")>=0||s.indexOf(h)>=0&&v)&&(h=""),{x:i,text:h,textRect:b,isBold:g}}},{key:"checkLabelBasedOnTickamount",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return"dataPoints"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=""),e}},{key:"checkForOverflowingLabels",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),"heatmap"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),j=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"scaleSvgNode",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,"width")),a=parseFloat(t.getAttributeNS(null,"height"));t.setAttributeNS(null,"width",i*e),t.setAttributeNS(null,"height",a*e),t.setAttributeNS(null,"viewBox","0 0 "+i+" "+a)}},{key:"fixSvgStringForIe11",value:function(t){if(!x.isIE11())return t.replace(/ /g," ");var e=0,i=t.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g,(function(t){return 2===++e?'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"':t}));return i=(i=i.replace(/xmlns:NS\d+=""/g,"")).replace(/NS\d+:(\w+:\w+=")/g,"$1")}},{key:"getSvgString",value:function(t){null==t&&(t=1);var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:"cleanup",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=t.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,(function(t){t.setAttribute("width",0)})),e&&e[0]&&(e[0].setAttribute("x",-500),e[0].setAttribute("x1",-500),e[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:"image/svg+xml;charset=utf-8"});return URL.createObjectURL(e)}},{key:"dataURI",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement("canvas");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o="transparent"===a.config.chart.background?"#fff":a.config.chart.background,n=r.getContext("2d");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&x.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d="data:image/svg+xml,"+encodeURIComponent(l),g=new Image;g.crossOrigin="anonymous",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL("image/png");i({imgURI:e})}},g.src=d}}))}},{key:"exportToSVG",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,".svg")}},{key:"exportToPng",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+".png"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,".png")}))}},{key:"exportToCSV",value:function(t){var e=this,i=t.series,a=t.columnDelimiter,s=void 0===a?",":a,r=t.lineDelimiter,o=void 0===r?"\n":r,n=this.w;i||(i=n.config.series);var l=[],h=[],c="",d=new B(this.ctx),g=new G(this.ctx),u=function(t){var i="";if(n.globals.axisCharts){if("category"===n.config.xaxis.type||n.config.xaxis.convertedCatToNumeric)if(n.globals.isBarHorizontal){var a=n.globals.yLabelFormatters[0],r=new E(e.ctx).getActiveConfigSeriesIndex();i=a(n.globals.labels[t],{seriesIndex:r,dataPointIndex:t,w:n})}else i=g.getLabel(n.globals.labels,n.globals.timescaleLabels,0,t).text;"datetime"===n.config.xaxis.type&&(n.config.xaxis.categories.length?i=n.config.xaxis.categories[t]:n.config.labels.length&&(i=n.config.labels[t]))}else i=n.config.labels[t];return Array.isArray(i)&&(i=i.join(" ")),x.isNumber(i)?i:i.split(s).join("")};l.push(n.config.chart.toolbar.export.csv.headerCategory),i.map((function(t,e){var i=t.name?t.name:"series-".concat(e);n.globals.axisCharts&&l.push(i.split(s).join("")?i.split(s).join(""):"series-".concat(e))})),n.globals.axisCharts||(l.push(n.config.chart.toolbar.export.csv.headerValue),h.push(l.join(s))),i.map((function(t,e){n.globals.axisCharts?function(t,e){if(l.length&&0===e&&h.push(l.join(s)),t.data&&t.data.length)for(var a=0;a=10?n.config.chart.toolbar.export.csv.dateFormatter(r):x.isNumber(r)?r:r.split(s).join("")));for(var o=0;o0&&!i.globals.isBarHorizontal&&(this.xaxisLabels=i.globals.timescaleLabels.slice()),i.config.xaxis.overwriteCategories&&(this.xaxisLabels=i.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===i.config.xaxis.position?this.offY=0:this.offY=i.globals.gridHeight+1,this.offY=this.offY+i.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===i.config.chart.type&&i.config.plotOptions.bar.horizontal,this.xaxisFontSize=i.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=i.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=i.config.xaxis.labels.style.colors,this.xaxisBorderWidth=i.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=i.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=i.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=i.config.xaxis.axisBorder.height,this.yaxis=i.config.yaxis[0]}return r(t,[{key:"drawXaxis",value:function(){var t=this.w,e=new m(this.ctx),i=e.group({class:"apexcharts-xaxis",transform:"translate(".concat(t.config.xaxis.offsetX,", ").concat(t.config.xaxis.offsetY,")")}),a=e.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,f=l.xaxisForeColors||this.xaxisForeColors,p=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m="category"===d.config.xaxis.type?d.globals.dataPoints:v;if(s){var y=m>1?m-1:m;o=d.globals.gridWidth/y,b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&"dataPoints"!==d.config.xaxis.tickAmount&&"datetime"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(t&&y.text&&d.globals.xaxisLabelsCount++,d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-("top"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:"middle",fontWeight:y.isBold?600:p,fontSize:g,fontFamily:u,foreColor:Array.isArray(f)?t&&d.config.xaxis.convertedCatToNumeric?f[d.globals.minX+s-1]:f[s]:f,isPlainText:!1,cssClass:(t?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+x});if(i.add(k),t){var A=document.createElementNS(d.globals.SVGNS,"title");A.textContent=Array.isArray(y.text)?y.text.join(" "):y.text,k.node.appendChild(A),""!==y.text&&(h.push(y.text),c.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,"top"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new m(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}return r(t,[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new m(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new m(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elForecastMask.setAttribute("id","forecastMask".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elNonForecastMask.setAttribute("id","nonForecastMask".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;("bar"===r||"rangeBar"===r||"candlestick"===r||"boxPlot"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,"#fff");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector("defs");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||"radar"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({x1:i,y1:a,x2:s,y2:r,parent:n});var h=0;if(l.globals.hasGroups&&"between"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&(a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,xAxisTickWidth:t.globals.gridWidth/i}}},{key:"drawGridBands",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:"column"}),h+=i.globals.gridWidth/l}}]),t}(),q=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"niceScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if("dataPoints"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!x.isNumber(t)&&!x.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE){t=0,e=i;var n=this.linearScale(t,e,i);return n}t>e?(console.warn("axis.min cannot be greater than axis.max"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var l=[];o<1&&s&&("candlestick"===r.config.chart.type||"candlestick"===r.config.series[a].type||"boxPlot"===r.config.chart.type||"boxPlot"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var h=i+1;h<2?h=2:h>2&&(h-=2);var c=o/h,d=Math.floor(x.log10(c)),g=Math.pow(10,d),u=Math.round(c/g);u<1&&(u=1);var f=u*g,p=f*Math.floor(t/f),b=f*Math.ceil(e/f),v=p;if(s&&o>2){for(;l.push(v),!((v+=f)>b););return{result:l,niceMin:l[0],niceMax:l[l.length-1]}}var m=t;(l=[]).push(m);for(var y=Math.abs(e-t)/i,w=0;w<=i;w++)m+=y,l.push(m);return l[l.length-2]>=e&&l.pop(),{result:l,niceMin:l[0],niceMax:l[l.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);"dataPoints"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:"logarithmicScaleNice",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,r.logBase),a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase);else if(i!==-Number.MAX_VALUE&&x.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:"setXScale",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&x.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:"setMultipleYScales",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:"sameScaleInMultipleAxes",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o="function"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n="function"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:"autoScaleY",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis is not supported in a multi-yaxis chart."),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var f=o[n];r?(f=u[n],h=c=f,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),rd&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),Z=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.scales=new q(e)}return r(t,[{key:"init",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:"getMinYMaxY",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;"candlestick"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):"boxPlot"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;dh[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return"rangeBar"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),"bar"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){["min","max"].forEach((function(i){void 0!==e.xaxis[i]&&"number"==typeof e.xaxis[i]&&("min"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:"setXRange",value:function(){var t=this.w.globals,e=this.w.config,i="numeric"===e.xaxis.type||"datetime"===e.xaxis.type||"category"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;et.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):"dataPoints"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:"_setStackedMinMax",value:function(){var t=this.w.globals,e=[],i=[];if(t.series.length)for(var a=0;a0?s=s+parseFloat(t.series[o][a])+1e-4:r+=parseFloat(t.series[o][a])),o===t.series.length-1&&(e.push(s),i.push(r));for(var n=0;n=0;b--)x(b);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:"apexcharts-yaxis-title"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:"end",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g=0;d?g++:g--){var u=h[g];u=l(u,g,e);var f=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var p=this.axesUtils.getLabel(h,c,f,g,this.drawnLabels,this.xaxisFontSize);f=p.x,u=p.text,this.drawnLabels.push(p.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=""),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u="")}var x=i.drawText({x:f,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,"title");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(t){var e=this.w,i=new m(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;"bar"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);t.add(r)}}},{key:"inversedYAxisTitleText",value:function(t){var e=this.w,i=new m(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new m(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute("x",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute("transform","rotate(".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(e=x.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));r=x.listToArray(r);var o=s.getBoundingClientRect();"left"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","start")})),a.opposite||s.setAttribute("transform","translate(-".concat(o.width,", 0)"))):"center"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","middle")})),s.setAttribute("transform","translate(".concat(o.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute("text-anchor","end")})),a.opposite&&s.setAttribute("transform","translate(".concat(o.width,", 0)")))}}))}}]),t}(),J=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.documentEvent=x.bind(this.documentEvent,this)}return r(t,[{key:"addEventListener",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:"removeEventListener",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:"fireEvent",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=x.extend(C,i);this.w.globals.locale=a.options}}]),t}(),K=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawAxis",value:function(t,e){var i,a,s=this.w.globals,r=this.w.config,o=new _(this.ctx),n=new $(this.ctx);s.axisCharts&&"radar"!==t&&(s.isBarHorizontal?(a=n.drawYaxisInversed(0),i=o.drawXaxisInversed(0),s.dom.elGraphical.add(i),s.dom.elGraphical.add(a)):(i=o.drawXaxis(),s.dom.elGraphical.add(i),r.yaxis.map((function(t,e){-1===s.ignoreYAxisIndexes.indexOf(e)&&(a=n.drawYaxis(e),s.dom.Paper.add(a))}))))}}]),t}(),tt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawXCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=new v(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,f=s.blur,p=s.color,b=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===r&&(y=e.drawGradient("vertical",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!x.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!x.isNumber(A)||A<0)&&(A=0),w.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:f,color:p,opacity:b})),t.globals.dom.elGraphical.add(w)}}},{key:"drawYCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),t.globals.dom.elGraphical.add(r)}}]),t}(),et=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkResponsiveConfig",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new N({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=x.extend(n,t),t=x.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l0&&"function"==typeof e.config.colors[0]&&(e.globals.colors=e.config.series.map((function(i,a){var s=e.config.colors[a];return s||(s=e.config.colors[0]),"function"==typeof s?(t.isColorFn=!0,s({value:e.globals.axisCharts?e.globals.series[a][0]?e.globals.series[a][0]:0:e.globals.series[a],seriesIndex:a,dataPointIndex:a,w:e})):s})))),e.globals.seriesColors.map((function(t,i){t&&(e.globals.colors[i]=t)})),e.config.theme.monochrome.enabled){var a=[],s=e.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(s=e.globals.series[0].length*e.globals.series.length);for(var r=e.config.theme.monochrome.color,o=1/(s/e.config.theme.monochrome.shadeIntensity),n=e.config.theme.monochrome.shadeTo,l=0,h=0;h2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getLargestStringFromMultiArr",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,u(a));i=e[a.indexOf(s)]}return i}}]),t}(),rt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"getxAxisLabelsCoords",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==e.config.legend.position&&"right"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=x.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new V(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new R(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new R(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||""===String(r).trim())&&(o=r="1");var h=new m(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var t,e=this.w;if(!e.globals.hasGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=x.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new m(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e}),0);return 1.05*(t=new m(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){(function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)})(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c="right"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||"bar"!==s.chart.type&&"candlestick"!==s.chart.type&&"rangeBar"!==s.chart.type&&"boxPlot"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else"datetime"===r?e.dCtx.gridPad.rightString(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var f=e.globals.labels.slice();g=h(g=x.getLargestStringFromArr(f),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,f)}var p=new m(t.dCtx.ctx),b="rotate(".concat(r.labels.rotate," 0 0)"),v=p.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1),y=v;g!==u&&(y=p.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new m(t.dCtx.ctx),r="rotate(".concat(e.title.rotate," 0 0)"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new G(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),nt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"gridPadForColumnsInNumericAxis",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return"bar"===t||"rangeBar"===t||"candlestick"===t||"boxPlot"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:"gridPadFortitleSubtitle",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;["title","subtitle"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||"bottom"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w,a=new G(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new st(this),this.dimYAxis=new ot(this),this.dimXAxis=new rt(this),this.dimGrid=new nt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return r(t,[{key:"plotCoords",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&(e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=g(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;("radar"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||"treemap"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch("top"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case"bottom":i.translateY=c,d();break;case"top":i.translateY=this.lgRect.height+c,d();break;case"left":i.translateY=c,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case"right":i.translateY=c,i.translateX=l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new $(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s="pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case"bottom":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"top":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"left":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case"right":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(t,e,i){var a=this.w,s=a.globals.hasGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&"bottom"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),t}(),ht=function(){function t(e){a(this,t),this.w=e.w,this.lgCtx=e}return r(t,[{key:"getLegendStyles",value:function(){var t=document.createElement("style");t.setAttribute("type","text/css");var e=document.createTextNode("\t\n \t\n .apexcharts-legend {\t\n display: flex;\t\n overflow: auto;\t\n padding: 0 10px;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\t\n flex-wrap: wrap\t\n }\t\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n flex-direction: column;\t\n bottom: 0;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n justify-content: flex-start;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\t\n justify-content: center; \t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\t\n justify-content: flex-end;\t\n }\t\n .apexcharts-legend-series {\t\n cursor: pointer;\t\n line-height: normal;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\t\n display: flex;\t\n align-items: center;\t\n }\t\n .apexcharts-legend-text {\t\n position: relative;\t\n font-size: 14px;\t\n }\t\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n pointer-events: none;\t\n }\t\n .apexcharts-legend-marker {\t\n position: relative;\t\n display: inline-block;\t\n cursor: pointer;\t\n margin-right: 3px;\t\n border-style: solid;\n }\t\n \t\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\t\n display: inline-block;\t\n }\t\n .apexcharts-legend-series.apexcharts-no-click {\t\n cursor: auto;\t\n }\t\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n display: none !important;\t\n }\t\n .apexcharts-inactive-legend {\t\n opacity: 0.45;\t\n }");return t.appendChild(e),t}},{key:"getLegendBBox",value:function(){var t=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:"appendToForeignObject",value:function(){var t=this.w.globals;t.dom.elLegendForeign=document.createElementNS(t.SVGNS,"foreignObject");var e=t.dom.elLegendForeign;e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("width",t.svgWidth),e.setAttribute("height",t.svgHeight),t.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),e.appendChild(t.dom.elLegendWrap),e.appendChild(this.getLegendStyles()),t.dom.Paper.node.insertBefore(e,t.dom.elGraphical.node)}},{key:"toggleDataSeries",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||"radialBar"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t+1,"'] path")),n=a.config.chart.type;if("pie"===n||"polarArea"===n||"donut"===n){var l=a.config.plotOptions.pie.donut.labels;new m(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire("click")}}},{key:"hideSeries",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=x.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l0){for(var r=0;r-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),ct=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed="bar"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new ht(this)}return r(t,[{key:"init",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),x.isIE11()?document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"drawLegends",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if("heatmap"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+" - "+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h=o(a[l],{seriesIndex:l,w:e}),c=!1,d=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g0)for(var u=0;u0?l-10:0)+(h>0?h-10:0)}a.style.position="absolute",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=o+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px");["width","height"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+"px")}))}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.baseEl.querySelector(".apexcharts-legend").style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new lt(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;"bottom"===t.config.legend.position?r=-e.clwh/1.8:"top"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new E(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains("apexcharts-inactive-legend")&&i&&new E(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:"onLegendClick",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(t.target.getAttribute("rel"),10)-1,a="true"===t.target.getAttribute("data:collapsed"),s=this.w.config.chart.events.legendClick;"function"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;"function"==typeof r&&t.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),"treemap"!==e.config.chart.type&&"heatmap"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),dt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=i.globals.minX,this.maxX=i.globals.maxX}return r(t,[{key:"createToolbar",value:function(){var t=this,e=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=e.config.chart.toolbar.offsetY+"px",a.style.right=3-e.config.chart.toolbar.offsetX+"px",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\n \n \n\n'),o("zoomOut",this.elZoomOut,'\n \n \n\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:"zoom"===i?t.elZoom:t.elSelection,icon:"string"==typeof t.t[i]?t.t[i]:"zoom"===i?'\n \n \n \n':'\n \n \n',title:t.localeValues["zoom"===i?"selectionZoom":"selection"],class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(i,"-icon")})};n("zoom"),n("selection"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:"string"==typeof this.t.pan?this.t.pan:'\n \n \n \n \n \n \n \n',title:this.localeValues.pan,class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),o("reset",this.elZoomReset,'\n \n \n'),this.t.download&&r.push({el:this.elMenuIcon,icon:"string"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var l=0;l0&&e.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:"translate("+o+", "+l+")"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":h.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":h.config.chart.zoom.zoomedArea.stroke.opacity}),m.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,"fill-opacity":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,"stroke-width":h.config.chart.selection.stroke.width,"stroke-dasharray":h.config.chart.selection.stroke.dashArray,"stroke-opacity":h.config.chart.selection.stroke.opacity}),m.setAttrs(d.node,g))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g="x"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:"y"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging("resizing"),g}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;"resizing"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n("x"),y:n("y"),width:n("width"),height:n("height")};a.globals.selection=l,"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=x.clone(a.globals.initialConfig.yaxis),f=x.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),"xy"!==i&&"x"!==i||(f={min:h,max:c}),"xy"!==i&&"y"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var p=new q(s.ctx);u=p.autoScaleY(s.ctx,u,{xaxis:f})}if(o){var b=o.getBeforeZoomRange(f,u);b&&(f=b.xaxis?b.xaxis:f,u=b.yaxis?b.yaxis:u)}var v={xaxis:f};a.config.chart.group||(v.yaxis=u),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&o.zoomCallback(f,u)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:c},"xy"!==i&&"y"!==i||(y=x.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:"panDragging",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection="left":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection="right":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection="up":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection="down")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:"delayedPanScrolled",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;"left"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):"right"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:"panScrolled",value:function(t,e){var i=this.w,a=this.xyRatios,s=x.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),"left"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):"right"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new q(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:"updateScrolledChart",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(dt),ut=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return r(t,[{key:"getNearestValues",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):r.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):r.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var f=Math.round(g/h),p=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(f=Math.ceil(g/h),f-=1);var b=null,v=null,m=[],y=[];if(r.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),r.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);b=(v=this.closestInMultiArray(k,A,m,y)).index,f=v.j,null!==b&&(m=r.globals.seriesXvalues[b],f=(v=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===b?-1:b,(!f||f<1)&&(f=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=p:r.globals.capturedDataPointIndex=f,{capturedSeries:b,j:r.globals.isBarHorizontal?p:f,hoverX:g,hoverY:u}}},{key:"closestInMultiArray",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a0?e:-1})),s=0;s0)for(var a=0;ai?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(".apexcharts-marker"))})),e}},{key:"hasMarkers",value:function(){return this.getElMarkers().length>0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(i.attrs.name,"
    "),e+="
    ".concat(i.val,"
    ")})),v.innerHTML=t+"
    ",m.innerHTML=e+"
    "};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML="",m.innerHTML=""):y()}else v.innerHTML="",m.innerHTML="";null!==f&&(a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=l.config.tooltip.z.title,a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=void 0!==f?f:"");o&&p[0]&&(null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?p[0].parentNode.style.display="none":p[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:"toggleActiveInactiveSeries",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("apexcharts-active"),i.style.display=e.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",o="",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&"treemap"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var d=r;a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?r=new V(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new R(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o="function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(" "):l,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(o)?o.join(" "):o,zVal:n}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),pt=function(){function t(e){a(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return r(t,[{key:"moveXCrosshairs",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&m.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&m.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("apexcharts-active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid(),d=c.getBoundingClientRect();h=s.e.clientY+a.globals.translateY-d.top-o.ttHeight/2}else a.globals.isBarHorizontal||(o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY),h<0&&(h=0));isNaN(l)||(l+=a.globals.translateX,r.style.left=l+"px",r.style.top=h+"px")}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),r=0;r0&&(h.setAttribute("r",n),h.setAttribute("cx",i),h.setAttribute("cy",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:"moveDynamicPointsOnHover",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new E(this.ctx).getActiveConfigSeriesIndex(!0);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h0?(l[h]&&l[h].setAttribute("r",n),l[h]&&l[h].setAttribute("cy",d)):l[h]&&l[h].setAttribute("r",0)}}if(this.moveXCrosshairs(s),!i.fixedTooltip){var g=r||a.globals.gridHeight;this.moveTooltip(s,g,n)}}},{key:"moveStickyTooltipOverBars",value:function(t){var e=this.w,i=this.ttCtx,a=e.globals.columnSeries?e.globals.columnSeries.length:e.globals.series.length,s=a>=2&&a%2==0?Math.floor(a/2):Math.floor(a/2)+1;e.globals.isBarHorizontal&&(s=new E(this.ctx).getActiveConfigSeriesIndex(!1,"desc")+1);var r=e.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(s,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"']")),o=r?parseFloat(r.getAttribute("cx")):0,n=r?parseFloat(r.getAttribute("cy")):0,l=r?parseFloat(r.getAttribute("barWidth")):0,h=r?parseFloat(r.getAttribute("barHeight")):0,c=i.getElGrid().getBoundingClientRect(),d=r.classList.contains("apexcharts-candlestick-area")||r.classList.contains("apexcharts-boxPlot-area");if(e.globals.isXNumeric?(r&&!d&&(o-=a%2!=0?l/2:0),r&&d&&e.globals.comboCharts&&(o-=l/2)):e.globals.isBarHorizontal||(o=i.xAxisTicksPositions[t-1]+i.dataPointsDividedWidth/2,isNaN(o)&&(o=i.xAxisTicksPositions[t]-i.dataPointsDividedWidth/2)),e.globals.isBarHorizontal?(n>e.globals.gridHeight/2&&(n-=i.tooltipRect.ttHeight),(n=n+e.config.grid.padding.top+h/3)+h>e.globals.gridHeight&&(n=e.globals.gridHeight-h)):e.config.tooltip.followCursor?n=i.e.clientY-c.top-i.tooltipRect.ttHeight/2:n+i.tooltipRect.ttHeight+15>e.globals.gridHeight&&(n=e.globals.gridHeight),n<-10&&(n=-10),e.globals.isBarHorizontal||this.moveXCrosshairs(o),!i.fixedTooltip){var g=n||e.globals.gridHeight;this.moveTooltip(o,g)}}}]),t}(),xt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new pt(e)}return r(t,[{key:"drawDynamicPoints",value:function(){var t=this.w,e=new m(this.ctx),i=new T(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=u(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute("data:realIndex"))-parseFloat(e.getAttribute("data:realIndex"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute("cx"),o=e.getAttribute("cy");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if("radar"===s.config.chart.type){var n=this.ttCtx.getElGrid(),l=n.getBoundingClientRect();r=this.ttCtx.e.clientX-l.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),o=e.config.markers.hover.size,n=0;n=0?t[e].setAttribute("r",i):t[e].setAttribute("r",0)}}}]),t}(),bt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e}return r(t,[{key:"getAttr",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:"handleHeatTreeTooltip",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains("apexcharts-".concat(r,"-rect"))){var l=this.getAttr(e,"i"),h=this.getAttr(e,"j"),c=this.getAttr(e,"cx"),d=this.getAttr(e,"cy"),g=this.getAttr(e,"width"),u=this.getAttr(e,"height");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var f=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-f.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-f.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx"),10),c=parseInt(s.paths.getAttribute("cy"),10),d=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,l.intersect){var g=x.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),"mouseup"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)?c=r.globals.svgHeight-o.tooltipRect.ttHeight:c<0&&(c=0);var f=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),p=r.globals.isMultipleYAxis?r.config.yaxis[f]&&r.config.yaxis[f].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!p?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(p&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),!p||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),o.tooltipRect.ttHeight+c>r.globals.gridHeight?c=r.globals.gridHeight-o.tooltipRect.ttHeight+r.globals.translateY:(c=c+r.globals.translateY-o.tooltipRect.ttHeight/2)<0&&(c=0),n.style.left=h+r.globals.translateX+"px",n.style.top=c+"px")}},{key:"getBarTooltipXY",value:function(t){var e=t.e,i=t.opt,a=this.w,s=null,r=this.ttCtx,o=0,n=0,l=0,h=0,c=0,d=e.target.classList;if(d.contains("apexcharts-bar-area")||d.contains("apexcharts-candlestick-area")||d.contains("apexcharts-boxPlot-area")||d.contains("apexcharts-rangebar-area")){var g=e.target,u=g.getBoundingClientRect(),f=i.elGrid.getBoundingClientRect(),p=u.height;c=u.height;var x=u.width,b=parseInt(g.getAttribute("cx"),10),v=parseInt(g.getAttribute("cy"),10);h=parseFloat(g.getAttribute("barWidth"));var m="touchmove"===e.type?e.touches[0].clientX:e.clientX;s=parseInt(g.getAttribute("j"),10),o=parseInt(g.parentNode.getAttribute("rel"),10)-1;var y=g.getAttribute("data-range-y1"),w=g.getAttribute("data-range-y2");a.globals.comboCharts&&(o=parseInt(g.parentNode.getAttribute("data:realIndex"),10)),r.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:o,j:s,y1:y?parseInt(y,10):null,y2:w?parseInt(w,10):null,shared:!r.showOnIntersect&&a.config.tooltip.shared,e:e}),a.config.tooltip.followCursor?a.globals.isBarHorizontal?(n=m-f.left+15,l=v-r.dataPointsDividedHeight+p/2-r.tooltipRect.ttHeight/2):(n=a.globals.isXNumeric?b-x/2:b-r.dataPointsDividedWidth+x/2,l=e.clientY-f.top-r.tooltipRect.ttHeight/2-15):a.globals.isBarHorizontal?((n=b)0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),mt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.tConfig=i.config.tooltip,this.tooltipUtil=new ut(this),this.tooltipLabels=new ft(this),this.tooltipPosition=new pt(this),this.marker=new xt(this),this.intersect=new bt(this),this.axesTooltip=new vt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!i.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return r(t,[{key:"getElTooltip",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip"):null}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new _(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&"rangeBar"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement("div");o.classList.add("apexcharts-tooltip-series-group"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add("apexcharts-tooltip-series-group-hidden");var n=document.createElement("span");n.classList.add("apexcharts-tooltip-marker"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement("div");l.classList.add("apexcharts-tooltip-text"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,["y","goals","z"].forEach((function(t){var e=document.createElement("div");e.classList.add("apexcharts-tooltip-".concat(t,"-group"));var i=document.createElement("span");i.classList.add("apexcharts-tooltip-text-".concat(t,"-label")),e.appendChild(i);var a=document.createElement("span");a.classList.add("apexcharts-tooltip-text-".concat(t,"-value")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf("right")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf("bottom")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+"px",e.style.top=o+"px",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:"seriesHover",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:"seriesHoverByContext",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip();if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new E(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:"axisChartsTooltips",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n="touchmove"===a.type?a.touches[0].clientX:a.clientX,l="touchmove"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,lo.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if("mousemove"===a.type||"touchmove"===a.type||"mouseup"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add("apexcharts-active");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add("apexcharts-active"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if("heatmap"===r.config.chart.type||"treemap"===r.config.chart.type){var f=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=f.x,i=f.y,c.style.left=e+"px",c.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var p=0;pl.width?this.handleMouseOut(a):null!==n?this.handleStickyCapturedSeries(t,n,a,o):(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal)&&this.create(t,this,0,o,a.ttItems)}},{key:"handleStickyCapturedSeries",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);void 0!==s.globals.series[e][a]?this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1):this.tooltipUtil.isXoverlap(a)&&this.create(t,this,0,a,i.ttItems)}},{key:"deactivateHoverFilter",value:function(){for(var t=this.w,e=new m(this.ctx),i=t.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,o=this.w,n=e;"mouseup"===t.type&&this.markerClick(t,i,a),null===r&&(r=this.tConfig.shared);var l=this.tooltipUtil.hasMarkers(),h=this.tooltipUtil.getElBars();if(o.config.legend.tooltipHoverFormatter){var c=o.config.legend.tooltipHoverFormatter,d=Array.from(this.legendLabels);d.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}));for(var g=0;g0?n.marker.enlargePoints(a):n.tooltipPosition.moveDynamicPointsOnHover(a)),this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(h),this.barSeriesHeight>0)){var b=new m(this.ctx),v=o.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a);for(var y=0;y0&&(this.totalItems+=t[o].length);for(var n=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),l=0,h=0,c=function(r,o){var c=void 0,d=void 0,g=void 0,u=void 0,f=[],p=[],b=s.globals.comboCharts?i[r]:r;a.yRatio.length>1&&(a.yaxisIndex=b),a.isReversed=s.config.yaxis[a.yaxisIndex]&&s.config.yaxis[a.yaxisIndex].reversed;var v=a.graphics.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[b]),rel:r+1,"data:realIndex":b});a.ctx.series.addCollapsedClassToSeries(v,b);var m=a.graphics.group({class:"apexcharts-datalabels","data:realIndex":b}),y=0,w=0,k=a.initialPositions(l,h,c,d,g,u);h=k.y,y=k.barHeight,d=k.yDivision,u=k.zeroW,l=k.x,w=k.barWidth,c=k.xDivision,g=k.zeroH,a.yArrj=[],a.yArrjF=[],a.yArrjVal=[],a.xArrj=[],a.xArrjF=[],a.xArrjVal=[],1===a.prevY.length&&a.prevY[0].every((function(t){return isNaN(t)}))&&(a.prevY[0]=a.prevY[0].map((function(t){return g})),a.prevYF[0]=a.prevYF[0].map((function(t){return 0})));for(var A=0;A1?(i=l.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:n*parseInt(l.config.plotOptions.bar.columnWidth,10)/100,s=this.baseLineY[this.yaxisIndex]+(this.isReversed?l.globals.gridHeight:0)-(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=l.globals.padHorizontal+(i-n)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:o,barWidth:n,zeroH:s,zeroW:r}}},{key:"drawStackedBarPaths",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=n,g=i.i,u=i.j,f=0,p=0;p0){var x=r;this.prevXVal[g-1][u]<0?x=this.series[g][u]>=0?this.prevX[g-1][u]+f-2*(this.isReversed?f:0):this.prevX[g-1][u]:this.prevXVal[g-1][u]>=0&&(x=this.series[g][u]>=0?this.prevX[g-1][u]:this.prevX[g-1][u]-f+2*(this.isReversed?f:0)),e=x}else e=r;o=null===this.series[g][u]?e:e+this.series[g][u]/this.invertedYRatio-2*(this.isReversed?this.series[g][u]/this.invertedYRatio:0);var b=this.barHelpers.getBarpaths({barYPosition:d,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return this.barHelpers.barBackground({j:u,i:g,y1:d,y2:a,elSeries:h}),n+=l,{pathTo:b.pathTo,pathFrom:b.pathFrom,x:o,y:n}}},{key:"drawStackedColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH;t.strokeWidth;var n=t.elSeries,l=this.w,h=e.i,c=e.j,d=e.bc;if(l.globals.isXNumeric){var g=l.globals.seriesX[h][c];g||(g=0),i=(g-l.globals.minX)/this.xRatio-r/2}for(var u,f=i,p=0,x=0;x0&&!l.globals.isXNumeric||h>0&&l.globals.isXNumeric&&l.globals.seriesX[h-1][c]===l.globals.seriesX[h][c]){var b,v,m=Math.min(this.yRatio.length+1,h+1);if(void 0!==this.prevY[h-1])for(var y=1;y=0?v-p+2*(this.isReversed?p:0):v;break}if(this.prevYVal[h-w][c]>=0){b=this.series[h][c]>=0?v:v+p-2*(this.isReversed?p:0);break}}void 0===b&&(b=l.globals.gridHeight),u=this.prevYF[0].every((function(t){return 0===t}))&&this.prevYF.slice(1,h).every((function(t){return t.every((function(t){return isNaN(t)}))}))?l.globals.gridHeight-o:b}else u=l.globals.gridHeight-o;a=u-this.series[h][c]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[h][c]/this.yRatio[this.yaxisIndex]:0);var k=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:r,y1:u,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,realIndex:e.realIndex,i:h,j:c,w:l});return this.barHelpers.barBackground({bc:d,j:c,i:h,x1:f,x2:r,elSeries:n}),i+=s,{pathTo:k.pathTo,pathFrom:k.pathFrom,x:l.globals.isXNumeric?i-s:i,y:a}}}]),s}(F),wt=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this,s=this.w,r=new m(this.ctx),o=new M(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=s.config.plotOptions.bar.horizontal;var n=new y(this.ctx,s);t=n.getLogSeries(t),this.series=t,this.yRatio=n.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var l=r.group({class:"apexcharts-".concat(s.config.chart.type,"-series apexcharts-plot-series")}),h=function(n){a.isBoxPlot="boxPlot"===s.config.chart.type||"boxPlot"===s.config.series[n].type;var h,c,d,g,u=void 0,f=void 0,p=[],b=[],v=s.globals.comboCharts?i[n]:n,m=r.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[v]),rel:n+1,"data:realIndex":v});a.ctx.series.addCollapsedClassToSeries(m,v),t[n].length>0&&(a.visibleI=a.visibleI+1);var y,w;a.yRatio.length>1&&(a.yaxisIndex=v);var k=a.barHelpers.initialPositions();f=k.y,y=k.barHeight,c=k.yDivision,g=k.zeroW,u=k.x,w=k.barWidth,h=k.xDivision,d=k.zeroH,b.push(u+w/2);for(var A=r.group({class:"apexcharts-datalabels","data:realIndex":v}),S=function(i){var r=a.barHelpers.getStrokeWidth(n,i,v),l=null,x={indexes:{i:n,j:i,realIndex:v},x:u,y:f,strokeWidth:r,elSeries:m};l=a.isHorizontal?a.drawHorizontalBoxPaths(e(e({},x),{},{yDivision:c,barHeight:y,zeroW:g})):a.drawVerticalBoxPaths(e(e({},x),{},{xDivision:h,barWidth:w,zeroH:d})),f=l.y,u=l.x,i>0&&b.push(u+w/2),p.push(f),l.pathTo.forEach((function(e,h){var c=!a.isBoxPlot&&a.candlestickOptions.wick.useFillColor?l.color[h]:s.globals.stroke.colors[n],d=o.fillPath({seriesNumber:v,dataPointIndex:i,color:l.color[h],value:t[n][i]});a.renderSeries({realIndex:v,pathFill:d,lineFill:c,j:i,i:n,pathFrom:l.pathFrom,pathTo:e,strokeWidth:r,elSeries:m,x:u,y:f,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:A,visibleSeries:a.visibleI,type:s.config.chart.type})}))},C=0;Cb.c&&(d=!1);var w=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/p,k=r-k/p,v=r-b.h/p,y=r-b.l/p,A=r-b.m/p);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+"z"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?f:d?[g]:[u]}}},{key:"drawHorizontalBoxPaths",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,f=this.getOHLCValue(u,c),p=r,x=r,b=Math.min(f.o,f.c),v=Math.max(f.o,f.c),y=f.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,p=r+f.h/g,x=r+f.l/g,y=r+f.m/g);var k=l.move(r,w),A=l.move(b,w+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,w)+l.line(b,w+s/2)+l.line(p,w+s/2)+l.line(p,w+s/2-s/4)+l.line(p,w+s/2+s/4)+l.line(p,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(b+o/2,w),l.move(y,w)+l.line(y,w+s)+l.line(v,w+s)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s-s/4)+l.line(x,w+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w)+l.line(y,w)+"z"],A+=l.move(b,w),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:w,color:d}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(F),kt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkColorRange",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:"getShadeColor",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,"treemap"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new x;return s.config.plotOptions[t].enableShades&&(l="dark"===this.w.config.theme.mode?x.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):x.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:"determineColor",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&"treemap"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,u(a.globals.series[e])),c=Math.max.apply(Math,u(a.globals.series[e]));r.distributed||"heatmap"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:"calculateDataLabels",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new m(this.ctx),c=new z(this.ctx),d=null;if(l.enabled){d=h.group({class:"apexcharts-data-labels"});var g=l.offsetX,u=l.offsetY,f=i+g,p=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:f,y:p,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:"addListeners",value:function(t){var e=new m(this.ctx);t.node.addEventListener("mouseenter",e.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",e.pathMouseLeave.bind(this,t)),t.node.addEventListener("mousedown",e.pathMouseDown.bind(this,t))}}]),t}(),At=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.xRatio=i.xRatio,this.yRatio=i.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new kt(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return r(t,[{key:"draw",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(e.globals.cuid,")"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:x.escapeString(e.globals.seriesNames[h]),rel:h+1,"data:realIndex":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new v(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,f=0;f-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+"%";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),f=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),p=a>180?1:0,b=["M",h,c,"A",s,s,0,p,1,d,g];return"donut"===e.chartType?[].concat(b,["L",u.x,u.y,"A",e.donutSize,e.donutSize,0,p,0,f.x,f.y,"L",h,c,"z"]).join(" "):"pie"===e.chartType||"polarArea"===e.chartType?[].concat(b,["L",e.centerX,e.centerY,"L",h,c]).join(" "):[].concat(b).join(" ")}},{key:"drawPolarElements",value:function(t){var e=this.w,i=new q(this.ctx),a=new m(this.ctx),s=new St(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,r),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==r&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),Lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var i=this.w;this.graphics=new m(this.ctx),this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=i.globals.svgHeight0&&(p=i.getPreviousPath(n));for(var b=0;b=10?t.x>0?(i="start",a+=10):t.x<0&&(i="end",a-=10):i="middle",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:"",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var f=h.dropShadow;s.dropShadow(u,f)}l.add(u),u.attr("id","apexcharts-radialbarTrack-"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new m(this.ctx),a=new M(this.ctx),s=new v(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),"back"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var f=!1;e.config.plotOptions.radialBar.inverseOrder&&(f=!0);for(var p=f?t.series.length-1:0;f?p>=0:p100?100:t.series[p])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*x.negToZero(e.globals.previousPaths[p])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var L=S-w,P=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[p]:e.config.stroke.dashArray,T=i.drawPath({d:"",stroke:y,strokeWidth:o,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+p,strokeDashArray:P});if(m.setAttrs(T.node,{"data:angle":L,"data:value":t.series[p]}),e.config.chart.dropShadow.enabled){var I=e.config.chart.dropShadow;s.dropShadow(T,I,p)}s.setSelectionFilter(T,0,p),this.addListeners(T,this.radialDataLabels),b.add(T),T.attr({index:0,j:p});var z=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(z=e.config.chart.animations.speed),e.globals.dataChanged&&(z=e.config.chart.animations.dynamicAnimation.speed),this.animDur=z/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(T,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:p,totalItems:2,animBeginArr:this.animBeginArr,dur:z,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:"drawHollow",value:function(t){var e=new m(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,r=new M(this.ctx),o=x.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:"pattern".concat(s.globals.cuid).concat(o)}),a="url(#pattern".concat(s.globals.cuid).concat(o,")");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),i}(Ct),Mt=function(){function t(e){a(this,t),this.w=e.w,this.lineCtx=e}return r(t,[{key:"sameValueSeriesFix",value:function(t,e){var i=this.w;if("line"===i.config.chart.type&&("gradient"===i.config.fill.type||"gradient"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:"calculatePoints",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(x.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:"checkPreviousPaths",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&("line"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):"area"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e=t.i,i=t.series,a=t.prevY,s=t.lineYPosition,r=this.w;if(void 0!==i[e][0])a=(s=r.config.chart.stacked&&e>0?this.lineCtx.prevSeriesY[e-1][0]:this.lineCtx.zeroY)-i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(r.config.chart.stacked&&e>0&&void 0===i[e][0])for(var o=e-1;o>=0;o--)if(null!==i[o][0]&&void 0!==i[o][0]){a=s=this.lineCtx.prevSeriesY[o][0];break}return{prevY:a,lineYPosition:s}}}]),t}(),Tt=function(){function t(e,i,s){a(this,t),this.ctx=e,this.w=e.w,this.xyRatios=i,this.pointsChart=!("bubble"!==this.w.config.chart.type&&"scatter"!==this.w.config.chart.type)||s,this.scatter=new I(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Mt(this),this.markers=new T(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return r(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=a.globals.comboCharts?e:a.config.chart.type,o=s.group({class:"apexcharts-".concat(r,"-series apexcharts-plot-series")}),n=new y(this.ctx,a);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=n.getLogSeries(t),this.yRatio=n.getLogYRatios(this.yRatio);for(var l=[],h=0;h0&&(u=(a.globals.seriesX[c][0]-a.globals.minX)/this.xRatio),g.push(u);var f,p=u,x=p,b=this.zeroY;b=this.lineHelpers.determineFirstPrevY({i:h,series:t,prevY:b,lineYPosition:0}).prevY,d.push(b),f=b;var v=this._calculatePathsFrom({series:t,i:h,realIndex:c,prevX:x,prevY:b}),w=this._iterateOverDataPoints({series:t,realIndex:c,i:h,x:u,y:1,pX:p,pY:f,pathsFrom:v,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:g,yArrj:d});this._handlePaths({type:r,realIndex:c,i:h,paths:w}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),l.push(this.elSeries)}if(a.config.chart.stacked)for(var k=l.length;k>0;k--)o.add(l[k-1]);else for(var A=0;A1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||"end"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",seriesName:x.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":r,rel:e+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(t){var e,i,a,s,r=t.series,o=t.i,n=t.realIndex,l=t.prevX,h=t.prevY,c=this.w,d=new m(this.ctx);if(null===r[o][0]){for(var g=0;g0){var u=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:n});a=u.pathFromLine,s=u.pathFromArea}return{prevX:l,prevY:h,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(t){var i=t.type,a=t.realIndex,s=t.i,r=t.paths,o=this.w,n=new m(this.ctx),l=new M(this.ctx);this.prevSeriesY.push(r.yArrj),o.globals.seriesXvalues[a]=r.xArrj,o.globals.seriesYvalues[a]=r.yArrj;var h=o.config.forecastDataPoints;if(h.count>0){var c=o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length-h.count-1],d=n.drawRect(c,0,o.globals.gridWidth,o.globals.gridHeight,0);o.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,o.globals.gridHeight,0);o.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||o.globals.delayedElements.push({el:this.elPointsMain.node,index:a});var u={i:s,realIndex:a,animationDelay:s,initialSpeed:o.config.chart.animations.speed,dataChangeSpeed:o.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(i)};if("area"===i)for(var f=l.fillPath({seriesNumber:a}),p=0;p0){var A=n.renderPaths(w);A.node.setAttribute("stroke-dasharray",h.dashArray),h.strokeWidth&&A.node.setAttribute("stroke-width",h.strokeWidth),this.elSeries.add(A),A.attr("clip-path","url(#forecastMask".concat(o.globals.cuid,")")),k.attr("clip-path","url(#nonForecastMask".concat(o.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(t){for(var e=t.series,i=t.realIndex,a=t.i,s=t.x,r=t.y,o=t.pX,n=t.pY,l=t.pathsFrom,h=t.linePaths,c=t.areaPaths,d=t.seriesIndex,g=t.lineYPosition,u=t.xArrj,f=t.yArrj,p=this.w,b=new m(this.ctx),v=this.yRatio,y=l.prevY,w=l.linePath,k=l.areaPath,A=l.pathFromLine,S=l.pathFromArea,C=x.isNumber(p.globals.minYArr[i])?p.globals.minYArr[i]:p.globals.minY,L=p.globals.dataPoints>1?p.globals.dataPoints-1:p.globals.dataPoints,P=0;P0&&p.globals.collapsedSeries.length-1){e--;break}return e>=0?e:0}(a-1)][P+1]}else g=this.zeroY;else g=this.zeroY;r=M?g-C/v[this.yaxisIndex]+2*(this.isReversed?C/v[this.yaxisIndex]:0):g-e[a][P+1]/v[this.yaxisIndex]+2*(this.isReversed?e[a][P+1]/v[this.yaxisIndex]:0),u.push(s),f.push(r);var I=this.lineHelpers.calculatePoints({series:e,x:s,y:r,realIndex:i,i:a,j:P,prevY:y}),z=this._createPaths({series:e,i:a,realIndex:i,j:P,x:s,y:r,pX:o,pY:n,linePath:w,areaPath:k,linePaths:h,areaPaths:c,seriesIndex:d});c=z.areaPaths,h=z.linePaths,o=z.pX,n=z.pY,k=z.areaPath,w=z.linePath,this.appendPathFrom&&(A+=b.line(s,this.zeroY),S+=b.line(s,this.zeroY)),this.handleNullDataPoints(e,I,a,P,i),this._handleMarkersAndLabels({pointsPos:I,series:e,x:s,y:r,prevY:y,i:a,j:P,realIndex:i})}return{yArrj:f,xArrj:u,pathFromArea:S,areaPaths:c,pathFromLine:A,linePaths:h}}},{key:"_handleMarkersAndLabels",value:function(t){var e=t.pointsPos;t.series,t.x,t.y,t.prevY;var i=t.i,a=t.j,s=t.realIndex,r=this.w,o=new z(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,a,{realIndex:s,pointsPos:e,zRatio:this.zRatio,elParent:this.elPointsMain});else{r.globals.series[i].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var n=this.markers.plotChartMarkers(e,s,a+1);null!==n&&this.elPointsMain.add(n)}var l=o.drawDataLabel(e,s,a+1,null);null!==l&&this.elDataLabelsWrap.add(l)}},{key:"_createPaths",value:function(t){var e=t.series,i=t.i,a=t.realIndex,s=t.j,r=t.x,o=t.y,n=t.pX,l=t.pY,h=t.linePath,c=t.areaPath,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,f=this.w,p=new m(this.ctx),x=f.config.stroke.curve,b=this.areaBottomY;if(Array.isArray(f.config.stroke.curve)&&(x=Array.isArray(u)?f.config.stroke.curve[u[i]]:f.config.stroke.curve[i]),"smooth"===x){var v=.35*(r-n);f.globals.hasNullValues?(null!==e[i][s]&&(null!==e[i][s+1]?(h=p.move(n,l)+p.curve(n+v,l,r-v,o,r+1,o),c=p.move(n+1,l)+p.curve(n+v,l,r-v,o,r+1,o)+p.line(r,b)+p.line(n,b)+"z"):(h=p.move(n,l),c=p.move(n,l)+"z")),d.push(h),g.push(c)):(h+=p.curve(n+v,l,r-v,o,r,o),c+=p.curve(n+v,l,r-v,o,r,o)),n=r,l=o,s===e[i].length-2&&(c=c+p.curve(n,l,r,o,r,b)+p.move(r,o)+"z",f.globals.hasNullValues||(d.push(h),g.push(c)))}else{if(null===e[i][s+1]){h+=p.move(r,o);var y=f.globals.isXNumeric?(f.globals.seriesX[a][s]-f.globals.minX)/this.xRatio:r-this.xDivision;c=c+p.line(y,b)+p.move(r,o)+"z"}null===e[i][s]&&(h+=p.move(r,o),c+=p.move(r,b)),"stepline"===x?(h=h+p.line(r,null,"H")+p.line(null,o,"V"),c=c+p.line(r,null,"H")+p.line(null,o,"V")):"straight"===x&&(h+=p.line(r,o),c+=p.line(r,o)),s===e[i].length-2&&(c=c+p.line(r,b)+p.move(r,o)+"z",d.push(h),g.push(c))}return{linePaths:d,areaPaths:g,pX:n,pY:l,linePath:h,areaPath:c}}},{key:"handleNullDataPoints",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){return o=void 0===o?0:o,n=void 0===n?0:n,function(t){var e,i,a=[];for(e=0;e=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;er-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(-90 ".concat(h.x," ").concat(h.y,")"))}}},{key:"animateTreemap",value:function(t,e,i,a){var s=new b(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Et=86400,Yt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return r(t,[{key:"calculateTimeScaleTicks",value:function(t,i){var a=this,s=this.w;if(s.globals.allSeriesCollapsed)return s.globals.labels=[],s.globals.timescaleLabels=[],[];var r=new R(this.ctx),o=(i-t)/864e5;this.determineInterval(o),s.globals.disableZoomIn=!1,s.globals.disableZoomOut=!1,o<.00011574074074074075?s.globals.disableZoomIn=!0:o>5e4&&(s.globals.disableZoomOut=!0);var n=r.getTimeUnitsfromTimestamp(t,i,this.utc),l=s.globals.gridWidth/o,h=l/24,c=h/60,d=c/60,g=Math.floor(24*o),u=Math.floor(1440*o),f=Math.floor(o*Et),p=Math.floor(o),x=Math.floor(o/30),b=Math.floor(o/365),v={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:f,numberOfMinutes:u,numberOfHours:g,numberOfDays:p,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case"years":this.generateYearScale(m);break;case"months":case"half_year":this.generateMonthScale(m);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(m);break;case"hours":this.generateHourScale(m);break;case"minutes_fives":case"minutes":this.generateMinuteScale(m);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var i={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?e(e({},i),{},{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?e(e({},i),{},{value:t.value}):"minute"===t.unit?e(e({},i),{},{value:t.value,minute:t.value}):"second"===t.unit?e(e({},i),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,i=Math.ceil(s.globals.gridWidth/120),r=t.value;void 0!==s.config.xaxis.tickAmount&&(i=s.config.xaxis.tickAmount),y.length>i&&(e=Math.floor(y.length/i));var o=!1,n=!1;switch(a.tickInterval){case"years":"year"===t.unit&&(o=!0);break;case"half_year":e=7,"year"===t.unit&&(o=!0);break;case"months":e=1,"year"===t.unit&&(o=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(o=!0),30===r&&(n=!0);break;case"months_days":e=10,"month"===t.unit&&(o=!0),30===r&&(n=!0);break;case"week_days":e=8,"month"===t.unit&&(o=!0);break;case"days":e=1,"month"===t.unit&&(o=!0);break;case"hours":"day"===t.unit&&(o=!0);break;case"minutes_fives":r%5!=0&&(n=!0);break;case"seconds_tens":r%10!=0&&(n=!0);break;case"seconds_fives":r%5!=0&&(n=!0)}if("hours"===a.tickInterval||"minutes_fives"===a.tickInterval||"seconds_tens"===a.tickInterval||"seconds_fives"===a.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new lt(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval="years";break;case t>800:this.tickInterval="half_year";break;case t>180:this.tickInterval="months";break;case t>90:this.tickInterval="months_fortnight";break;case t>60:this.tickInterval="months_days";break;case t>30:this.tickInterval="week_days";break;case t>2:this.tickInterval="days";break;case e>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new R(this.ctx),h="year";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:x.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:x.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=x.monthMod(a+1);var g=s+d,u=x.monthMod(n),f=n;0===n&&(c="year",f=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:f,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:x.monthMod(a)});for(var p=n+1,b=l,v=0,m=1;vo.determineDaysOfMonths(e+1,i)?(h=1,n="month",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=x.monthMod(e.minMonth),n="month",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:x.monthMod(u),day:h});for(var f=d,p=0;pn.determineDaysOfMonths(e+1,s)&&(p=1,e+=1),{month:e,date:p}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,f=u+1;60===d&&(g=0,f=(u=e.minHour)+1);var p=i,b=c(p,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:p,hour:f,year:s,month:x.monthMod(b)});for(var v=g,m=0;m=24)f=0,l="day",b=h(p+=1,b).month,b=c(p,b);var y=this._getYear(s,b,0);v=0===f&&0===m?d*r:60*r+v;var w=0===f?p:f;this.timeScaleArray.push({position:v,value:w,unit:l,hour:f,day:p,year:y,month:x.monthMod(b)}),f++}}},{key:"generateMinuteScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,f=n,p=s,b=(60-i-e/1e3)*h,v=0;v=60&&(d=0,24===(p+=1)&&(p=0)),this.timeScaleArray.push({position:b,value:d,unit:"minute",hour:p,minute:d,day:g,year:this._getYear(f,u,0),month:x.monthMod(u)}),b+=l,d++}},{key:"generateSecondScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,f=n,p=s,b=(1e3-e)/1e3*l,v=0;v=60&&(c=0,++d>=60&&(d=0,24===++p&&(p=0))),this.timeScaleArray.push({position:b,value:c,unit:"second",hour:p,minute:d,second:c,day:g,year:this._getYear(f,u,0),month:x.monthMod(u)}),b+=l,c++}},{key:"createRawDateString",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),"minute"===t.unit?i+=":"+("0"+e).slice(-2):i+=":"+(t.minute?("0"+t.minute).slice(-2):"00"),"second"===t.unit?i+=":"+("0"+e).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new R(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(n=l.year),"month"===t.unit&&(n=l.month),"day"===t.unit&&(n=l.day),"hour"===t.unit&&(n=l.hour),"minute"===t.unit&&(n=l.minute),"second"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:"removeOverlappingTS",value:function(t){var e,i=this,a=new m(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:"_getYear",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Ft=function(){function t(e,i){a(this,t),this.ctx=i,this.w=i.w,this.el=e}return r(t,[{key:"setupElements",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].indexOf(i)>-1,t.xyCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type||"boxPlot"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),m.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elAnnotations=t.dom.Paper.group().attr({class:"apexcharts-annotations"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elWrap.appendChild(t.dom.elLegendWrap),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]};s.series.map((function(e,g){var u=0;void 0!==t[g].type?("column"===t[g].type||"bar"===t[g].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"),h.series.push(e),h.i.push(g),u++,i.globals.columnSeries=h.series):"area"===t[g].type?(o.series.push(e),o.i.push(g),u++):"line"===t[g].type?(r.series.push(e),r.i.push(g),u++):"scatter"===t[g].type?(n.series.push(e),n.i.push(g)):"bubble"===t[g].type?(l.series.push(e),l.i.push(g),u++):"candlestick"===t[g].type?(c.series.push(e),c.i.push(g),u++):"boxPlot"===t[g].type?(d.series.push(e),d.i.push(g),u++):console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble"),u>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(g))}));var g=new Tt(this.ctx,e),u=new wt(this.ctx,e);this.ctx.pie=new Ct(this.ctx);var f=new Pt(this.ctx);this.ctx.rangeBar=new H(this.ctx,e);var p=new Lt(this.ctx),x=[];if(s.comboCharts){if(o.series.length>0&&x.push(g.draw(o.series,"area",o.i)),h.series.length>0)if(i.config.chart.stacked){var b=new yt(this.ctx,e);x.push(b.draw(h.series,h.i))}else this.ctx.bar=new F(this.ctx,e),x.push(this.ctx.bar.draw(h.series,h.i));if(r.series.length>0&&x.push(g.draw(r.series,"line",r.i)),c.series.length>0&&x.push(u.draw(c.series,c.i)),d.series.length>0&&x.push(u.draw(d.series,d.i)),n.series.length>0){var v=new Tt(this.ctx,e,!0);x.push(v.draw(n.series,"scatter",n.i))}if(l.series.length>0){var m=new Tt(this.ctx,e,!0);x.push(m.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":x=g.draw(s.series,"line");break;case"area":x=g.draw(s.series,"area");break;case"bar":if(a.chart.stacked)x=new yt(this.ctx,e).draw(s.series);else this.ctx.bar=new F(this.ctx,e),x=this.ctx.bar.draw(s.series);break;case"candlestick":x=new wt(this.ctx,e).draw(s.series);break;case"boxPlot":x=new wt(this.ctx,e).draw(s.series);break;case"rangeBar":x=this.ctx.rangeBar.draw(s.series);break;case"heatmap":x=new At(this.ctx,e).draw(s.series);break;case"treemap":x=new Xt(this.ctx,e).draw(s.series);break;case"pie":case"donut":case"polarArea":x=this.ctx.pie.draw(s.series);break;case"radialBar":x=f.draw(s.series);break;case"radar":x=p.draw(s.series);break;default:x=g.draw(s.series)}return x}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=x.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();"%"===a?x.isNumber(i[0])&&(0===i[0].width&&(i=x.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if("auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===s){var r=x.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),m.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),"%"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+"px"}t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};m.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new ct(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=x.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",l),t.config.chart.height&&String(t.config.chart.height).indexOf("%")>0||(e.dom.elWrap.style.height=l+"px",m.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+"px")}},{key:"coreCalculations",value:function(){new Z(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new O,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if("back"===e.config.xaxis.crosshairs.position)new tt(this.ctx).drawXCrosshairs();if("back"===e.config.yaxis[0].crosshairs.position)new tt(this.ctx).drawYCrosshairs();if("datetime"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Yt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var t=this,i=this.w;if(i.config.chart.brush.enabled&&"function"!=typeof i.config.chart.events.selection){var a=i.config.chart.brush.targets||[i.config.chart.brush.target];a.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,"function"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),"function"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),i.config.chart.events.selection=function(t,s){a.forEach((function(t){var a=ApexCharts.getChartByID(t),r=x.clone(i.config.yaxis);if(i.config.chart.brush.autoScaleYaxis&&1===a.w.globals.series.length){var o=new q(a);r=o.autoScaleY(a,r,s)}var n=a.w.config.yaxis.reduce((function(t,i,s){return[].concat(u(t),[e(e({},a.w.config.yaxis[s]),{},{min:r[0].min,max:r[0].max})])}),[]);a.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Rt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"_updateOptions",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(n){var l=[e.ctx];r&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(r,h){var c=r.w;if(c.globals.shouldAnimate=s,a||(c.globals.resized=!0,c.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),t&&"object"===i(t)&&(r.config=new N(t),t=y.extendArrayProps(r.config,t,c),r.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,c.config=x.extend(c.config,t),o&&(c.globals.lastXAxis=t.xaxis?x.clone(t.xaxis):[],c.globals.lastYAxis=t.yaxis?x.clone(t.yaxis):[],c.globals.initialConfig=x.extend({},c.config),c.globals.initialSeries=x.clone(c.config.series),t.series))){for(var d=0;d2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialSeries=x.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:"_extendSeries",value:function(t,i){var a=this.w,s=a.config.series[i];return e(e({},a.config.series[i]),{},{name:t.name?t.name:s&&s.name,color:t.color?t.color:s&&s.color,type:t.type?t.type:s&&s.type,data:t.data?t.data:s&&s.data})}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(t,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"'], ").concat(s," circle[j='").concat(e,"'], ").concat(s," rect[j='").concat(e,"']")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"']")).members[0],"pie"!==i.config.chart.type&&"polarArea"!==i.config.chart.type&&"donut"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new m(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(t){var e=this.w;if(["min","max"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new D(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:"forceYAxisUpdate",value:function(t){return t.chart&&t.chart.stacked&&"100%"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:"revertDefaultAxisMinMax",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();It="undefined"!=typeof window?window:void 0,zt=function(t,e){var a=(void 0!==this?this:t).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns="http://www.w3.org/2000/svg",a.xmlns="http://www.w3.org/2000/xmlns/",a.xlink="http://www.w3.org/1999/xlink",a.svgjs="http://svgjs.dev",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return"Svgjs"+d(t)+a.did++},a.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute("id",this.eid(t)),i},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(e){return e?e.instance?e.instance:((i="svg"==e.nodeName?e.parentNode instanceof t.SVGElement?new a.Nested:new a.Doc:"linearGradient"==e.nodeName?new a.Gradient("linear"):"radialGradient"==e.nodeName?new a.Gradient("radial"):a[d(e.nodeName)]?new(a[d(e.nodeName)]):new a.Element(e)).type=e.nodeName,i.node=e,e.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(e.getAttribute("svgjs:data"))||{}),i):null;var i},a.prepare=function(){var t=e.getElementsByTagName("body")[0],i=(t?new a.Doc(t):a.adopt(e.documentElement).nested()).size(2,0);a.parser={body:t||e.documentElement,draw:i.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:i.polyline().node,path:i.path().node,native:a.create("svg")}},a.parser={native:a.create("svg")},e.addEventListener("DOMContentLoaded",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+="",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]}},r="mlhvqtcsaz".split(""),o=0,n=r.length;ol);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute("d",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return"none"!=this.style("display")},toString:function(){return this.attr("id")},classes:function(){var t=this.attr("class");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!=t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(e){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!e)return i;for(;i&&i.node instanceof t.SVGElement;){if("string"==typeof e?i.matches(e):i instanceof e)return i;if(!i.node.parentNode||"#document"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var i=e.createElement("svg");if(!(t&&this instanceof a.Parent))return i.appendChild(t=e.createElement("svg")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),i.innerHTML.replace(/^/,"").replace(/<\/svg>$/,"");i.innerHTML=""+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var s=0,r=i.firstChild.childNodes.length;s":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,s){"object"===i(t)&&(e=t.ease,s=t.delay,t=t.duration);var r=new a.Situation({duration:t||1e3,delay:s||0,ease:a.easing[e||"-"]||e});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on("finished.fx",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off("during.fx",i).on("during.fx",i),this.after((function(){this.off("during.fx",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--s)this[m[s]]=null!=t[m[s]]?t[m[s]]:e[m[s]]},extend:{extract:function(){var t=f(this,0,1);f(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=m.length-1;e>=0;e--)t[m[e]]=this[m[e]];return t},toString:function(){return"matrix("+v(this.a)+","+v(this.b)+","+v(this.c)+","+v(this.d)+","+v(this.e)+","+v(this.f)+")"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(t,e){var a;a=Array.isArray(t)?{x:t[0],y:t[1]}:"object"===i(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(t,e,s){if(null==t){for(t={},s=(e=this.node.attributes).length-1;s>=0;s--)t[e[s].nodeName]=a.regex.isNumber.test(e[s].nodeValue)?parseFloat(e[s].nodeValue):e[s].nodeValue;return t}if("object"===i(t))for(var r in t)this.attr(r,t[r]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?a.defaults.attrs[t]:a.regex.isNumber.test(e)?parseFloat(e):e;"stroke-width"==t?this.attr("stroke",parseFloat(e)>0?this._stroke:null):"stroke"==t&&(this._stroke=e),"fill"!=t&&"stroke"!=t||(a.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof a.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),"number"==typeof e?e=new a.Number(e):a.Color.isColor(e)?e=new a.Color(e):Array.isArray(e)&&(e=new a.Array(e)),"leading"==t?this.leading&&this.leading(e):"string"==typeof s?this.node.setAttributeNS(s,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!=t&&"x"!=t||this.rebuild(t,e)}return this}}),a.extend(a.Element,{transform:function(t,e){var s;return"object"!==i(t)?(s=new a.Matrix(this).extract(),"string"==typeof t?s[t]:s):(s=new a.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(s=e?s.multiply(new a.Matrix(t)):new a.Matrix(t)),this.attr("transform",s))}}),a.extend(a.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split("(");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return"matrix"==e[0]?t.multiply(p(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(t,e){if(arguments.length>1&&"boolean"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var a=0,s=this.arguments.length;a=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s=0;i--)e.childNodes[i]instanceof t.SVGElement&&x(e.childNodes[i]);return a.adopt(e).id(a.eid(e.nodeName))}function b(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function v(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if("string"==typeof e||a.Color.isRgb(e)||e&&"function"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr("transform",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)"function"==typeof a.Shape.prototype[e]&&"function"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var i=e.getElementById(function(t){var e=(t||"").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(i)},a.select=function(t,i){return new a.Set(a.utils.map((i||e).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var m="abcdef".split("");if("function"!=typeof t.CustomEvent){var y=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent("CustomEvent");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};y.prototype=t.Event.prototype,a.CustomEvent=y}else a.CustomEvent=t.CustomEvent;return a},"function"==typeof define&&define.amd?define((function(){return zt(It,It.document)})):"object"===("undefined"==typeof exports?"undefined":i(exports))&&"undefined"!=typeof module?module.exports=It.document?zt(It,It.document):function(t){return zt(t,t.document)}:It.SVG=zt(It,It.document), /*! svg.filter.js - v2.0.2 - 2016-02-24 * https://github.com/wout/svg.filter.js * Copyright (c) 2016 Wout Fierens; Licensed MIT */ -function(){SVG.Filter=SVG.invent({create:"filter",inherit:SVG.Parent,extend:{source:"SourceGraphic",sourceAlpha:"SourceAlpha",background:"BackgroundImage",backgroundAlpha:"BackgroundAlpha",fill:"FillPaint",stroke:"StrokePaint",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr("in")&&this.autoSetIn&&t.attr("in",this.source),t.attr("result")||t.attr("result",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return"url(#"+this.attr("id")+")"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return"function"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr("filter",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr("filter",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr("in",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||"normal"})},colorMatrix:function(t,e){"matrix"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(" ").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr("flood-color",t),null!=e&&this.attr("flood-opacity",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr("href",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr("stdDeviation",r(Array.prototype.slice.call(arguments))):this.attr("stdDeviation","0 0")},morphology:function(t,e){this.attr({operator:t,radius:e})},tile:function(){},turbulence:function(t,e,i,a,s){this.attr({numOctaves:e,seed:i,stitchTiles:a,baseFrequency:t,type:s})}},i={merge:function(){var t;if(arguments[0]instanceof SVG.Set){var e=this;arguments[0].each((function(t){this instanceof SVG.MergeNode?e.put(this):(this instanceof SVG.Effect||this instanceof SVG.ParentEffect)&&e.put(new SVG.MergeNode(this))}))}else{t=Array.isArray(arguments[0])?arguments[0]:arguments;for(var i=0;i1&&(T*=a=Math.sqrt(a),M*=a);s=(new SVG.Matrix).rotate(I).scale(1/T,1/M).rotate(-I),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,z===X&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);X&&g>u&&(u+=2*Math.PI);!X&&g1&&(M*=a=Math.sqrt(a),T*=a);s=(new SVG.Matrix).rotate(I).scale(1/M,1/T).rotate(-I),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,z===X&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);X&&g>u&&(u+=2*Math.PI);!X&&gr.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,i){"function"!=typeof e&&"object"!=typeof e||(i=e,e=!0);var a=this.remember("_draggable")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,e,i){var a="string"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,"t"===t||"b"===t),y:this.pointCoord(i[1],e,"r"===t||"l"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=["points","pointsExclude"];for(var s in r){var o=this.options[r[s]];"string"==typeof o?o=o.length>0?o.split(/\s*,\s*/i):[]:"boolean"==typeof o&&"points"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"touchend.resize",(function(){e.done()})),SVG.on(window,"mousemove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"mouseup.resize",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var Ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"initModules",value:function(){this.ctx.publicMethods=["updateOptions","updateSeries","appendData","appendSeries","toggleSeries","showSeries","hideSeries","setLocale","resetSeries","zoomX","toggleDataPointSelection","dataURI","addXaxisAnnotation","addYaxisAnnotation","addPointAnnotation","clearAnnotations","removeAnnotation","paper","destroy"],this.ctx.eventList=["click","mousedown","mousemove","mouseleave","touchstart","touchmove","touchleave","mouseup","touchend"],this.ctx.animations=new b(this.ctx),this.ctx.axes=new K(this.ctx),this.ctx.core=new Ft(this.ctx.el,this.ctx),this.ctx.config=new N({}),this.ctx.data=new B(this.ctx),this.ctx.grid=new U(this.ctx),this.ctx.graphics=new m(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new tt(this.ctx),this.ctx.events=new J(this.ctx),this.ctx.exports=new j(this.ctx),this.ctx.localization=new Q(this.ctx),this.ctx.options=new L,this.ctx.responsive=new et(this.ctx),this.ctx.series=new E(this.ctx),this.ctx.theme=new it(this.ctx),this.ctx.formatters=new V(this.ctx),this.ctx.titleSubtitle=new at(this.ctx),this.ctx.legend=new ct(this.ctx),this.ctx.toolbar=new dt(this.ctx),this.ctx.dimensions=new lt(this.ctx),this.ctx.updateHelpers=new Rt(this.ctx),this.ctx.zoomPanSelection=new gt(this.ctx),this.ctx.w.globals.tooltip=new mt(this.ctx)}}]),t}(),Dt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"clear",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:"killSVG",value:function(t){t.each((function(t,e){this.removeClass("*"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:"clearDomElements",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight="unset");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elAnnotations=null,r.elLegendWrap=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),Nt=new WeakMap;return function(){function t(e,i){a(this,t),this.opts=i,this.ctx=this,this.w=new W(i).init(),this.el=e,this.w.globals.cuid=x.randomId(),this.w.globals.chartID=this.w.config.chart.id?x.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Ht(this).initModules(),this.create=x.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return r(t,[{key:"render",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;if("function"==typeof a&&a(t,t.w),t.events.fireEvent("beforeMount",[t,t.w]),window.addEventListener("resize",t.windowResizeHandler),function(t,e){var i=!1,a=t.getBoundingClientRect();"none"!==t.style.display&&0!==a.width||(i=!0);var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),Nt.set(e,s)}(t.el.parentNode,t.parentResizeHandler),!t.css){var s=t.el.getRootNode&&t.el.getRootNode(),r=x.is("ShadowRoot",s),o=t.el.ownerDocument,n=o.getElementById("apexcharts-css");!r&&n||(t.css=document.createElement("style"),t.css.id="apexcharts-css",t.css.textContent='.apexcharts-canvas {\n position: relative;\n user-select: none;\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\n}\n\n\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px;\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, .5);\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n}\n\n\n.apexcharts-inner {\n position: relative;\n}\n\n.apexcharts-text tspan {\n font-family: inherit;\n}\n\n.legend-mouseover-inactive {\n transition: 0.15s ease all;\n opacity: 0.20;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0;\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, 0.96);\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30, 30, 30, 0.8);\n}\n\n.apexcharts-tooltip * {\n font-family: inherit;\n}\n\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #ECEFF1;\n border-bottom: 1px solid #ddd;\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid #333;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n font-weight: 600;\n margin-left: 5px;\n}\n\n.apexcharts-tooltip-title:empty,\n.apexcharts-tooltip-text-y-label:empty,\n.apexcharts-tooltip-text-y-value:empty,\n.apexcharts-tooltip-text-goals-label:empty,\n.apexcharts-tooltip-text-goals-value:empty,\n.apexcharts-tooltip-text-z-value:empty {\n display: none;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n font-weight: 600;\n}\n\n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-goals-group, \n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n display: flex;\n}\n.apexcharts-tooltip-text-goals-label:not(:empty),\n.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px;\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0px;\n margin-right: 10px;\n border-radius: 50%;\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px;\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0 !important;\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-box, .apexcharts-custom-tooltip {\n padding: 4px 8px;\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse;\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0;\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: bold;\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px;\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777;\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: bold;\n display: block;\n margin-bottom: 5px;\n}\n\n.apexcharts-xaxistooltip {\n opacity: 0;\n padding: 9px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-left: -6px;\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-left: -7px;\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%;\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n top: 100%;\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #ECEFF1;\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #ECEFF1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-yaxistooltip {\n opacity: 0;\n padding: 4px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-top: -6px;\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-top: -7px;\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n left: 100%;\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n right: 100%;\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1;\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none;\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0;\n}\n\n.apexcharts-selection-rect {\n cursor: move;\n}\n\n.svg_select_boundingRect, .svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n}\n.apexcharts-selection-rect + g .svg_select_boundingRect,\n.apexcharts-selection-rect + g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden;\n}\n\n.apexcharts-selection-rect + g .svg_select_points_l,\n.apexcharts-selection-rect + g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible;\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2;\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon,\n.apexcharts-reset-icon,\n.apexcharts-pan-icon,\n.apexcharts-selection-icon,\n.apexcharts-menu-icon,\n.apexcharts-toolbar-custom-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6E8192;\n text-align: center;\n}\n\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-menu-icon svg {\n fill: #6E8192;\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(0.76)\n}\n\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\n fill: #f3f4f5;\n}\n\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\n fill: #008FFB;\n}\n\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\n fill: #333;\n}\n\n.apexcharts-selection-icon,\n.apexcharts-menu-icon {\n position: relative;\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px;\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-reset-icon,\n.apexcharts-menu-icon {\n transform: scale(0.85);\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n transform: scale(0.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px;\n}\n\n.apexcharts-pan-icon {\n transform: scale(0.62);\n position: relative;\n left: 1px;\n top: 0px;\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6E8192;\n stroke-width: 2;\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008FFB;\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333;\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0px 6px 2px 6px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: 0.15s ease all;\n pointer-events: none;\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: 0.15s ease all;\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee;\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n}\n\n@media screen and (min-width: 768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1;\n }\n}\n\n.apexcharts-datalabel.apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-pie-label,\n.apexcharts-datalabels,\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value {\n cursor: default;\n pointer-events: none;\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: 0.3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease;\n}\n\n.apexcharts-canvas .apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-gridline,\n.apexcharts-annotation-rect,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-line,\n.apexcharts-zoom-rect,\n.apexcharts-toolbar svg,\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-radar-series path,\n.apexcharts-radar-series polygon {\n pointer-events: none;\n}\n\n\n/* markers */\n\n.apexcharts-marker {\n transition: 0.15s ease all;\n}\n\n@keyframes opaque {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n\n/* Resize generated styles */\n\n@keyframes resizeanim {\n from {\n opacity: 0;\n }\n to {\n opacity: 0;\n }\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n}\n\n.resize-triggers,\n.resize-triggers>div,\n.contract-trigger:before {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.resize-triggers>div {\n background: #eee;\n overflow: auto;\n}\n\n.contract-trigger:before {\n width: 200%;\n height: 200%;\n}',r?s.prepend(t.css):o.head.appendChild(t.css))}var l=t.create(t.w.config.series,{});if(!l)return e(t);t.mount(l).then((function(){"function"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent("mounted",[t,t.w]),e(l)})).catch((function(t){i(t)}))}else i(new Error("Element not found"))}))}},{key:"create",value:function(t,e){var i=this.w;new Ht(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new D(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),"treemap"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new M(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),"category"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new y(this).getLargestMarkerSize(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new z(this);l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition();var h={plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}};return{elGraph:n,xyRatios:o,elInner:i.globals.dom.elGraphical,dimensions:h}}},{key:"mount",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error("Not enough data to display or target element not found"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),"treemap"!==a.config.chart.type&&i.axes.drawAxis(a.config.chart.type,e.xyRatios),i.grid=new U(i);var o=i.grid.drawGrid();i.annotations=new P(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),"back"===a.config.grid.position&&o&&a.globals.dom.elGraphical.add(o.el);var n=new _(t.ctx),l=new $(t.ctx);if(null!==o&&(n.xAxisLabelCorrections(o.xAxisTickWidth),l.setYAxisTextAlignments(),a.config.yaxis.map((function(t,e){-1===a.globals.ignoreYAxisIndexes.indexOf(e)&&l.yAxisTitleRotate(e,t.opposite)}))),"back"===a.config.annotations.position&&(a.globals.dom.Paper.add(a.globals.dom.elAnnotations),i.annotations.drawAxesAnnotations()),Array.isArray(e.elGraph))for(var h=0;h0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:"destroy",value:function(){var t,e;window.removeEventListener("resize",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=Nt.get(t))&&(e.disconnect(),Nt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===x.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Dt(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:"addEventListener",value:function(t,e){this.events.addEventListener(t,e)}},{key:"removeEventListener",value:function(t,e){this.events.removeEventListener(t,e)}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Z(this.ctx);return e.getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Z(this.ctx);return e.getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:"zoomX",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:"setLocale",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:"dataURI",value:function(t){return new j(this.ctx).dataURI(t)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:"_windowResizeHandler",value:function(){var t=this.w.config.chart.redrawOnWindowResize;"function"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:"getChartByID",value:function(t){var e=x.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),i=0;i2?s-2:0),o=2;or.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,i){"function"!=typeof e&&"object"!=typeof e||(i=e,e=!0);var a=this.remember("_draggable")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,e,i){var a="string"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,"t"===t||"b"===t),y:this.pointCoord(i[1],e,"r"===t||"l"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=["points","pointsExclude"];for(var s in r){var o=this.options[r[s]];"string"==typeof o?o=o.length>0?o.split(/\s*,\s*/i):[]:"boolean"==typeof o&&"points"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"touchend.resize",(function(){e.done()})),SVG.on(window,"mousemove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"mouseup.resize",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var Ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"initModules",value:function(){this.ctx.publicMethods=["updateOptions","updateSeries","appendData","appendSeries","toggleSeries","showSeries","hideSeries","setLocale","resetSeries","zoomX","toggleDataPointSelection","dataURI","exportToCSV","addXaxisAnnotation","addYaxisAnnotation","addPointAnnotation","clearAnnotations","removeAnnotation","paper","destroy"],this.ctx.eventList=["click","mousedown","mousemove","mouseleave","touchstart","touchmove","touchleave","mouseup","touchend"],this.ctx.animations=new b(this.ctx),this.ctx.axes=new K(this.ctx),this.ctx.core=new Ft(this.ctx.el,this.ctx),this.ctx.config=new N({}),this.ctx.data=new B(this.ctx),this.ctx.grid=new U(this.ctx),this.ctx.graphics=new m(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new tt(this.ctx),this.ctx.events=new J(this.ctx),this.ctx.exports=new j(this.ctx),this.ctx.localization=new Q(this.ctx),this.ctx.options=new L,this.ctx.responsive=new et(this.ctx),this.ctx.series=new E(this.ctx),this.ctx.theme=new it(this.ctx),this.ctx.formatters=new V(this.ctx),this.ctx.titleSubtitle=new at(this.ctx),this.ctx.legend=new ct(this.ctx),this.ctx.toolbar=new dt(this.ctx),this.ctx.dimensions=new lt(this.ctx),this.ctx.updateHelpers=new Rt(this.ctx),this.ctx.zoomPanSelection=new gt(this.ctx),this.ctx.w.globals.tooltip=new mt(this.ctx)}}]),t}(),Dt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"clear",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:"killSVG",value:function(t){t.each((function(t,e){this.removeClass("*"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:"clearDomElements",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight="unset");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elAnnotations=null,r.elLegendWrap=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),Nt=new WeakMap;return function(){function t(e,i){a(this,t),this.opts=i,this.ctx=this,this.w=new W(i).init(),this.el=e,this.w.globals.cuid=x.randomId(),this.w.globals.chartID=this.w.config.chart.id?x.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Ht(this).initModules(),this.create=x.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return r(t,[{key:"render",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;if("function"==typeof a&&a(t,t.w),t.events.fireEvent("beforeMount",[t,t.w]),window.addEventListener("resize",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();"none"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),Nt.set(e,s)}(t.el.parentNode,t.parentResizeHandler),!t.css){var s=t.el.getRootNode&&t.el.getRootNode(),r=x.is("ShadowRoot",s),o=t.el.ownerDocument,n=o.getElementById("apexcharts-css");!r&&n||(t.css=document.createElement("style"),t.css.id="apexcharts-css",t.css.textContent='.apexcharts-canvas {\n position: relative;\n user-select: none;\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\n}\n\n\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px;\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, .5);\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n}\n\n\n.apexcharts-inner {\n position: relative;\n}\n\n.apexcharts-text tspan {\n font-family: inherit;\n}\n\n.legend-mouseover-inactive {\n transition: 0.15s ease all;\n opacity: 0.20;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0;\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, 0.96);\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30, 30, 30, 0.8);\n}\n\n.apexcharts-tooltip * {\n font-family: inherit;\n}\n\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #ECEFF1;\n border-bottom: 1px solid #ddd;\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid #333;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n font-weight: 600;\n margin-left: 5px;\n}\n\n.apexcharts-tooltip-title:empty,\n.apexcharts-tooltip-text-y-label:empty,\n.apexcharts-tooltip-text-y-value:empty,\n.apexcharts-tooltip-text-goals-label:empty,\n.apexcharts-tooltip-text-goals-value:empty,\n.apexcharts-tooltip-text-z-value:empty {\n display: none;\n}\n\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-z-value {\n font-weight: 600;\n}\n\n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-goals-group, \n.apexcharts-tooltip-text-goals-label, \n.apexcharts-tooltip-text-goals-value {\n display: flex;\n}\n.apexcharts-tooltip-text-goals-label:not(:empty),\n.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px;\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0px;\n margin-right: 10px;\n border-radius: 50%;\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px;\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0 !important;\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-box, .apexcharts-custom-tooltip {\n padding: 4px 8px;\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse;\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0;\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: bold;\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px;\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777;\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: bold;\n display: block;\n margin-bottom: 5px;\n}\n\n.apexcharts-xaxistooltip {\n opacity: 0;\n padding: 9px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-left: -6px;\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-left: -7px;\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%;\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n top: 100%;\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #ECEFF1;\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #ECEFF1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-yaxistooltip {\n opacity: 0;\n padding: 4px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-top: -6px;\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-top: -7px;\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n left: 100%;\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n right: 100%;\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1;\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none;\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0;\n}\n\n.apexcharts-selection-rect {\n cursor: move;\n}\n\n.svg_select_boundingRect, .svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n}\n.apexcharts-selection-rect + g .svg_select_boundingRect,\n.apexcharts-selection-rect + g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden;\n}\n\n.apexcharts-selection-rect + g .svg_select_points_l,\n.apexcharts-selection-rect + g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible;\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2;\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon,\n.apexcharts-reset-icon,\n.apexcharts-pan-icon,\n.apexcharts-selection-icon,\n.apexcharts-menu-icon,\n.apexcharts-toolbar-custom-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6E8192;\n text-align: center;\n}\n\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-menu-icon svg {\n fill: #6E8192;\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(0.76)\n}\n\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\n fill: #f3f4f5;\n}\n\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\n fill: #008FFB;\n}\n\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\n fill: #333;\n}\n\n.apexcharts-selection-icon,\n.apexcharts-menu-icon {\n position: relative;\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px;\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-reset-icon,\n.apexcharts-menu-icon {\n transform: scale(0.85);\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n transform: scale(0.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px;\n}\n\n.apexcharts-pan-icon {\n transform: scale(0.62);\n position: relative;\n left: 1px;\n top: 0px;\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6E8192;\n stroke-width: 2;\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008FFB;\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333;\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0px 6px 2px 6px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: 0.15s ease all;\n pointer-events: none;\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: 0.15s ease all;\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee;\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n}\n\n@media screen and (min-width: 768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1;\n }\n}\n\n.apexcharts-datalabel.apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-pie-label,\n.apexcharts-datalabels,\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value {\n cursor: default;\n pointer-events: none;\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: 0.3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease;\n}\n\n.apexcharts-canvas .apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-gridline,\n.apexcharts-annotation-rect,\n.apexcharts-xaxis-annotation-label,\n.apexcharts-yaxis-annotation-label,\n.apexcharts-point-annotation-label,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-line,\n.apexcharts-zoom-rect,\n.apexcharts-toolbar svg,\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-radar-series path,\n.apexcharts-radar-series polygon {\n pointer-events: none;\n}\n\n\n/* markers */\n\n.apexcharts-marker {\n transition: 0.15s ease all;\n}\n\n@keyframes opaque {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n\n/* Resize generated styles */\n\n@keyframes resizeanim {\n from {\n opacity: 0;\n }\n to {\n opacity: 0;\n }\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n}\n\n.resize-triggers,\n.resize-triggers>div,\n.contract-trigger:before {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.resize-triggers>div {\n background: #eee;\n overflow: auto;\n}\n\n.contract-trigger:before {\n width: 200%;\n height: 200%;\n}',r?s.prepend(t.css):o.head.appendChild(t.css))}var l=t.create(t.w.config.series,{});if(!l)return e(t);t.mount(l).then((function(){"function"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent("mounted",[t,t.w]),e(l)})).catch((function(t){i(t)}))}else i(new Error("Element not found"))}))}},{key:"create",value:function(t,e){var i=this.w;new Ht(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new D(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),"treemap"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new T(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),"category"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new y(this).getLargestMarkerSize(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new z(this);l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition();var h={plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}};return{elGraph:n,xyRatios:o,elInner:i.globals.dom.elGraphical,dimensions:h}}},{key:"mount",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error("Not enough data to display or target element not found"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),"treemap"!==a.config.chart.type&&i.axes.drawAxis(a.config.chart.type,e.xyRatios),i.grid=new U(i);var o=i.grid.drawGrid();i.annotations=new P(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),"back"===a.config.grid.position&&o&&a.globals.dom.elGraphical.add(o.el);var n=new _(t.ctx),l=new $(t.ctx);if(null!==o&&(n.xAxisLabelCorrections(o.xAxisTickWidth),l.setYAxisTextAlignments(),a.config.yaxis.map((function(t,e){-1===a.globals.ignoreYAxisIndexes.indexOf(e)&&l.yAxisTitleRotate(e,t.opposite)}))),"back"===a.config.annotations.position&&(a.globals.dom.Paper.add(a.globals.dom.elAnnotations),i.annotations.drawAxesAnnotations()),Array.isArray(e.elGraph))for(var h=0;h0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:"destroy",value:function(){var t,e;window.removeEventListener("resize",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=Nt.get(t))&&(e.disconnect(),Nt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===x.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Dt(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:"addEventListener",value:function(t,e){this.events.addEventListener(t,e)}},{key:"removeEventListener",value:function(t,e){this.events.removeEventListener(t,e)}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Z(this.ctx);return e.getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Z(this.ctx);return e.getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:"zoomX",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:"setLocale",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:"dataURI",value:function(t){return new j(this.ctx).dataURI(t)}},{key:"exportToCSV",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=new j(this.ctx);return e.exportToCSV(t)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:"_windowResizeHandler",value:function(){var t=this.w.config.chart.redrawOnWindowResize;"function"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:"getChartByID",value:function(t){var e=x.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),i=0;i2?s-2:0),o=2;o { + if (object === null || object === undefined) { + return `${object}`; + } + + return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); + }; + /** + * Public Util API + */ + + + const getUID = prefix => { + do { + prefix += Math.floor(Math.random() * MAX_UID); + } while (document.getElementById(prefix)); + + return prefix; + }; + + const getSelector = element => { + let selector = element.getAttribute('data-bs-target'); + + if (!selector || selector === '#') { + let hrefAttribute = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) { + hrefAttribute = `#${hrefAttribute.split('#')[1]}`; + } + + selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; + } + + return selector; + }; + + const getSelectorFromElement = element => { + const selector = getSelector(element); + + if (selector) { + return document.querySelector(selector) ? selector : null; + } + + return null; + }; + + const getElementFromSelector = element => { + const selector = getSelector(element); + return selector ? document.querySelector(selector) : null; + }; + + const getTransitionDurationFromElement = element => { + if (!element) { + return 0; + } // Get transition-duration of the element + + + let { + transitionDuration, + transitionDelay + } = window.getComputedStyle(element); + const floatTransitionDuration = Number.parseFloat(transitionDuration); + const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; + } // If multiple durations are defined, take the first + + + transitionDuration = transitionDuration.split(',')[0]; + transitionDelay = transitionDelay.split(',')[0]; + return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; + }; + + const triggerTransitionEnd = element => { + element.dispatchEvent(new Event(TRANSITION_END)); + }; + + const isElement$1 = object => { + if (!object || typeof object !== 'object') { + return false; + } + + if (typeof object.jquery !== 'undefined') { + object = object[0]; + } + + return typeof object.nodeType !== 'undefined'; + }; + + const getElement = object => { + // it's a jQuery object or a node element + if (isElement$1(object)) { + return object.jquery ? object[0] : object; + } + + if (typeof object === 'string' && object.length > 0) { + return document.querySelector(object); + } + + return null; + }; + + const isVisible = element => { + if (!isElement$1(element) || element.getClientRects().length === 0) { + return false; + } + + const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed + + const closedDetails = element.closest('details:not([open])'); + + if (!closedDetails) { + return elementIsVisible; + } + + if (closedDetails !== element) { + const summary = element.closest('summary'); + + if (summary && summary.parentNode !== closedDetails) { + return false; + } + + if (summary === null) { + return false; + } + } + + return elementIsVisible; + }; + + const isDisabled = element => { + if (!element || element.nodeType !== Node.ELEMENT_NODE) { + return true; + } + + if (element.classList.contains('disabled')) { + return true; + } + + if (typeof element.disabled !== 'undefined') { + return element.disabled; + } + + return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; + }; + + const findShadowRoot = element => { + if (!document.documentElement.attachShadow) { + return null; + } // Can find the shadow root otherwise it'll return the document + + + if (typeof element.getRootNode === 'function') { + const root = element.getRootNode(); + return root instanceof ShadowRoot ? root : null; + } + + if (element instanceof ShadowRoot) { + return element; + } // when we don't find a shadow root + + + if (!element.parentNode) { + return null; + } + + return findShadowRoot(element.parentNode); + }; + + const noop = () => {}; + /** + * Trick to restart an element's animation + * + * @param {HTMLElement} element + * @return void + * + * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation + */ + + + const reflow = element => { + element.offsetHeight; // eslint-disable-line no-unused-expressions + }; + + const getjQuery = () => { + if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return window.jQuery; + } + + return null; + }; + + const DOMContentLoadedCallbacks = []; + + const onDOMContentLoaded = callback => { + if (document.readyState === 'loading') { + // add listener on the first call when the document is in loading state + if (!DOMContentLoadedCallbacks.length) { + document.addEventListener('DOMContentLoaded', () => { + for (const callback of DOMContentLoadedCallbacks) { + callback(); + } + }); + } + + DOMContentLoadedCallbacks.push(callback); + } else { + callback(); + } + }; + + const isRTL = () => document.documentElement.dir === 'rtl'; + + const defineJQueryPlugin = plugin => { + onDOMContentLoaded(() => { + const $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + const name = plugin.NAME; + const JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = () => { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + + const execute = callback => { + if (typeof callback === 'function') { + callback(); + } + }; + + const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { + if (!waitForTransition) { + execute(callback); + return; + } + + const durationPadding = 5; + const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; + let called = false; + + const handler = ({ + target + }) => { + if (target !== transitionElement) { + return; + } + + called = true; + transitionElement.removeEventListener(TRANSITION_END, handler); + execute(callback); + }; + + transitionElement.addEventListener(TRANSITION_END, handler); + setTimeout(() => { + if (!called) { + triggerTransitionEnd(transitionElement); + } + }, emulatedDuration); + }; + /** + * Return the previous/next element of a list. + * + * @param {array} list The list of elements + * @param activeElement The active element + * @param shouldGetNext Choose to get next or previous element + * @param isCycleAllowed + * @return {Element|elem} The proper element + */ + + + const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { + const listLength = list.length; + let index = list.indexOf(activeElement); // if the element does not exist in the list return an element + // depending on the direction and if cycle is allowed + + if (index === -1) { + return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; + } + + index += shouldGetNext ? 1 : -1; + + if (isCycleAllowed) { + index = (index + listLength) % listLength; + } + + return list[Math.max(0, Math.min(index, listLength - 1))]; + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): dom/event-handler.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const namespaceRegex = /[^.]*(?=\..*)\.|.*/; + const stripNameRegex = /\..*/; + const stripUidRegex = /::\d+$/; + const eventRegistry = {}; // Events storage + + let uidEvent = 1; + const customEvents = { + mouseenter: 'mouseover', + mouseleave: 'mouseout' + }; + const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); + /** + * Private methods + */ + + function makeEventUid(element, uid) { + return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; + } + + function getElementEvents(element) { + const uid = makeEventUid(element); + element.uidEvent = uid; + eventRegistry[uid] = eventRegistry[uid] || {}; + return eventRegistry[uid]; + } + + function bootstrapHandler(element, fn) { + return function handler(event) { + hydrateObj(event, { + delegateTarget: element + }); + + if (handler.oneOff) { + EventHandler.off(element, event.type, fn); + } + + return fn.apply(element, [event]); + }; + } + + function bootstrapDelegationHandler(element, selector, fn) { + return function handler(event) { + const domElements = element.querySelectorAll(selector); + + for (let { + target + } = event; target && target !== this; target = target.parentNode) { + for (const domElement of domElements) { + if (domElement !== target) { + continue; + } + + hydrateObj(event, { + delegateTarget: target + }); + + if (handler.oneOff) { + EventHandler.off(element, event.type, selector, fn); + } + + return fn.apply(target, [event]); + } + } + }; + } + + function findHandler(events, callable, delegationSelector = null) { + return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector); + } + + function normalizeParameters(originalTypeEvent, handler, delegationFunction) { + const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check + + const callable = isDelegated ? delegationFunction : handler || delegationFunction; + let typeEvent = getTypeEvent(originalTypeEvent); + + if (!nativeEvents.has(typeEvent)) { + typeEvent = originalTypeEvent; + } + + return [isDelegated, callable, typeEvent]; + } + + function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { + if (typeof originalTypeEvent !== 'string' || !element) { + return; + } + + let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position + // this prevents the handler from being dispatched the same way as mouseover or mouseout does + + if (originalTypeEvent in customEvents) { + const wrapFunction = fn => { + return function (event) { + if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { + return fn.call(this, event); + } + }; + }; + + callable = wrapFunction(callable); + } + + const events = getElementEvents(element); + const handlers = events[typeEvent] || (events[typeEvent] = {}); + const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); + + if (previousFunction) { + previousFunction.oneOff = previousFunction.oneOff && oneOff; + return; + } + + const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, '')); + const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); + fn.delegationSelector = isDelegated ? handler : null; + fn.callable = callable; + fn.oneOff = oneOff; + fn.uidEvent = uid; + handlers[uid] = fn; + element.addEventListener(typeEvent, fn, isDelegated); + } + + function removeHandler(element, events, typeEvent, handler, delegationSelector) { + const fn = findHandler(events[typeEvent], handler, delegationSelector); + + if (!fn) { + return; + } + + element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); + delete events[typeEvent][fn.uidEvent]; + } + + function removeNamespacedHandlers(element, events, typeEvent, namespace) { + const storeElementEvent = events[typeEvent] || {}; + + for (const handlerKey of Object.keys(storeElementEvent)) { + if (handlerKey.includes(namespace)) { + const event = storeElementEvent[handlerKey]; + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); + } + } + } + + function getTypeEvent(event) { + // allow to get the native events from namespaced events ('click.bs.button' --> 'click') + event = event.replace(stripNameRegex, ''); + return customEvents[event] || event; + } + + const EventHandler = { + on(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, false); + }, + + one(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, true); + }, + + off(element, originalTypeEvent, handler, delegationFunction) { + if (typeof originalTypeEvent !== 'string' || !element) { + return; + } + + const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); + const inNamespace = typeEvent !== originalTypeEvent; + const events = getElementEvents(element); + const storeElementEvent = events[typeEvent] || {}; + const isNamespace = originalTypeEvent.startsWith('.'); + + if (typeof callable !== 'undefined') { + // Simplest case: handler is passed, remove that listener ONLY. + if (!Object.keys(storeElementEvent).length) { + return; + } + + removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); + return; + } + + if (isNamespace) { + for (const elementEvent of Object.keys(events)) { + removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); + } + } + + for (const keyHandlers of Object.keys(storeElementEvent)) { + const handlerKey = keyHandlers.replace(stripUidRegex, ''); + + if (!inNamespace || originalTypeEvent.includes(handlerKey)) { + const event = storeElementEvent[keyHandlers]; + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); + } + } + }, + + trigger(element, event, args) { + if (typeof event !== 'string' || !element) { + return null; + } + + const $ = getjQuery(); + const typeEvent = getTypeEvent(event); + const inNamespace = event !== typeEvent; + let jQueryEvent = null; + let bubbles = true; + let nativeDispatch = true; + let defaultPrevented = false; + + if (inNamespace && $) { + jQueryEvent = $.Event(event, args); + $(element).trigger(jQueryEvent); + bubbles = !jQueryEvent.isPropagationStopped(); + nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); + defaultPrevented = jQueryEvent.isDefaultPrevented(); + } + + let evt = new Event(event, { + bubbles, + cancelable: true + }); + evt = hydrateObj(evt, args); + + if (defaultPrevented) { + evt.preventDefault(); + } + + if (nativeDispatch) { + element.dispatchEvent(evt); + } + + if (evt.defaultPrevented && jQueryEvent) { + jQueryEvent.preventDefault(); + } + + return evt; + } + + }; + + function hydrateObj(obj, meta) { + for (const [key, value] of Object.entries(meta || {})) { + try { + obj[key] = value; + } catch (_unused) { + Object.defineProperty(obj, key, { + configurable: true, + + get() { + return value; + } + + }); + } + } + + return obj; + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): dom/data.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + /** + * Constants + */ + const elementMap = new Map(); + const Data = { + set(element, key, instance) { + if (!elementMap.has(element)) { + elementMap.set(element, new Map()); + } + + const instanceMap = elementMap.get(element); // make it clear we only want one instance per element + // can be removed later when multiple key/instances are fine to be used + + if (!instanceMap.has(key) && instanceMap.size !== 0) { + // eslint-disable-next-line no-console + console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); + return; + } + + instanceMap.set(key, instance); + }, + + get(element, key) { + if (elementMap.has(element)) { + return elementMap.get(element).get(key) || null; + } + + return null; + }, + + remove(element, key) { + if (!elementMap.has(element)) { + return; + } + + const instanceMap = elementMap.get(element); + instanceMap.delete(key); // free up element references if there are no instances left for an element + + if (instanceMap.size === 0) { + elementMap.delete(element); + } + } + + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): dom/manipulator.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + function normalizeData(value) { + if (value === 'true') { + return true; + } + + if (value === 'false') { + return false; + } + + if (value === Number(value).toString()) { + return Number(value); + } + + if (value === '' || value === 'null') { + return null; + } + + if (typeof value !== 'string') { + return value; + } + + try { + return JSON.parse(decodeURIComponent(value)); + } catch (_unused) { + return value; + } + } + + function normalizeDataKey(key) { + return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); + } + + const Manipulator = { + setDataAttribute(element, key, value) { + element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); + }, + + removeDataAttribute(element, key) { + element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); + }, + + getDataAttributes(element) { + if (!element) { + return {}; + } + + const attributes = {}; + const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig')); + + for (const key of bsKeys) { + let pureKey = key.replace(/^bs/, ''); + pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); + attributes[pureKey] = normalizeData(element.dataset[key]); + } + + return attributes; + }, + + getDataAttribute(element, key) { + return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); + } + + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): util/config.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Class definition + */ + + class Config { + // Getters + static get Default() { + return {}; + } + + static get DefaultType() { + return {}; + } + + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!'); + } + + _getConfig(config) { + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + + this._typeCheckConfig(config); + + return config; + } + + _configAfterMerge(config) { + return config; + } + + _mergeConfigObj(config, element) { + const jsonConfig = isElement$1(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse + + return { ...this.constructor.Default, + ...(typeof jsonConfig === 'object' ? jsonConfig : {}), + ...(isElement$1(element) ? Manipulator.getDataAttributes(element) : {}), + ...(typeof config === 'object' ? config : {}) + }; + } + + _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { + for (const property of Object.keys(configTypes)) { + const expectedTypes = configTypes[property]; + const value = config[property]; + const valueType = isElement$1(value) ? 'element' : toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); + } + } + } + + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): base-component.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const VERSION = '5.2.0'; + /** + * Class definition + */ + + class BaseComponent extends Config { + constructor(element, config) { + super(); + element = getElement(element); + + if (!element) { + return; + } + + this._element = element; + this._config = this._getConfig(config); + Data.set(this._element, this.constructor.DATA_KEY, this); + } // Public + + + dispose() { + Data.remove(this._element, this.constructor.DATA_KEY); + EventHandler.off(this._element, this.constructor.EVENT_KEY); + + for (const propertyName of Object.getOwnPropertyNames(this)) { + this[propertyName] = null; + } + } + + _queueCallback(callback, element, isAnimated = true) { + executeAfterTransition(callback, element, isAnimated); + } + + _getConfig(config) { + config = this._mergeConfigObj(config, this._element); + config = this._configAfterMerge(config); + + this._typeCheckConfig(config); + + return config; + } // Static + + + static getInstance(element) { + return Data.get(getElement(element), this.DATA_KEY); + } + + static getOrCreateInstance(element, config = {}) { + return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null); + } + + static get VERSION() { + return VERSION; + } + + static get DATA_KEY() { + return `bs.${this.NAME}`; + } + + static get EVENT_KEY() { + return `.${this.DATA_KEY}`; + } + + static eventName(name) { + return `${name}${this.EVENT_KEY}`; + } + + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): util/component-functions.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + const enableDismissTrigger = (component, method = 'hide') => { + const clickEvent = `click.dismiss${component.EVENT_KEY}`; + const name = component.NAME; + EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) { + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + + if (isDisabled(this)) { + return; + } + + const target = getElementFromSelector(this) || this.closest(`.${name}`); + const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method + + instance[method](); + }); + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$f = 'alert'; + const DATA_KEY$a = 'bs.alert'; + const EVENT_KEY$b = `.${DATA_KEY$a}`; + const EVENT_CLOSE = `close${EVENT_KEY$b}`; + const EVENT_CLOSED = `closed${EVENT_KEY$b}`; + const CLASS_NAME_FADE$5 = 'fade'; + const CLASS_NAME_SHOW$8 = 'show'; + /** + * Class definition + */ + + class Alert extends BaseComponent { + // Getters + static get NAME() { + return NAME$f; + } // Public + + + close() { + const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); + + if (closeEvent.defaultPrevented) { + return; + } + + this._element.classList.remove(CLASS_NAME_SHOW$8); + + const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5); + + this._queueCallback(() => this._destroyElement(), this._element, isAnimated); + } // Private + + + _destroyElement() { + this._element.remove(); + + EventHandler.trigger(this._element, EVENT_CLOSED); + this.dispose(); + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Alert.getOrCreateInstance(this); + + if (typeof config !== 'string') { + return; + } + + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](this); + }); + } + + } + /** + * Data API implementation + */ + + + enableDismissTrigger(Alert, 'close'); + /** + * jQuery + */ + + defineJQueryPlugin(Alert); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$e = 'button'; + const DATA_KEY$9 = 'bs.button'; + const EVENT_KEY$a = `.${DATA_KEY$9}`; + const DATA_API_KEY$6 = '.data-api'; + const CLASS_NAME_ACTIVE$3 = 'active'; + const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; + const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; + /** + * Class definition + */ + + class Button extends BaseComponent { + // Getters + static get NAME() { + return NAME$e; + } // Public + + + toggle() { + // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method + this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Button.getOrCreateInstance(this); + + if (config === 'toggle') { + data[config](); + } + }); + } + + } + /** + * Data API implementation + */ + + + EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => { + event.preventDefault(); + const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); + const data = Button.getOrCreateInstance(button); + data.toggle(); + }); + /** + * jQuery + */ + + defineJQueryPlugin(Button); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): dom/selector-engine.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const SelectorEngine = { + find(selector, element = document.documentElement) { + return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); + }, + + findOne(selector, element = document.documentElement) { + return Element.prototype.querySelector.call(element, selector); + }, + + children(element, selector) { + return [].concat(...element.children).filter(child => child.matches(selector)); + }, + + parents(element, selector) { + const parents = []; + let ancestor = element.parentNode.closest(selector); + + while (ancestor) { + parents.push(ancestor); + ancestor = ancestor.parentNode.closest(selector); + } + + return parents; + }, + + prev(element, selector) { + let previous = element.previousElementSibling; + + while (previous) { + if (previous.matches(selector)) { + return [previous]; + } + + previous = previous.previousElementSibling; + } + + return []; + }, + + // TODO: this is now unused; remove later along with prev() + next(element, selector) { + let next = element.nextElementSibling; + + while (next) { + if (next.matches(selector)) { + return [next]; + } + + next = next.nextElementSibling; + } + + return []; + }, + + focusableChildren(element) { + const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(','); + return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el)); + } + + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): util/swipe.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$d = 'swipe'; + const EVENT_KEY$9 = '.bs.swipe'; + const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; + const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; + const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; + const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; + const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; + const POINTER_TYPE_TOUCH = 'touch'; + const POINTER_TYPE_PEN = 'pen'; + const CLASS_NAME_POINTER_EVENT = 'pointer-event'; + const SWIPE_THRESHOLD = 40; + const Default$c = { + endCallback: null, + leftCallback: null, + rightCallback: null + }; + const DefaultType$c = { + endCallback: '(function|null)', + leftCallback: '(function|null)', + rightCallback: '(function|null)' + }; + /** + * Class definition + */ + + class Swipe extends Config { + constructor(element, config) { + super(); + this._element = element; + + if (!element || !Swipe.isSupported()) { + return; + } + + this._config = this._getConfig(config); + this._deltaX = 0; + this._supportPointerEvents = Boolean(window.PointerEvent); + + this._initEvents(); + } // Getters + + + static get Default() { + return Default$c; + } + + static get DefaultType() { + return DefaultType$c; + } + + static get NAME() { + return NAME$d; + } // Public + + + dispose() { + EventHandler.off(this._element, EVENT_KEY$9); + } // Private + + + _start(event) { + if (!this._supportPointerEvents) { + this._deltaX = event.touches[0].clientX; + return; + } + + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX; + } + } + + _end(event) { + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX - this._deltaX; + } + + this._handleSwipe(); + + execute(this._config.endCallback); + } + + _move(event) { + this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; + } + + _handleSwipe() { + const absDeltaX = Math.abs(this._deltaX); + + if (absDeltaX <= SWIPE_THRESHOLD) { + return; + } + + const direction = absDeltaX / this._deltaX; + this._deltaX = 0; + + if (!direction) { + return; + } + + execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); + } + + _initEvents() { + if (this._supportPointerEvents) { + EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event)); + + this._element.classList.add(CLASS_NAME_POINTER_EVENT); + } else { + EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event)); + } + } + + _eventIsPointerPenTouch(event) { + return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); + } // Static + + + static isSupported() { + return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + } + + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$c = 'carousel'; + const DATA_KEY$8 = 'bs.carousel'; + const EVENT_KEY$8 = `.${DATA_KEY$8}`; + const DATA_API_KEY$5 = '.data-api'; + const ARROW_LEFT_KEY$1 = 'ArrowLeft'; + const ARROW_RIGHT_KEY$1 = 'ArrowRight'; + const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch + + const ORDER_NEXT = 'next'; + const ORDER_PREV = 'prev'; + const DIRECTION_LEFT = 'left'; + const DIRECTION_RIGHT = 'right'; + const EVENT_SLIDE = `slide${EVENT_KEY$8}`; + const EVENT_SLID = `slid${EVENT_KEY$8}`; + const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`; + const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`; + const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`; + const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`; + const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`; + const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; + const CLASS_NAME_CAROUSEL = 'carousel'; + const CLASS_NAME_ACTIVE$2 = 'active'; + const CLASS_NAME_SLIDE = 'slide'; + const CLASS_NAME_END = 'carousel-item-end'; + const CLASS_NAME_START = 'carousel-item-start'; + const CLASS_NAME_NEXT = 'carousel-item-next'; + const CLASS_NAME_PREV = 'carousel-item-prev'; + const SELECTOR_ACTIVE = '.active'; + const SELECTOR_ITEM = '.carousel-item'; + const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM; + const SELECTOR_ITEM_IMG = '.carousel-item img'; + const SELECTOR_INDICATORS = '.carousel-indicators'; + const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; + const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; + const KEY_TO_DIRECTION = { + [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, + [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT + }; + const Default$b = { + interval: 5000, + keyboard: true, + pause: 'hover', + ride: false, + touch: true, + wrap: true + }; + const DefaultType$b = { + interval: '(number|boolean)', + // TODO:v6 remove boolean support + keyboard: 'boolean', + pause: '(string|boolean)', + ride: '(boolean|string)', + touch: 'boolean', + wrap: 'boolean' + }; + /** + * Class definition + */ + + class Carousel extends BaseComponent { + constructor(element, config) { + super(element, config); + this._interval = null; + this._activeElement = null; + this._isSliding = false; + this.touchTimeout = null; + this._swipeHelper = null; + this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); + + this._addEventListeners(); + + if (this._config.ride === CLASS_NAME_CAROUSEL) { + this.cycle(); + } + } // Getters + + + static get Default() { + return Default$b; + } + + static get DefaultType() { + return DefaultType$b; + } + + static get NAME() { + return NAME$c; + } // Public + + + next() { + this._slide(ORDER_NEXT); + } + + nextWhenVisible() { + // FIXME TODO use `document.visibilityState` + // Don't call next when the page isn't visible + // or the carousel or its parent isn't visible + if (!document.hidden && isVisible(this._element)) { + this.next(); + } + } + + prev() { + this._slide(ORDER_PREV); + } + + pause() { + if (this._isSliding) { + triggerTransitionEnd(this._element); + } + + this._clearInterval(); + } + + cycle() { + this._clearInterval(); + + this._updateInterval(); + + this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); + } + + _maybeEnableCycle() { + if (!this._config.ride) { + return; + } + + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); + return; + } + + this.cycle(); + } + + to(index) { + const items = this._getItems(); + + if (index > items.length - 1 || index < 0) { + return; + } + + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); + return; + } + + const activeIndex = this._getItemIndex(this._getActive()); + + if (activeIndex === index) { + return; + } + + const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; + + this._slide(order, items[index]); + } + + dispose() { + if (this._swipeHelper) { + this._swipeHelper.dispose(); + } + + super.dispose(); + } // Private + + + _configAfterMerge(config) { + config.defaultInterval = config.interval; + return config; + } + + _addEventListeners() { + if (this._config.keyboard) { + EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event)); + } + + if (this._config.pause === 'hover') { + EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); + EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); + } + + if (this._config.touch && Swipe.isSupported()) { + this._addTouchEventListeners(); + } + } + + _addTouchEventListeners() { + for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { + EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault()); + } + + const endCallBack = () => { + if (this._config.pause !== 'hover') { + return; + } // If it's a touch-enabled device, mouseenter/leave are fired as + // part of the mouse compatibility events on first tap - the carousel + // would stop cycling until user tapped out of it; + // here, we listen for touchend, explicitly pause the carousel + // (as if it's the second time we tap on it, mouseenter compat event + // is NOT fired) and after a timeout (to allow for mouse compatibility + // events to fire) we explicitly restart cycling + + + this.pause(); + + if (this.touchTimeout) { + clearTimeout(this.touchTimeout); + } + + this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval); + }; + + const swipeConfig = { + leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), + rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), + endCallback: endCallBack + }; + this._swipeHelper = new Swipe(this._element, swipeConfig); + } + + _keydown(event) { + if (/input|textarea/i.test(event.target.tagName)) { + return; + } + + const direction = KEY_TO_DIRECTION[event.key]; + + if (direction) { + event.preventDefault(); + + this._slide(this._directionToOrder(direction)); + } + } + + _getItemIndex(element) { + return this._getItems().indexOf(element); + } + + _setActiveIndicatorElement(index) { + if (!this._indicatorsElement) { + return; + } + + const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); + activeIndicator.removeAttribute('aria-current'); + const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement); + + if (newActiveIndicator) { + newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2); + newActiveIndicator.setAttribute('aria-current', 'true'); + } + } + + _updateInterval() { + const element = this._activeElement || this._getActive(); + + if (!element) { + return; + } + + const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); + this._config.interval = elementInterval || this._config.defaultInterval; + } + + _slide(order, element = null) { + if (this._isSliding) { + return; + } + + const activeElement = this._getActive(); + + const isNext = order === ORDER_NEXT; + const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); + + if (nextElement === activeElement) { + return; + } + + const nextElementIndex = this._getItemIndex(nextElement); + + const triggerEvent = eventName => { + return EventHandler.trigger(this._element, eventName, { + relatedTarget: nextElement, + direction: this._orderToDirection(order), + from: this._getItemIndex(activeElement), + to: nextElementIndex + }); + }; + + const slideEvent = triggerEvent(EVENT_SLIDE); + + if (slideEvent.defaultPrevented) { + return; + } + + if (!activeElement || !nextElement) { + // Some weirdness is happening, so we bail + // todo: change tests that use empty divs to avoid this check + return; + } + + const isCycling = Boolean(this._interval); + this.pause(); + this._isSliding = true; + + this._setActiveIndicatorElement(nextElementIndex); + + this._activeElement = nextElement; + const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; + const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; + nextElement.classList.add(orderClassName); + reflow(nextElement); + activeElement.classList.add(directionalClassName); + nextElement.classList.add(directionalClassName); + + const completeCallBack = () => { + nextElement.classList.remove(directionalClassName, orderClassName); + nextElement.classList.add(CLASS_NAME_ACTIVE$2); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); + this._isSliding = false; + triggerEvent(EVENT_SLID); + }; + + this._queueCallback(completeCallBack, activeElement, this._isAnimated()); + + if (isCycling) { + this.cycle(); + } + } + + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_SLIDE); + } + + _getActive() { + return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + } + + _getItems() { + return SelectorEngine.find(SELECTOR_ITEM, this._element); + } + + _clearInterval() { + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + } + + _directionToOrder(direction) { + if (isRTL()) { + return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; + } + + return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; + } + + _orderToDirection(order) { + if (isRTL()) { + return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + + return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Carousel.getOrCreateInstance(this, config); + + if (typeof config === 'number') { + data.to(config); + return; + } + + if (typeof config === 'string') { + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](); + } + }); + } + + } + /** + * Data API implementation + */ + + + EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) { + const target = getElementFromSelector(this); + + if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { + return; + } + + event.preventDefault(); + const carousel = Carousel.getOrCreateInstance(target); + const slideIndex = this.getAttribute('data-bs-slide-to'); + + if (slideIndex) { + carousel.to(slideIndex); + + carousel._maybeEnableCycle(); + + return; + } + + if (Manipulator.getDataAttribute(this, 'slide') === 'next') { + carousel.next(); + + carousel._maybeEnableCycle(); + + return; + } + + carousel.prev(); + + carousel._maybeEnableCycle(); + }); + EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => { + const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); + + for (const carousel of carousels) { + Carousel.getOrCreateInstance(carousel); + } + }); + /** + * jQuery + */ + + defineJQueryPlugin(Carousel); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$b = 'collapse'; + const DATA_KEY$7 = 'bs.collapse'; + const EVENT_KEY$7 = `.${DATA_KEY$7}`; + const DATA_API_KEY$4 = '.data-api'; + const EVENT_SHOW$6 = `show${EVENT_KEY$7}`; + const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`; + const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`; + const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`; + const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; + const CLASS_NAME_SHOW$7 = 'show'; + const CLASS_NAME_COLLAPSE = 'collapse'; + const CLASS_NAME_COLLAPSING = 'collapsing'; + const CLASS_NAME_COLLAPSED = 'collapsed'; + const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; + const CLASS_NAME_HORIZONTAL = 'collapse-horizontal'; + const WIDTH = 'width'; + const HEIGHT = 'height'; + const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; + const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; + const Default$a = { + parent: null, + toggle: true + }; + const DefaultType$a = { + parent: '(null|element)', + toggle: 'boolean' + }; + /** + * Class definition + */ + + class Collapse extends BaseComponent { + constructor(element, config) { + super(element, config); + this._isTransitioning = false; + this._triggerArray = []; + const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); + + for (const elem of toggleList) { + const selector = getSelectorFromElement(elem); + const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element); + + if (selector !== null && filterElement.length) { + this._triggerArray.push(elem); + } + } + + this._initializeChildren(); + + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); + } + + if (this._config.toggle) { + this.toggle(); + } + } // Getters + + + static get Default() { + return Default$a; + } + + static get DefaultType() { + return DefaultType$a; + } + + static get NAME() { + return NAME$b; + } // Public + + + toggle() { + if (this._isShown()) { + this.hide(); + } else { + this.show(); + } + } + + show() { + if (this._isTransitioning || this._isShown()) { + return; + } + + let activeChildren = []; // find active children + + if (this._config.parent) { + activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, { + toggle: false + })); + } + + if (activeChildren.length && activeChildren[0]._isTransitioning) { + return; + } + + const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6); + + if (startEvent.defaultPrevented) { + return; + } + + for (const activeInstance of activeChildren) { + activeInstance.hide(); + } + + const dimension = this._getDimension(); + + this._element.classList.remove(CLASS_NAME_COLLAPSE); + + this._element.classList.add(CLASS_NAME_COLLAPSING); + + this._element.style[dimension] = 0; + + this._addAriaAndCollapsedClass(this._triggerArray, true); + + this._isTransitioning = true; + + const complete = () => { + this._isTransitioning = false; + + this._element.classList.remove(CLASS_NAME_COLLAPSING); + + this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); + + this._element.style[dimension] = ''; + EventHandler.trigger(this._element, EVENT_SHOWN$6); + }; + + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + const scrollSize = `scroll${capitalizedDimension}`; + + this._queueCallback(complete, this._element, true); + + this._element.style[dimension] = `${this._element[scrollSize]}px`; + } + + hide() { + if (this._isTransitioning || !this._isShown()) { + return; + } + + const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6); + + if (startEvent.defaultPrevented) { + return; + } + + const dimension = this._getDimension(); + + this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; + reflow(this._element); + + this._element.classList.add(CLASS_NAME_COLLAPSING); + + this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); + + for (const trigger of this._triggerArray) { + const element = getElementFromSelector(trigger); + + if (element && !this._isShown(element)) { + this._addAriaAndCollapsedClass([trigger], false); + } + } + + this._isTransitioning = true; + + const complete = () => { + this._isTransitioning = false; + + this._element.classList.remove(CLASS_NAME_COLLAPSING); + + this._element.classList.add(CLASS_NAME_COLLAPSE); + + EventHandler.trigger(this._element, EVENT_HIDDEN$6); + }; + + this._element.style[dimension] = ''; + + this._queueCallback(complete, this._element, true); + } + + _isShown(element = this._element) { + return element.classList.contains(CLASS_NAME_SHOW$7); + } // Private + + + _configAfterMerge(config) { + config.toggle = Boolean(config.toggle); // Coerce string values + + config.parent = getElement(config.parent); + return config; + } + + _getDimension() { + return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; + } + + _initializeChildren() { + if (!this._config.parent) { + return; + } + + const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4); + + for (const element of children) { + const selected = getElementFromSelector(element); + + if (selected) { + this._addAriaAndCollapsedClass([element], this._isShown(selected)); + } + } + } + + _getFirstLevelChildren(selector) { + const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth + + return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element)); + } + + _addAriaAndCollapsedClass(triggerArray, isOpen) { + if (!triggerArray.length) { + return; + } + + for (const element of triggerArray) { + element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); + element.setAttribute('aria-expanded', isOpen); + } + } // Static + + + static jQueryInterface(config) { + const _config = {}; + + if (typeof config === 'string' && /show|hide/.test(config)) { + _config.toggle = false; + } + + return this.each(function () { + const data = Collapse.getOrCreateInstance(this, _config); + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](); + } + }); + } + + } + /** + * Data API implementation + */ + + + EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) { + // preventDefault only for elements (which change the URL) not inside the collapsible element + if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { + event.preventDefault(); + } + + const selector = getSelectorFromElement(this); + const selectorElements = SelectorEngine.find(selector); + + for (const element of selectorElements) { + Collapse.getOrCreateInstance(element, { + toggle: false + }).toggle(); + } + }); + /** + * jQuery + */ + + defineJQueryPlugin(Collapse); + + var top = 'top'; + var bottom = 'bottom'; + var right = 'right'; + var left = 'left'; + var auto = 'auto'; + var basePlacements = [top, bottom, right, left]; + var start = 'start'; + var end = 'end'; + var clippingParents = 'clippingParents'; + var viewport = 'viewport'; + var popper = 'popper'; + var reference = 'reference'; + var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); + }, []); + var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); + }, []); // modifiers that need to read the DOM + + var beforeRead = 'beforeRead'; + var read = 'read'; + var afterRead = 'afterRead'; // pure-logic modifiers + + var beforeMain = 'beforeMain'; + var main = 'main'; + var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + + var beforeWrite = 'beforeWrite'; + var write = 'write'; + var afterWrite = 'afterWrite'; + var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + + function getNodeName(element) { + return element ? (element.nodeName || '').toLowerCase() : null; + } + + function getWindow(node) { + if (node == null) { + return window; + } + + if (node.toString() !== '[object Window]') { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + + return node; + } + + function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; + } + + function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; + } + + function isShadowRoot(node) { + // IE 11 has no ShadowRoot + if (typeof ShadowRoot === 'undefined') { + return false; + } + + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; + } + + // and applies them to the HTMLElements such as popper and arrow + + function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function (name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element = state.elements[name]; // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } // Flow doesn't support to extend this property, but it's the most + // effective way to apply styles to an HTMLElement + // $FlowFixMe[cannot-write] + + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (name) { + var value = attributes[name]; + + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value === true ? '' : value); + } + }); + }); + } + + function effect$2(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: '0', + top: '0', + margin: '0' + }, + arrow: { + position: 'absolute' + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + + return function () { + Object.keys(state.elements).forEach(function (name) { + var element = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them + + var style = styleProperties.reduce(function (style, property) { + style[property] = ''; + return style; + }, {}); // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (attribute) { + element.removeAttribute(attribute); + }); + }); + }; + } // eslint-disable-next-line import/no-unused-modules + + + const applyStyles$1 = { + name: 'applyStyles', + enabled: true, + phase: 'write', + fn: applyStyles, + effect: effect$2, + requires: ['computeStyles'] + }; + + function getBasePlacement(placement) { + return placement.split('-')[0]; + } + + var max = Math.max; + var min = Math.min; + var round = Math.round; + + function getBoundingClientRect(element, includeScale) { + if (includeScale === void 0) { + includeScale = false; + } + + var rect = element.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; + + if (isHTMLElement(element) && includeScale) { + var offsetHeight = element.offsetHeight; + var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale + // Fallback to 1 in case both values are `0` + + if (offsetWidth > 0) { + scaleX = round(rect.width) / offsetWidth || 1; + } + + if (offsetHeight > 0) { + scaleY = round(rect.height) / offsetHeight || 1; + } + } + + return { + width: rect.width / scaleX, + height: rect.height / scaleY, + top: rect.top / scaleY, + right: rect.right / scaleX, + bottom: rect.bottom / scaleY, + left: rect.left / scaleX, + x: rect.left / scaleX, + y: rect.top / scaleY + }; + } + + // means it doesn't take into account transforms. + + function getLayoutRect(element) { + var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. + // Fixes https://github.com/popperjs/popper-core/issues/1223 + + var width = element.offsetWidth; + var height = element.offsetHeight; + + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + + return { + x: element.offsetLeft, + y: element.offsetTop, + width: width, + height: height + }; + } + + function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method + + if (parent.contains(child)) { + return true; + } // then fallback to custom implementation with Shadow DOM support + else if (rootNode && isShadowRoot(rootNode)) { + var next = child; + + do { + if (next && parent.isSameNode(next)) { + return true; + } // $FlowFixMe[prop-missing]: need a better way to handle this... + + + next = next.parentNode || next.host; + } while (next); + } // Give up, the result is false + + + return false; + } + + function getComputedStyle$1(element) { + return getWindow(element).getComputedStyle(element); + } + + function isTableElement(element) { + return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; + } + + function getDocumentElement(element) { + // $FlowFixMe[incompatible-return]: assume body is always available + return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] + element.document) || window.document).documentElement; + } + + function getParentNode(element) { + if (getNodeName(element) === 'html') { + return element; + } + + return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element.parentNode || ( // DOM Element detected + isShadowRoot(element) ? element.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element) // fallback + + ); + } + + function getTrueOffsetParent(element) { + if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle$1(element).position === 'fixed') { + return null; + } + + return element.offsetParent; + } // `.offsetParent` reports `null` for fixed elements, while absolute elements + // return the containing block + + + function getContainingBlock(element) { + var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1; + var isIE = navigator.userAgent.indexOf('Trident') !== -1; + + if (isIE && isHTMLElement(element)) { + // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport + var elementCss = getComputedStyle$1(element); + + if (elementCss.position === 'fixed') { + return null; + } + } + + var currentNode = getParentNode(element); + + if (isShadowRoot(currentNode)) { + currentNode = currentNode.host; + } + + while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle$1(currentNode); // This is non-exhaustive but covers the most common CSS properties that + // create a containing block. + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + + if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { + return currentNode; + } else { + currentNode = currentNode.parentNode; + } + } + + return null; + } // Gets the closest ancestor positioned element. Handles some edge cases, + // such as table ancestors and cross browser bugs. + + + function getOffsetParent(element) { + var window = getWindow(element); + var offsetParent = getTrueOffsetParent(element); + + while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') { + offsetParent = getTrueOffsetParent(offsetParent); + } + + if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static')) { + return window; + } + + return offsetParent || getContainingBlock(element) || window; + } + + function getMainAxisFromPlacement(placement) { + return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; + } + + function within(min$1, value, max$1) { + return max(min$1, min(value, max$1)); + } + function withinMaxClamp(min, value, max) { + var v = within(min, value, max); + return v > max ? max : v; + } + + function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + } + + function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); + } + + function expandToHashMap(value, keys) { + return keys.reduce(function (hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); + } + + var toPaddingObject = function toPaddingObject(padding, state) { + padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + }; + + function arrow(_ref) { + var _state$modifiersData$; + + var state = _ref.state, + name = _ref.name, + options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets = state.modifiersData.popperOffsets; + var basePlacement = getBasePlacement(state.placement); + var axis = getMainAxisFromPlacement(basePlacement); + var isVertical = [left, right].indexOf(basePlacement) >= 0; + var len = isVertical ? 'height' : 'width'; + + if (!arrowElement || !popperOffsets) { + return; + } + + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = getLayoutRect(arrowElement); + var minProp = axis === 'y' ? top : left; + var maxProp = axis === 'y' ? bottom : right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; + var startDiff = popperOffsets[axis] - state.rects.reference[axis]; + var arrowOffsetParent = getOffsetParent(arrowElement); + var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is + // outside of the popper bounds + + var min = paddingObject[minProp]; + var max = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset = within(min, center, max); // Prevents breaking syntax highlighting... + + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); + } + + function effect$1(_ref2) { + var state = _ref2.state, + options = _ref2.options; + var _options$element = options.element, + arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; + + if (arrowElement == null) { + return; + } // CSS selector + + + if (typeof arrowElement === 'string') { + arrowElement = state.elements.popper.querySelector(arrowElement); + + if (!arrowElement) { + return; + } + } + + if (!contains(state.elements.popper, arrowElement)) { + + return; + } + + state.elements.arrow = arrowElement; + } // eslint-disable-next-line import/no-unused-modules + + + const arrow$1 = { + name: 'arrow', + enabled: true, + phase: 'main', + fn: arrow, + effect: effect$1, + requires: ['popperOffsets'], + requiresIfExists: ['preventOverflow'] + }; + + function getVariation(placement) { + return placement.split('-')[1]; + } + + var unsetSides = { + top: 'auto', + right: 'auto', + bottom: 'auto', + left: 'auto' + }; // Round the offsets to the nearest suitable subpixel based on the DPR. + // Zooming can change the DPR, but it seems to report a value that will + // cleanly divide the values into the appropriate subpixels. + + function roundOffsetsByDPR(_ref) { + var x = _ref.x, + y = _ref.y; + var win = window; + var dpr = win.devicePixelRatio || 1; + return { + x: round(x * dpr) / dpr || 0, + y: round(y * dpr) / dpr || 0 + }; + } + + function mapToStyles(_ref2) { + var _Object$assign2; + + var popper = _ref2.popper, + popperRect = _ref2.popperRect, + placement = _ref2.placement, + variation = _ref2.variation, + offsets = _ref2.offsets, + position = _ref2.position, + gpuAcceleration = _ref2.gpuAcceleration, + adaptive = _ref2.adaptive, + roundOffsets = _ref2.roundOffsets, + isFixed = _ref2.isFixed; + var _offsets$x = offsets.x, + x = _offsets$x === void 0 ? 0 : _offsets$x, + _offsets$y = offsets.y, + y = _offsets$y === void 0 ? 0 : _offsets$y; + + var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ + x: x, + y: y + }) : { + x: x, + y: y + }; + + x = _ref3.x; + y = _ref3.y; + var hasX = offsets.hasOwnProperty('x'); + var hasY = offsets.hasOwnProperty('y'); + var sideX = left; + var sideY = top; + var win = window; + + if (adaptive) { + var offsetParent = getOffsetParent(popper); + var heightProp = 'clientHeight'; + var widthProp = 'clientWidth'; + + if (offsetParent === getWindow(popper)) { + offsetParent = getDocumentElement(popper); + + if (getComputedStyle$1(offsetParent).position !== 'static' && position === 'absolute') { + heightProp = 'scrollHeight'; + widthProp = 'scrollWidth'; + } + } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it + + + offsetParent = offsetParent; + + if (placement === top || (placement === left || placement === right) && variation === end) { + sideY = bottom; + var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] + offsetParent[heightProp]; + y -= offsetY - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } + + if (placement === left || (placement === top || placement === bottom) && variation === end) { + sideX = right; + var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] + offsetParent[widthProp]; + x -= offsetX - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } + } + + var commonStyles = Object.assign({ + position: position + }, adaptive && unsetSides); + + var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ + x: x, + y: y + }) : { + x: x, + y: y + }; + + x = _ref4.x; + y = _ref4.y; + + if (gpuAcceleration) { + var _Object$assign; + + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); + } + + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); + } + + function computeStyles(_ref5) { + var state = _ref5.state, + options = _ref5.options; + var _options$gpuAccelerat = options.gpuAcceleration, + gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, + _options$adaptive = options.adaptive, + adaptive = _options$adaptive === void 0 ? true : _options$adaptive, + _options$roundOffsets = options.roundOffsets, + roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + + var commonStyles = { + placement: getBasePlacement(state.placement), + variation: getVariation(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration: gpuAcceleration, + isFixed: state.options.strategy === 'fixed' + }; + + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive: adaptive, + roundOffsets: roundOffsets + }))); + } + + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: 'absolute', + adaptive: false, + roundOffsets: roundOffsets + }))); + } + + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-placement': state.placement + }); + } // eslint-disable-next-line import/no-unused-modules + + + const computeStyles$1 = { + name: 'computeStyles', + enabled: true, + phase: 'beforeWrite', + fn: computeStyles, + data: {} + }; + + var passive = { + passive: true + }; + + function effect(_ref) { + var state = _ref.state, + instance = _ref.instance, + options = _ref.options; + var _options$scroll = options.scroll, + scroll = _options$scroll === void 0 ? true : _options$scroll, + _options$resize = options.resize, + resize = _options$resize === void 0 ? true : _options$resize; + var window = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.addEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.addEventListener('resize', instance.update, passive); + } + + return function () { + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.removeEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.removeEventListener('resize', instance.update, passive); + } + }; + } // eslint-disable-next-line import/no-unused-modules + + + const eventListeners = { + name: 'eventListeners', + enabled: true, + phase: 'write', + fn: function fn() {}, + effect: effect, + data: {} + }; + + var hash$1 = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' + }; + function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash$1[matched]; + }); + } + + var hash = { + start: 'end', + end: 'start' + }; + function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, function (matched) { + return hash[matched]; + }); + } + + function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft: scrollLeft, + scrollTop: scrollTop + }; + } + + function getWindowScrollBarX(element) { + // If has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; + } + + function getViewportRect(element) { + var win = getWindow(element); + var html = getDocumentElement(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper + // can be obscured underneath it. + // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even + // if it isn't open, so if this isn't available, the popper will be detected + // to overflow the bottom of the screen too early. + + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently) + // In Chrome, it returns a value very close to 0 (+/-) but contains rounding + // errors due to floating point numbers, so we need to check precision. + // Safari returns a number <= 0, usually < -1 when pinch-zoomed + // Feature detection fails in mobile emulation mode in Chrome. + // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) < + // 0.001 + // Fallback here: "Not Safari" userAgent + + if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + + return { + width: width, + height: height, + x: x + getWindowScrollBarX(element), + y: y + }; + } + + // of the `` and `` rect bounds if horizontally scrollable + + function getDocumentRect(element) { + var _element$ownerDocumen; + + var html = getDocumentElement(element); + var winScroll = getWindowScroll(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element); + var y = -winScroll.scrollTop; + + if (getComputedStyle$1(body || html).direction === 'rtl') { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } + + return { + width: width, + height: height, + x: x, + y: y + }; + } + + function isScrollParent(element) { + // Firefox wants us to check `-x` and `-y` variations as well + var _getComputedStyle = getComputedStyle$1(element), + overflow = _getComputedStyle.overflow, + overflowX = _getComputedStyle.overflowX, + overflowY = _getComputedStyle.overflowY; + + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); + } + + function getScrollParent(node) { + if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { + // $FlowFixMe[incompatible-return]: assume body is always available + return node.ownerDocument.body; + } + + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } + + return getScrollParent(getParentNode(node)); + } + + /* + given a DOM element, return the list of all scroll parents, up the list of ancesors + until we get to the top window object. This list is what we attach scroll listeners + to, because if any of these parent elements scroll, we'll need to re-calculate the + reference element's position. + */ + + function listScrollParents(element, list) { + var _element$ownerDocumen; + + if (list === void 0) { + list = []; + } + + var scrollParent = getScrollParent(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))); + } + + function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); + } + + function getInnerBoundingClientRect(element) { + var rect = getBoundingClientRect(element); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; + } + + function getClientRectFromMixedType(element, clippingParent) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element))); + } // A "clipping parent" is an overflowable container with the characteristic of + // clipping (or hiding) overflowing elements with a position different from + // `initial` + + + function getClippingParents(element) { + var clippingParents = listScrollParents(getParentNode(element)); + var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle$1(element).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; + + if (!isElement(clipperElement)) { + return []; + } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 + + + return clippingParents.filter(function (clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; + }); + } // Gets the maximum area that the element is visible in due to any number of + // clipping parents + + + function getClippingRect(element, boundary, rootBoundary) { + var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element, firstClippingParent)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; + } + + function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; + + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; + + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; + + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; + } + + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; + + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; + + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + } + } + + return offsets; + } + + function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + _options$placement = _options.placement, + placement = _options$placement === void 0 ? state.placement : _options$placement, + _options$boundary = _options.boundary, + boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, + _options$rootBoundary = _options.rootBoundary, + rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, + _options$elementConte = _options.elementContext, + elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, + _options$altBoundary = _options.altBoundary, + altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, + _options$padding = _options.padding, + padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary); + var referenceClientRect = getBoundingClientRect(state.elements.reference); + var popperOffsets = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: 'absolute', + placement: placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect + // 0 or negative = within the clipping rect + + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element + + if (elementContext === popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function (key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; + overflowOffsets[key] += offset[axis] * multiply; + }); + } + + return overflowOffsets; + } + + function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + placement = _options.placement, + boundary = _options.boundary, + rootBoundary = _options.rootBoundary, + padding = _options.padding, + flipVariations = _options.flipVariations, + _options$allowedAutoP = _options.allowedAutoPlacements, + allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; + var variation = getVariation(placement); + var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) { + return getVariation(placement) === variation; + }) : basePlacements; + var allowedPlacements = placements$1.filter(function (placement) { + return allowedAutoPlacements.indexOf(placement) >= 0; + }); + + if (allowedPlacements.length === 0) { + allowedPlacements = placements$1; + } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... + + + var overflows = allowedPlacements.reduce(function (acc, placement) { + acc[placement] = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding + })[getBasePlacement(placement)]; + return acc; + }, {}); + return Object.keys(overflows).sort(function (a, b) { + return overflows[a] - overflows[b]; + }); + } + + function getExpandedFallbackPlacements(placement) { + if (getBasePlacement(placement) === auto) { + return []; + } + + var oppositePlacement = getOppositePlacement(placement); + return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; + } + + function flip(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + + if (state.modifiersData[name]._skip) { + return; + } + + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, + specifiedFallbackPlacements = options.fallbackPlacements, + padding = options.padding, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + _options$flipVariatio = options.flipVariations, + flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, + allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = getBasePlacement(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); + var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { + return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + flipVariations: flipVariations, + allowedAutoPlacements: allowedAutoPlacements + }) : placement); + }, []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = new Map(); + var makeFallbackChecks = true; + var firstFittingPlacement = placements[0]; + + for (var i = 0; i < placements.length; i++) { + var placement = placements[i]; + + var _basePlacement = getBasePlacement(placement); + + var isStartVariation = getVariation(placement) === start; + var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; + var len = isVertical ? 'width' : 'height'; + var overflow = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + altBoundary: altBoundary, + padding: padding + }); + var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; + + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = getOppositePlacement(mainVariationSide); + } + + var altVariationSide = getOppositePlacement(mainVariationSide); + var checks = []; + + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); + } + + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); + } + + if (checks.every(function (check) { + return check; + })) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; + } + + checksMap.set(placement, checks); + } + + if (makeFallbackChecks) { + // `2` may be desired in some cases – research later + var numberOfChecks = flipVariations ? 3 : 1; + + var _loop = function _loop(_i) { + var fittingPlacement = placements.find(function (placement) { + var checks = checksMap.get(placement); + + if (checks) { + return checks.slice(0, _i).every(function (check) { + return check; + }); + } + }); + + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; + } + }; + + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); + + if (_ret === "break") break; + } + } + + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; + } + } // eslint-disable-next-line import/no-unused-modules + + + const flip$1 = { + name: 'flip', + enabled: true, + phase: 'main', + fn: flip, + requiresIfExists: ['offset'], + data: { + _skip: false + } + }; + + function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } + + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; + } + + function isAnySideFullyClipped(overflow) { + return [top, right, bottom, left].some(function (side) { + return overflow[side] >= 0; + }); + } + + function hide(_ref) { + var state = _ref.state, + name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = detectOverflow(state, { + elementContext: 'reference' + }); + var popperAltOverflow = detectOverflow(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets: referenceClippingOffsets, + popperEscapeOffsets: popperEscapeOffsets, + isReferenceHidden: isReferenceHidden, + hasPopperEscaped: hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-reference-hidden': isReferenceHidden, + 'data-popper-escaped': hasPopperEscaped + }); + } // eslint-disable-next-line import/no-unused-modules + + + const hide$1 = { + name: 'hide', + enabled: true, + phase: 'main', + requiresIfExists: ['preventOverflow'], + fn: hide + }; + + function distanceAndSkiddingToXY(placement, rects, offset) { + var basePlacement = getBasePlacement(placement); + var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; + + var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { + placement: placement + })) : offset, + skidding = _ref[0], + distance = _ref[1]; + + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [left, right].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; + } + + function offset(_ref2) { + var state = _ref2.state, + options = _ref2.options, + name = _ref2.name; + var _options$offset = options.offset, + offset = _options$offset === void 0 ? [0, 0] : _options$offset; + var data = placements.reduce(function (acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); + return acc; + }, {}); + var _data$state$placement = data[state.placement], + x = _data$state$placement.x, + y = _data$state$placement.y; + + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; + } + + state.modifiersData[name] = data; + } // eslint-disable-next-line import/no-unused-modules + + + const offset$1 = { + name: 'offset', + enabled: true, + phase: 'main', + requires: ['popperOffsets'], + fn: offset + }; + + function popperOffsets(_ref) { + var state = _ref.state, + name = _ref.name; + // Offsets are the actual position the popper needs to have to be + // properly positioned near its reference element + // This is the most basic placement, and will be adjusted by + // the modifiers in the next step + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: 'absolute', + placement: state.placement + }); + } // eslint-disable-next-line import/no-unused-modules + + + const popperOffsets$1 = { + name: 'popperOffsets', + enabled: true, + phase: 'read', + fn: popperOffsets, + data: {} + }; + + function getAltAxis(axis) { + return axis === 'x' ? 'y' : 'x'; + } + + function preventOverflow(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + padding = options.padding, + _options$tether = options.tether, + tether = _options$tether === void 0 ? true : _options$tether, + _options$tetherOffset = options.tetherOffset, + tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = detectOverflow(state, { + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + altBoundary: altBoundary + }); + var basePlacement = getBasePlacement(state.placement); + var variation = getVariation(state.placement); + var isBasePlacement = !variation; + var mainAxis = getMainAxisFromPlacement(basePlacement); + var altAxis = getAltAxis(mainAxis); + var popperOffsets = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? { + mainAxis: tetherOffsetValue, + altAxis: tetherOffsetValue + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, tetherOffsetValue); + var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; + var data = { + x: 0, + y: 0 + }; + + if (!popperOffsets) { + return; + } + + if (checkMainAxis) { + var _offsetModifierState$; + + var mainSide = mainAxis === 'y' ? top : left; + var altSide = mainAxis === 'y' ? bottom : right; + var len = mainAxis === 'y' ? 'height' : 'width'; + var offset = popperOffsets[mainAxis]; + var min$1 = offset + overflow[mainSide]; + var max$1 = offset - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go + // outside the reference bounds + + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want + // to include its full size in the calculation. If the reference is small + // and near the edge of a boundary, the popper can overflow even if the + // reference is not overflowing as well (e.g. virtual elements with no + // width or height) + + var arrowLen = within(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; + var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; + var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; + var tetherMax = offset + maxOffset - offsetModifierValue; + var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1); + popperOffsets[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset; + } + + if (checkAltAxis) { + var _offsetModifierState$2; + + var _mainSide = mainAxis === 'x' ? top : left; + + var _altSide = mainAxis === 'x' ? bottom : right; + + var _offset = popperOffsets[altAxis]; + + var _len = altAxis === 'y' ? 'height' : 'width'; + + var _min = _offset + overflow[_mainSide]; + + var _max = _offset - overflow[_altSide]; + + var isOriginSide = [top, left].indexOf(basePlacement) !== -1; + + var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; + + var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; + + var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; + + var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); + + popperOffsets[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; + } + + state.modifiersData[name] = data; + } // eslint-disable-next-line import/no-unused-modules + + + const preventOverflow$1 = { + name: 'preventOverflow', + enabled: true, + phase: 'main', + fn: preventOverflow, + requiresIfExists: ['offset'] + }; + + function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + + function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } + } + + function isElementScaled(element) { + var rect = element.getBoundingClientRect(); + var scaleX = round(rect.width) / element.offsetWidth || 1; + var scaleY = round(rect.height) / element.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; + } // Returns the composite rect of an element relative to its offsetParent. + // Composite means it takes into account transforms as well as layout. + + + function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; + } + + function order(modifiers) { + var map = new Map(); + var visited = new Set(); + var result = []; + modifiers.forEach(function (modifier) { + map.set(modifier.name, modifier); + }); // On visiting object, check for its dependencies and visit them recursively + + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function (dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + + if (depModifier) { + sort(depModifier); + } + } + }); + result.push(modifier); + } + + modifiers.forEach(function (modifier) { + if (!visited.has(modifier.name)) { + // check for visited object + sort(modifier); + } + }); + return result; + } + + function orderModifiers(modifiers) { + // order based on dependencies + var orderedModifiers = order(modifiers); // order based on phase + + return modifierPhases.reduce(function (acc, phase) { + return acc.concat(orderedModifiers.filter(function (modifier) { + return modifier.phase === phase; + })); + }, []); + } + + function debounce(fn) { + var pending; + return function () { + if (!pending) { + pending = new Promise(function (resolve) { + Promise.resolve().then(function () { + pending = undefined; + resolve(fn()); + }); + }); + } + + return pending; + }; + } + + function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); + } + + var DEFAULT_OPTIONS = { + placement: 'bottom', + modifiers: [], + strategy: 'absolute' + }; + + function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return !args.some(function (element) { + return !(element && typeof element.getBoundingClientRect === 'function'); + }); + } + + function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + + var _generatorOptions = generatorOptions, + _generatorOptions$def = _generatorOptions.defaultModifiers, + defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, + _generatorOptions$def2 = _generatorOptions.defaultOptions, + defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + + var state = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference, + popper: popper + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state: state, + setOptions: function setOptions(setOptionsAction) { + var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], + popper: listScrollParents(popper) + }; // Orders the modifiers based on their dependencies and `phase` + // properties + + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers + + state.orderedModifiers = orderedModifiers.filter(function (m) { + return m.enabled; + }); // Validate the provided modifiers so that the consumer will get warned + + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + + var _state$elements = state.elements, + reference = _state$elements.reference, + popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements + // anymore + + if (!areValidElements(reference, popper)) { + + return; + } // Store the reference and popper rects to be read by modifiers + + + state.rects = { + reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), + popper: getLayoutRect(popper) + }; // Modifiers have the ability to reset the current update cycle. The + // most common use case for this is the `flip` modifier changing the + // placement, which then needs to re-run all the modifiers, because the + // logic was previously ran for the previous placement and is therefore + // stale/incorrect + + state.reset = false; + state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier + // is filled with the initial data specified by the modifier. This means + // it doesn't persist and is fresh on each update. + // To ensure persistent data, use `${name}#persistent` + + state.orderedModifiers.forEach(function (modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + + for (var index = 0; index < state.orderedModifiers.length; index++) { + + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + + var _state$orderedModifie = state.orderedModifiers[index], + fn = _state$orderedModifie.fn, + _state$orderedModifie2 = _state$orderedModifie.options, + _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, + name = _state$orderedModifie.name; + + if (typeof fn === 'function') { + state = fn({ + state: state, + options: _options, + name: name, + instance: instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function () { + return new Promise(function (resolve) { + instance.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + + if (!areValidElements(reference, popper)) { + + return instance; + } + + instance.setOptions(options).then(function (state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + }); // Modifiers have the ability to execute arbitrary code before the first + // update cycle runs. They will be executed in the same order as the update + // cycle. This is useful when a modifier adds some persistent data that + // other modifiers need to use, but the modifier is run after the dependent + // one. + + function runModifierEffects() { + state.orderedModifiers.forEach(function (_ref3) { + var name = _ref3.name, + _ref3$options = _ref3.options, + options = _ref3$options === void 0 ? {} : _ref3$options, + effect = _ref3.effect; + + if (typeof effect === 'function') { + var cleanupFn = effect({ + state: state, + name: name, + instance: instance, + options: options + }); + + var noopFn = function noopFn() {}; + + effectCleanupFns.push(cleanupFn || noopFn); + } + }); + } + + function cleanupModifierEffects() { + effectCleanupFns.forEach(function (fn) { + return fn(); + }); + effectCleanupFns = []; + } + + return instance; + }; + } + var createPopper$2 = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules + + var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1]; + var createPopper$1 = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers$1 + }); // eslint-disable-next-line import/no-unused-modules + + var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; + var createPopper = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers + }); // eslint-disable-next-line import/no-unused-modules + + const Popper = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ + __proto__: null, + popperGenerator, + detectOverflow, + createPopperBase: createPopper$2, + createPopper, + createPopperLite: createPopper$1, + top, + bottom, + right, + left, + auto, + basePlacements, + start, + end, + clippingParents, + viewport, + popper, + reference, + variationPlacements, + placements, + beforeRead, + read, + afterRead, + beforeMain, + main, + afterMain, + beforeWrite, + write, + afterWrite, + modifierPhases, + applyStyles: applyStyles$1, + arrow: arrow$1, + computeStyles: computeStyles$1, + eventListeners, + flip: flip$1, + hide: hide$1, + offset: offset$1, + popperOffsets: popperOffsets$1, + preventOverflow: preventOverflow$1 + }, Symbol.toStringTag, { value: 'Module' })); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$a = 'dropdown'; + const DATA_KEY$6 = 'bs.dropdown'; + const EVENT_KEY$6 = `.${DATA_KEY$6}`; + const DATA_API_KEY$3 = '.data-api'; + const ESCAPE_KEY$2 = 'Escape'; + const TAB_KEY$1 = 'Tab'; + const ARROW_UP_KEY$1 = 'ArrowUp'; + const ARROW_DOWN_KEY$1 = 'ArrowDown'; + const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button + + const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`; + const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`; + const EVENT_SHOW$5 = `show${EVENT_KEY$6}`; + const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`; + const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; + const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`; + const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`; + const CLASS_NAME_SHOW$6 = 'show'; + const CLASS_NAME_DROPUP = 'dropup'; + const CLASS_NAME_DROPEND = 'dropend'; + const CLASS_NAME_DROPSTART = 'dropstart'; + const CLASS_NAME_DROPUP_CENTER = 'dropup-center'; + const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'; + const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'; + const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`; + const SELECTOR_MENU = '.dropdown-menu'; + const SELECTOR_NAVBAR = '.navbar'; + const SELECTOR_NAVBAR_NAV = '.navbar-nav'; + const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; + const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; + const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'; + const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'; + const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; + const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; + const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; + const PLACEMENT_TOPCENTER = 'top'; + const PLACEMENT_BOTTOMCENTER = 'bottom'; + const Default$9 = { + autoClose: true, + boundary: 'clippingParents', + display: 'dynamic', + offset: [0, 2], + popperConfig: null, + reference: 'toggle' + }; + const DefaultType$9 = { + autoClose: '(boolean|string)', + boundary: '(string|element)', + display: 'string', + offset: '(array|string|function)', + popperConfig: '(null|object|function)', + reference: '(string|element|object)' + }; + /** + * Class definition + */ + + class Dropdown extends BaseComponent { + constructor(element, config) { + super(element, config); + this._popper = null; + this._parent = this._element.parentNode; // dropdown wrapper + + this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent); + this._inNavbar = this._detectNavbar(); + } // Getters + + + static get Default() { + return Default$9; + } + + static get DefaultType() { + return DefaultType$9; + } + + static get NAME() { + return NAME$a; + } // Public + + + toggle() { + return this._isShown() ? this.hide() : this.show(); + } + + show() { + if (isDisabled(this._element) || this._isShown()) { + return; + } + + const relatedTarget = { + relatedTarget: this._element + }; + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget); + + if (showEvent.defaultPrevented) { + return; + } + + this._createPopper(); // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + + + if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { + for (const element of [].concat(...document.body.children)) { + EventHandler.on(element, 'mouseover', noop); + } + } + + this._element.focus(); + + this._element.setAttribute('aria-expanded', true); + + this._menu.classList.add(CLASS_NAME_SHOW$6); + + this._element.classList.add(CLASS_NAME_SHOW$6); + + EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget); + } + + hide() { + if (isDisabled(this._element) || !this._isShown()) { + return; + } + + const relatedTarget = { + relatedTarget: this._element + }; + + this._completeHide(relatedTarget); + } + + dispose() { + if (this._popper) { + this._popper.destroy(); + } + + super.dispose(); + } + + update() { + this._inNavbar = this._detectNavbar(); + + if (this._popper) { + this._popper.update(); + } + } // Private + + + _completeHide(relatedTarget) { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget); + + if (hideEvent.defaultPrevented) { + return; + } // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + + + if ('ontouchstart' in document.documentElement) { + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, 'mouseover', noop); + } + } + + if (this._popper) { + this._popper.destroy(); + } + + this._menu.classList.remove(CLASS_NAME_SHOW$6); + + this._element.classList.remove(CLASS_NAME_SHOW$6); + + this._element.setAttribute('aria-expanded', 'false'); + + Manipulator.removeDataAttribute(this._menu, 'popper'); + EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget); + } + + _getConfig(config) { + config = super._getConfig(config); + + if (typeof config.reference === 'object' && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { + // Popper virtual elements require a getBoundingClientRect method + throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); + } + + return config; + } + + _createPopper() { + if (typeof Popper === 'undefined') { + throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); + } + + let referenceElement = this._element; + + if (this._config.reference === 'parent') { + referenceElement = this._parent; + } else if (isElement$1(this._config.reference)) { + referenceElement = getElement(this._config.reference); + } else if (typeof this._config.reference === 'object') { + referenceElement = this._config.reference; + } + + const popperConfig = this._getPopperConfig(); + + this._popper = createPopper(referenceElement, this._menu, popperConfig); + } + + _isShown() { + return this._menu.classList.contains(CLASS_NAME_SHOW$6); + } + + _getPlacement() { + const parentDropdown = this._parent; + + if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { + return PLACEMENT_RIGHT; + } + + if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { + return PLACEMENT_LEFT; + } + + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { + return PLACEMENT_TOPCENTER; + } + + if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) { + return PLACEMENT_BOTTOMCENTER; + } // We need to trim the value because custom properties can also include spaces + + + const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; + + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { + return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; + } + + return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; + } + + _detectNavbar() { + return this._element.closest(SELECTOR_NAVBAR) !== null; + } + + _getOffset() { + const { + offset + } = this._config; + + if (typeof offset === 'string') { + return offset.split(',').map(value => Number.parseInt(value, 10)); + } + + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); + } + + return offset; + } + + _getPopperConfig() { + const defaultBsPopperConfig = { + placement: this._getPlacement(), + modifiers: [{ + name: 'preventOverflow', + options: { + boundary: this._config.boundary + } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }] + }; // Disable Popper if we have a static display or Dropdown is in Navbar + + if (this._inNavbar || this._config.display === 'static') { + Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove + + defaultBsPopperConfig.modifiers = [{ + name: 'applyStyles', + enabled: false + }]; + } + + return { ...defaultBsPopperConfig, + ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig) + }; + } + + _selectMenuItem({ + key, + target + }) { + const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element)); + + if (!items.length) { + return; + } // if target isn't included in items (e.g. when expanding the dropdown) + // allow cycling to get the last item in case key equals ARROW_UP_KEY + + + getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus(); + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Dropdown.getOrCreateInstance(this, config); + + if (typeof config !== 'string') { + return; + } + + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](); + }); + } + + static clearMenus(event) { + if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) { + return; + } + + const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); + + for (const toggle of openToggles) { + const context = Dropdown.getInstance(toggle); + + if (!context || context._config.autoClose === false) { + continue; + } + + const composedPath = event.composedPath(); + const isMenuTarget = composedPath.includes(context._menu); + + if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) { + continue; + } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu + + + if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { + continue; + } + + const relatedTarget = { + relatedTarget: context._element + }; + + if (event.type === 'click') { + relatedTarget.clickEvent = event; + } + + context._completeHide(relatedTarget); + } + } + + static dataApiKeydownHandler(event) { + // If not an UP | DOWN | ESCAPE key => not a dropdown command + // If input/textarea && if key is other than ESCAPE => not a dropdown command + const isInput = /input|textarea/i.test(event.target.tagName); + const isEscapeEvent = event.key === ESCAPE_KEY$2; + const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key); + + if (!isUpOrDownEvent && !isEscapeEvent) { + return; + } + + if (isInput && !isEscapeEvent) { + return; + } + + event.preventDefault(); + const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); + const instance = Dropdown.getOrCreateInstance(getToggleButton); + + if (isUpOrDownEvent) { + event.stopPropagation(); + instance.show(); + + instance._selectMenuItem(event); + + return; + } + + if (instance._isShown()) { + // else is escape and we check if it is shown + event.stopPropagation(); + instance.hide(); + getToggleButton.focus(); + } + } + + } + /** + * Data API implementation + */ + + + EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); + EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); + EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); + EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); + EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) { + event.preventDefault(); + Dropdown.getOrCreateInstance(this).toggle(); + }); + /** + * jQuery + */ + + defineJQueryPlugin(Dropdown); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): util/scrollBar.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; + const SELECTOR_STICKY_CONTENT = '.sticky-top'; + const PROPERTY_PADDING = 'padding-right'; + const PROPERTY_MARGIN = 'margin-right'; + /** + * Class definition + */ + + class ScrollBarHelper { + constructor() { + this._element = document.body; + } // Public + + + getWidth() { + // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes + const documentWidth = document.documentElement.clientWidth; + return Math.abs(window.innerWidth - documentWidth); + } + + hide() { + const width = this.getWidth(); + + this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width + + + this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth + + + this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width); + + this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width); + } + + reset() { + this._resetElementAttributes(this._element, 'overflow'); + + this._resetElementAttributes(this._element, PROPERTY_PADDING); + + this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); + + this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); + } + + isOverflowing() { + return this.getWidth() > 0; + } // Private + + + _disableOverFlow() { + this._saveInitialAttribute(this._element, 'overflow'); + + this._element.style.overflow = 'hidden'; + } + + _setElementAttributes(selector, styleProperty, callback) { + const scrollbarWidth = this.getWidth(); + + const manipulationCallBack = element => { + if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) { + return; + } + + this._saveInitialAttribute(element, styleProperty); + + const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty); + element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); + }; + + this._applyManipulationCallback(selector, manipulationCallBack); + } + + _saveInitialAttribute(element, styleProperty) { + const actualValue = element.style.getPropertyValue(styleProperty); + + if (actualValue) { + Manipulator.setDataAttribute(element, styleProperty, actualValue); + } + } + + _resetElementAttributes(selector, styleProperty) { + const manipulationCallBack = element => { + const value = Manipulator.getDataAttribute(element, styleProperty); // We only want to remove the property if the value is `null`; the value can also be zero + + if (value === null) { + element.style.removeProperty(styleProperty); + return; + } + + Manipulator.removeDataAttribute(element, styleProperty); + element.style.setProperty(styleProperty, value); + }; + + this._applyManipulationCallback(selector, manipulationCallBack); + } + + _applyManipulationCallback(selector, callBack) { + if (isElement$1(selector)) { + callBack(selector); + return; + } + + for (const sel of SelectorEngine.find(selector, this._element)) { + callBack(sel); + } + } + + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): util/backdrop.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$9 = 'backdrop'; + const CLASS_NAME_FADE$4 = 'fade'; + const CLASS_NAME_SHOW$5 = 'show'; + const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`; + const Default$8 = { + className: 'modal-backdrop', + clickCallback: null, + isAnimated: false, + isVisible: true, + // if false, we use the backdrop helper without adding any element to the dom + rootElement: 'body' // give the choice to place backdrop under different elements + + }; + const DefaultType$8 = { + className: 'string', + clickCallback: '(function|null)', + isAnimated: 'boolean', + isVisible: 'boolean', + rootElement: '(element|string)' + }; + /** + * Class definition + */ + + class Backdrop extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + this._isAppended = false; + this._element = null; + } // Getters + + + static get Default() { + return Default$8; + } + + static get DefaultType() { + return DefaultType$8; + } + + static get NAME() { + return NAME$9; + } // Public + + + show(callback) { + if (!this._config.isVisible) { + execute(callback); + return; + } + + this._append(); + + const element = this._getElement(); + + if (this._config.isAnimated) { + reflow(element); + } + + element.classList.add(CLASS_NAME_SHOW$5); + + this._emulateAnimation(() => { + execute(callback); + }); + } + + hide(callback) { + if (!this._config.isVisible) { + execute(callback); + return; + } + + this._getElement().classList.remove(CLASS_NAME_SHOW$5); + + this._emulateAnimation(() => { + this.dispose(); + execute(callback); + }); + } + + dispose() { + if (!this._isAppended) { + return; + } + + EventHandler.off(this._element, EVENT_MOUSEDOWN); + + this._element.remove(); + + this._isAppended = false; + } // Private + + + _getElement() { + if (!this._element) { + const backdrop = document.createElement('div'); + backdrop.className = this._config.className; + + if (this._config.isAnimated) { + backdrop.classList.add(CLASS_NAME_FADE$4); + } + + this._element = backdrop; + } + + return this._element; + } + + _configAfterMerge(config) { + // use getElement() with the default "body" to get a fresh Element on each instantiation + config.rootElement = getElement(config.rootElement); + return config; + } + + _append() { + if (this._isAppended) { + return; + } + + const element = this._getElement(); + + this._config.rootElement.append(element); + + EventHandler.on(element, EVENT_MOUSEDOWN, () => { + execute(this._config.clickCallback); + }); + this._isAppended = true; + } + + _emulateAnimation(callback) { + executeAfterTransition(callback, this._getElement(), this._config.isAnimated); + } + + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): util/focustrap.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$8 = 'focustrap'; + const DATA_KEY$5 = 'bs.focustrap'; + const EVENT_KEY$5 = `.${DATA_KEY$5}`; + const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`; + const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`; + const TAB_KEY = 'Tab'; + const TAB_NAV_FORWARD = 'forward'; + const TAB_NAV_BACKWARD = 'backward'; + const Default$7 = { + autofocus: true, + trapElement: null // The element to trap focus inside of + + }; + const DefaultType$7 = { + autofocus: 'boolean', + trapElement: 'element' + }; + /** + * Class definition + */ + + class FocusTrap extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + this._isActive = false; + this._lastTabNavDirection = null; + } // Getters + + + static get Default() { + return Default$7; + } + + static get DefaultType() { + return DefaultType$7; + } + + static get NAME() { + return NAME$8; + } // Public + + + activate() { + if (this._isActive) { + return; + } + + if (this._config.autofocus) { + this._config.trapElement.focus(); + } + + EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop + + EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event)); + EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event)); + this._isActive = true; + } + + deactivate() { + if (!this._isActive) { + return; + } + + this._isActive = false; + EventHandler.off(document, EVENT_KEY$5); + } // Private + + + _handleFocusin(event) { + const { + trapElement + } = this._config; + + if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { + return; + } + + const elements = SelectorEngine.focusableChildren(trapElement); + + if (elements.length === 0) { + trapElement.focus(); + } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) { + elements[elements.length - 1].focus(); + } else { + elements[0].focus(); + } + } + + _handleKeydown(event) { + if (event.key !== TAB_KEY) { + return; + } + + this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; + } + + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$7 = 'modal'; + const DATA_KEY$4 = 'bs.modal'; + const EVENT_KEY$4 = `.${DATA_KEY$4}`; + const DATA_API_KEY$2 = '.data-api'; + const ESCAPE_KEY$1 = 'Escape'; + const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; + const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`; + const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; + const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; + const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; + const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; + const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; + const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; + const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; + const CLASS_NAME_OPEN = 'modal-open'; + const CLASS_NAME_FADE$3 = 'fade'; + const CLASS_NAME_SHOW$4 = 'show'; + const CLASS_NAME_STATIC = 'modal-static'; + const OPEN_SELECTOR$1 = '.modal.show'; + const SELECTOR_DIALOG = '.modal-dialog'; + const SELECTOR_MODAL_BODY = '.modal-body'; + const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; + const Default$6 = { + backdrop: true, + focus: true, + keyboard: true + }; + const DefaultType$6 = { + backdrop: '(boolean|string)', + focus: 'boolean', + keyboard: 'boolean' + }; + /** + * Class definition + */ + + class Modal extends BaseComponent { + constructor(element, config) { + super(element, config); + this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); + this._backdrop = this._initializeBackDrop(); + this._focustrap = this._initializeFocusTrap(); + this._isShown = false; + this._isTransitioning = false; + this._scrollBar = new ScrollBarHelper(); + + this._addEventListeners(); + } // Getters + + + static get Default() { + return Default$6; + } + + static get DefaultType() { + return DefaultType$6; + } + + static get NAME() { + return NAME$7; + } // Public + + + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + + show(relatedTarget) { + if (this._isShown || this._isTransitioning) { + return; + } + + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, { + relatedTarget + }); + + if (showEvent.defaultPrevented) { + return; + } + + this._isShown = true; + this._isTransitioning = true; + + this._scrollBar.hide(); + + document.body.classList.add(CLASS_NAME_OPEN); + + this._adjustDialog(); + + this._backdrop.show(() => this._showElement(relatedTarget)); + } + + hide() { + if (!this._isShown || this._isTransitioning) { + return; + } + + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); + + if (hideEvent.defaultPrevented) { + return; + } + + this._isShown = false; + this._isTransitioning = true; + + this._focustrap.deactivate(); + + this._element.classList.remove(CLASS_NAME_SHOW$4); + + this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); + } + + dispose() { + for (const htmlElement of [window, this._dialog]) { + EventHandler.off(htmlElement, EVENT_KEY$4); + } + + this._backdrop.dispose(); + + this._focustrap.deactivate(); + + super.dispose(); + } + + handleUpdate() { + this._adjustDialog(); + } // Private + + + _initializeBackDrop() { + return new Backdrop({ + isVisible: Boolean(this._config.backdrop), + // 'static' option will be translated to true, and booleans will keep their value, + isAnimated: this._isAnimated() + }); + } + + _initializeFocusTrap() { + return new FocusTrap({ + trapElement: this._element + }); + } + + _showElement(relatedTarget) { + // try to append dynamic modal + if (!document.body.contains(this._element)) { + document.body.append(this._element); + } + + this._element.style.display = 'block'; + + this._element.removeAttribute('aria-hidden'); + + this._element.setAttribute('aria-modal', true); + + this._element.setAttribute('role', 'dialog'); + + this._element.scrollTop = 0; + const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); + + if (modalBody) { + modalBody.scrollTop = 0; + } + + reflow(this._element); + + this._element.classList.add(CLASS_NAME_SHOW$4); + + const transitionComplete = () => { + if (this._config.focus) { + this._focustrap.activate(); + } + + this._isTransitioning = false; + EventHandler.trigger(this._element, EVENT_SHOWN$4, { + relatedTarget + }); + }; + + this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); + } + + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => { + if (event.key !== ESCAPE_KEY$1) { + return; + } + + if (this._config.keyboard) { + event.preventDefault(); + this.hide(); + return; + } + + this._triggerBackdropTransition(); + }); + EventHandler.on(window, EVENT_RESIZE$1, () => { + if (this._isShown && !this._isTransitioning) { + this._adjustDialog(); + } + }); + EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { + if (event.target !== event.currentTarget) { + // click is inside modal-dialog + return; + } + + if (this._config.backdrop === 'static') { + this._triggerBackdropTransition(); + + return; + } + + if (this._config.backdrop) { + this.hide(); + } + }); + } + + _hideModal() { + this._element.style.display = 'none'; + + this._element.setAttribute('aria-hidden', true); + + this._element.removeAttribute('aria-modal'); + + this._element.removeAttribute('role'); + + this._isTransitioning = false; + + this._backdrop.hide(() => { + document.body.classList.remove(CLASS_NAME_OPEN); + + this._resetAdjustments(); + + this._scrollBar.reset(); + + EventHandler.trigger(this._element, EVENT_HIDDEN$4); + }); + } + + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_FADE$3); + } + + _triggerBackdropTransition() { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); + + if (hideEvent.defaultPrevented) { + return; + } + + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed + + if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) { + return; + } + + if (!isModalOverflowing) { + this._element.style.overflowY = 'hidden'; + } + + this._element.classList.add(CLASS_NAME_STATIC); + + this._queueCallback(() => { + this._element.classList.remove(CLASS_NAME_STATIC); + + this._queueCallback(() => { + this._element.style.overflowY = initialOverflowY; + }, this._dialog); + }, this._dialog); + + this._element.focus(); + } + /** + * The following methods are used to handle overflowing modals + */ + + + _adjustDialog() { + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + const scrollbarWidth = this._scrollBar.getWidth(); + + const isBodyOverflowing = scrollbarWidth > 0; + + if (isBodyOverflowing && !isModalOverflowing) { + const property = isRTL() ? 'paddingLeft' : 'paddingRight'; + this._element.style[property] = `${scrollbarWidth}px`; + } + + if (!isBodyOverflowing && isModalOverflowing) { + const property = isRTL() ? 'paddingRight' : 'paddingLeft'; + this._element.style[property] = `${scrollbarWidth}px`; + } + } + + _resetAdjustments() { + this._element.style.paddingLeft = ''; + this._element.style.paddingRight = ''; + } // Static + + + static jQueryInterface(config, relatedTarget) { + return this.each(function () { + const data = Modal.getOrCreateInstance(this, config); + + if (typeof config !== 'string') { + return; + } + + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](relatedTarget); + }); + } + + } + /** + * Data API implementation + */ + + + EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) { + const target = getElementFromSelector(this); + + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + + EventHandler.one(target, EVENT_SHOW$4, showEvent => { + if (showEvent.defaultPrevented) { + // only register focus restorer if modal will actually get shown + return; + } + + EventHandler.one(target, EVENT_HIDDEN$4, () => { + if (isVisible(this)) { + this.focus(); + } + }); + }); // avoid conflict when clicking modal toggler while another one is open + + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); + + if (alreadyOpen) { + Modal.getInstance(alreadyOpen).hide(); + } + + const data = Modal.getOrCreateInstance(target); + data.toggle(this); + }); + enableDismissTrigger(Modal); + /** + * jQuery + */ + + defineJQueryPlugin(Modal); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): offcanvas.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$6 = 'offcanvas'; + const DATA_KEY$3 = 'bs.offcanvas'; + const EVENT_KEY$3 = `.${DATA_KEY$3}`; + const DATA_API_KEY$1 = '.data-api'; + const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`; + const ESCAPE_KEY = 'Escape'; + const CLASS_NAME_SHOW$3 = 'show'; + const CLASS_NAME_SHOWING$1 = 'showing'; + const CLASS_NAME_HIDING = 'hiding'; + const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; + const OPEN_SELECTOR = '.offcanvas.show'; + const EVENT_SHOW$3 = `show${EVENT_KEY$3}`; + const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; + const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; + const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`; + const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; + const EVENT_RESIZE = `resize${EVENT_KEY$3}`; + const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`; + const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`; + const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; + const Default$5 = { + backdrop: true, + keyboard: true, + scroll: false + }; + const DefaultType$5 = { + backdrop: '(boolean|string)', + keyboard: 'boolean', + scroll: 'boolean' + }; + /** + * Class definition + */ + + class Offcanvas extends BaseComponent { + constructor(element, config) { + super(element, config); + this._isShown = false; + this._backdrop = this._initializeBackDrop(); + this._focustrap = this._initializeFocusTrap(); + + this._addEventListeners(); + } // Getters + + + static get Default() { + return Default$5; + } + + static get DefaultType() { + return DefaultType$5; + } + + static get NAME() { + return NAME$6; + } // Public + + + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + + show(relatedTarget) { + if (this._isShown) { + return; + } + + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + relatedTarget + }); + + if (showEvent.defaultPrevented) { + return; + } + + this._isShown = true; + + this._backdrop.show(); + + if (!this._config.scroll) { + new ScrollBarHelper().hide(); + } + + this._element.setAttribute('aria-modal', true); + + this._element.setAttribute('role', 'dialog'); + + this._element.classList.add(CLASS_NAME_SHOWING$1); + + const completeCallBack = () => { + if (!this._config.scroll || this._config.backdrop) { + this._focustrap.activate(); + } + + this._element.classList.add(CLASS_NAME_SHOW$3); + + this._element.classList.remove(CLASS_NAME_SHOWING$1); + + EventHandler.trigger(this._element, EVENT_SHOWN$3, { + relatedTarget + }); + }; + + this._queueCallback(completeCallBack, this._element, true); + } + + hide() { + if (!this._isShown) { + return; + } + + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); + + if (hideEvent.defaultPrevented) { + return; + } + + this._focustrap.deactivate(); + + this._element.blur(); + + this._isShown = false; + + this._element.classList.add(CLASS_NAME_HIDING); + + this._backdrop.hide(); + + const completeCallback = () => { + this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING); + + this._element.removeAttribute('aria-modal'); + + this._element.removeAttribute('role'); + + if (!this._config.scroll) { + new ScrollBarHelper().reset(); + } + + EventHandler.trigger(this._element, EVENT_HIDDEN$3); + }; + + this._queueCallback(completeCallback, this._element, true); + } + + dispose() { + this._backdrop.dispose(); + + this._focustrap.deactivate(); + + super.dispose(); + } // Private + + + _initializeBackDrop() { + const clickCallback = () => { + if (this._config.backdrop === 'static') { + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + return; + } + + this.hide(); + }; // 'static' option will be translated to true, and booleans will keep their value + + + const isVisible = Boolean(this._config.backdrop); + return new Backdrop({ + className: CLASS_NAME_BACKDROP, + isVisible, + isAnimated: true, + rootElement: this._element.parentNode, + clickCallback: isVisible ? clickCallback : null + }); + } + + _initializeFocusTrap() { + return new FocusTrap({ + trapElement: this._element + }); + } + + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { + if (event.key !== ESCAPE_KEY) { + return; + } + + if (!this._config.keyboard) { + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + return; + } + + this.hide(); + }); + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Offcanvas.getOrCreateInstance(this, config); + + if (typeof config !== 'string') { + return; + } + + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](this); + }); + } + + } + /** + * Data API implementation + */ + + + EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) { + const target = getElementFromSelector(this); + + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + + if (isDisabled(this)) { + return; + } + + EventHandler.one(target, EVENT_HIDDEN$3, () => { + // focus on trigger when it is closed + if (isVisible(this)) { + this.focus(); + } + }); // avoid conflict when clicking a toggler of an offcanvas, while another is open + + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); + + if (alreadyOpen && alreadyOpen !== target) { + Offcanvas.getInstance(alreadyOpen).hide(); + } + + const data = Offcanvas.getOrCreateInstance(target); + data.toggle(this); + }); + EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { + for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { + Offcanvas.getOrCreateInstance(selector).show(); + } + }); + EventHandler.on(window, EVENT_RESIZE, () => { + for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) { + if (getComputedStyle(element).position !== 'fixed') { + Offcanvas.getOrCreateInstance(element).hide(); + } + } + }); + enableDismissTrigger(Offcanvas); + /** + * jQuery + */ + + defineJQueryPlugin(Offcanvas); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): util/sanitizer.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); + const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; + /** + * A pattern that recognizes a commonly useful subset of URLs that are safe. + * + * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts + */ + + const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i; + /** + * A pattern that matches safe data URLs. Only matches image, video and audio types. + * + * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts + */ + + const 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; + + const allowedAttribute = (attribute, allowedAttributeList) => { + const attributeName = attribute.nodeName.toLowerCase(); + + if (allowedAttributeList.includes(attributeName)) { + if (uriAttributes.has(attributeName)) { + return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue)); + } + + return true; + } // Check if a regular expression validates the attribute. + + + return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); + }; + + const DefaultAllowlist = { + // Global attributes allowed on any supplied element below. + '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], + a: ['target', 'href', 'title', 'rel'], + area: [], + b: [], + br: [], + col: [], + code: [], + div: [], + em: [], + hr: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + i: [], + img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], + li: [], + ol: [], + p: [], + pre: [], + s: [], + small: [], + span: [], + sub: [], + sup: [], + strong: [], + u: [], + ul: [] + }; + function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { + if (!unsafeHtml.length) { + return unsafeHtml; + } + + if (sanitizeFunction && typeof sanitizeFunction === 'function') { + return sanitizeFunction(unsafeHtml); + } + + const domParser = new window.DOMParser(); + const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); + const elements = [].concat(...createdDocument.body.querySelectorAll('*')); + + for (const element of elements) { + const elementName = element.nodeName.toLowerCase(); + + if (!Object.keys(allowList).includes(elementName)) { + element.remove(); + continue; + } + + const attributeList = [].concat(...element.attributes); + const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []); + + for (const attribute of attributeList) { + if (!allowedAttribute(attribute, allowedAttributes)) { + element.removeAttribute(attribute.nodeName); + } + } + } + + return createdDocument.body.innerHTML; + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): util/template-factory.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$5 = 'TemplateFactory'; + const Default$4 = { + allowList: DefaultAllowlist, + content: {}, + // { selector : text , selector2 : text2 , } + extraClass: '', + html: false, + sanitize: true, + sanitizeFn: null, + template: '
    ' + }; + const DefaultType$4 = { + allowList: 'object', + content: 'object', + extraClass: '(string|function)', + html: 'boolean', + sanitize: 'boolean', + sanitizeFn: '(null|function)', + template: 'string' + }; + const DefaultContentType = { + entry: '(string|element|function|null)', + selector: '(string|element)' + }; + /** + * Class definition + */ + + class TemplateFactory extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + } // Getters + + + static get Default() { + return Default$4; + } + + static get DefaultType() { + return DefaultType$4; + } + + static get NAME() { + return NAME$5; + } // Public + + + getContent() { + return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean); + } + + hasContent() { + return this.getContent().length > 0; + } + + changeContent(content) { + this._checkContent(content); + + this._config.content = { ...this._config.content, + ...content + }; + return this; + } + + toHtml() { + const templateWrapper = document.createElement('div'); + templateWrapper.innerHTML = this._maybeSanitize(this._config.template); + + for (const [selector, text] of Object.entries(this._config.content)) { + this._setContent(templateWrapper, text, selector); + } + + const template = templateWrapper.children[0]; + + const extraClass = this._resolvePossibleFunction(this._config.extraClass); + + if (extraClass) { + template.classList.add(...extraClass.split(' ')); + } + + return template; + } // Private + + + _typeCheckConfig(config) { + super._typeCheckConfig(config); + + this._checkContent(config.content); + } + + _checkContent(arg) { + for (const [selector, content] of Object.entries(arg)) { + super._typeCheckConfig({ + selector, + entry: content + }, DefaultContentType); + } + } + + _setContent(template, content, selector) { + const templateElement = SelectorEngine.findOne(selector, template); + + if (!templateElement) { + return; + } + + content = this._resolvePossibleFunction(content); + + if (!content) { + templateElement.remove(); + return; + } + + if (isElement$1(content)) { + this._putElementInTemplate(getElement(content), templateElement); + + return; + } + + if (this._config.html) { + templateElement.innerHTML = this._maybeSanitize(content); + return; + } + + templateElement.textContent = content; + } + + _maybeSanitize(arg) { + return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; + } + + _resolvePossibleFunction(arg) { + return typeof arg === 'function' ? arg(this) : arg; + } + + _putElementInTemplate(element, templateElement) { + if (this._config.html) { + templateElement.innerHTML = ''; + templateElement.append(element); + return; + } + + templateElement.textContent = element.textContent; + } + + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$4 = 'tooltip'; + const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); + const CLASS_NAME_FADE$2 = 'fade'; + const CLASS_NAME_MODAL = 'modal'; + const CLASS_NAME_SHOW$2 = 'show'; + const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; + const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; + const EVENT_MODAL_HIDE = 'hide.bs.modal'; + const TRIGGER_HOVER = 'hover'; + const TRIGGER_FOCUS = 'focus'; + const TRIGGER_CLICK = 'click'; + const TRIGGER_MANUAL = 'manual'; + const EVENT_HIDE$2 = 'hide'; + const EVENT_HIDDEN$2 = 'hidden'; + const EVENT_SHOW$2 = 'show'; + const EVENT_SHOWN$2 = 'shown'; + const EVENT_INSERTED = 'inserted'; + const EVENT_CLICK$1 = 'click'; + const EVENT_FOCUSIN$1 = 'focusin'; + const EVENT_FOCUSOUT$1 = 'focusout'; + const EVENT_MOUSEENTER = 'mouseenter'; + const EVENT_MOUSELEAVE = 'mouseleave'; + const AttachmentMap = { + AUTO: 'auto', + TOP: 'top', + RIGHT: isRTL() ? 'left' : 'right', + BOTTOM: 'bottom', + LEFT: isRTL() ? 'right' : 'left' + }; + const Default$3 = { + allowList: DefaultAllowlist, + animation: true, + boundary: 'clippingParents', + container: false, + customClass: '', + delay: 0, + fallbackPlacements: ['top', 'right', 'bottom', 'left'], + html: false, + offset: [0, 0], + placement: 'top', + popperConfig: null, + sanitize: true, + sanitizeFn: null, + selector: false, + template: '', + title: '', + trigger: 'hover focus' + }; + const DefaultType$3 = { + allowList: 'object', + animation: 'boolean', + boundary: '(string|element)', + container: '(string|element|boolean)', + customClass: '(string|function)', + delay: '(number|object)', + fallbackPlacements: 'array', + html: 'boolean', + offset: '(array|string|function)', + placement: '(string|function)', + popperConfig: '(null|object|function)', + sanitize: 'boolean', + sanitizeFn: '(null|function)', + selector: '(string|boolean)', + template: 'string', + title: '(string|element|function)', + trigger: 'string' + }; + /** + * Class definition + */ + + class Tooltip extends BaseComponent { + constructor(element, config) { + if (typeof Popper === 'undefined') { + throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); + } + + super(element, config); // Private + + this._isEnabled = true; + this._timeout = 0; + this._isHovered = false; + this._activeTrigger = {}; + this._popper = null; + this._templateFactory = null; + this._newContent = null; // Protected + + this.tip = null; + + this._setListeners(); + } // Getters + + + static get Default() { + return Default$3; + } + + static get DefaultType() { + return DefaultType$3; + } + + static get NAME() { + return NAME$4; + } // Public + + + enable() { + this._isEnabled = true; + } + + disable() { + this._isEnabled = false; + } + + toggleEnabled() { + this._isEnabled = !this._isEnabled; + } + + toggle(event) { + if (!this._isEnabled) { + return; + } + + if (event) { + const context = this._initializeOnDelegatedTarget(event); + + context._activeTrigger.click = !context._activeTrigger.click; + + if (context._isWithActiveTrigger()) { + context._enter(); + } else { + context._leave(); + } + + return; + } + + if (this._isShown()) { + this._leave(); + + return; + } + + this._enter(); + } + + dispose() { + clearTimeout(this._timeout); + EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); + + if (this.tip) { + this.tip.remove(); + } + + this._disposePopper(); + + super.dispose(); + } + + show() { + if (this._element.style.display === 'none') { + throw new Error('Please use show on visible elements'); + } + + if (!(this._isWithContent() && this._isEnabled)) { + return; + } + + const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2)); + const shadowRoot = findShadowRoot(this._element); + + const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element); + + if (showEvent.defaultPrevented || !isInTheDom) { + return; + } // todo v6 remove this OR make it optional + + + if (this.tip) { + this.tip.remove(); + this.tip = null; + } + + const tip = this._getTipElement(); + + this._element.setAttribute('aria-describedby', tip.getAttribute('id')); + + const { + container + } = this._config; + + if (!this._element.ownerDocument.documentElement.contains(this.tip)) { + container.append(tip); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); + } + + if (this._popper) { + this._popper.update(); + } else { + this._popper = this._createPopper(tip); + } + + tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + + if ('ontouchstart' in document.documentElement) { + for (const element of [].concat(...document.body.children)) { + EventHandler.on(element, 'mouseover', noop); + } + } + + const complete = () => { + const previousHoverState = this._isHovered; + this._isHovered = false; + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); + + if (previousHoverState) { + this._leave(); + } + }; + + this._queueCallback(complete, this.tip, this._isAnimated()); + } + + hide() { + if (!this._isShown()) { + return; + } + + const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2)); + + if (hideEvent.defaultPrevented) { + return; + } + + const tip = this._getTipElement(); + + tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + + if ('ontouchstart' in document.documentElement) { + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, 'mouseover', noop); + } + } + + this._activeTrigger[TRIGGER_CLICK] = false; + this._activeTrigger[TRIGGER_FOCUS] = false; + this._activeTrigger[TRIGGER_HOVER] = false; + this._isHovered = false; + + const complete = () => { + if (this._isWithActiveTrigger()) { + return; + } + + if (!this._isHovered) { + tip.remove(); + } + + this._element.removeAttribute('aria-describedby'); + + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); + + this._disposePopper(); + }; + + this._queueCallback(complete, this.tip, this._isAnimated()); + } + + update() { + if (this._popper) { + this._popper.update(); + } + } // Protected + + + _isWithContent() { + return Boolean(this._getTitle()); + } + + _getTipElement() { + if (!this.tip) { + this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); + } + + return this.tip; + } + + _createTipElement(content) { + const tip = this._getTemplateFactory(content).toHtml(); // todo: remove this check on v6 + + + if (!tip) { + return null; + } + + tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); // todo: on v6 the following can be achieved with CSS only + + tip.classList.add(`bs-${this.constructor.NAME}-auto`); + const tipId = getUID(this.constructor.NAME).toString(); + tip.setAttribute('id', tipId); + + if (this._isAnimated()) { + tip.classList.add(CLASS_NAME_FADE$2); + } + + return tip; + } + + setContent(content) { + this._newContent = content; + + if (this._isShown()) { + this._disposePopper(); + + this.show(); + } + } + + _getTemplateFactory(content) { + if (this._templateFactory) { + this._templateFactory.changeContent(content); + } else { + this._templateFactory = new TemplateFactory({ ...this._config, + // the `content` var has to be after `this._config` + // to override config.content in case of popover + content, + extraClass: this._resolvePossibleFunction(this._config.customClass) + }); + } + + return this._templateFactory; + } + + _getContentForTemplate() { + return { + [SELECTOR_TOOLTIP_INNER]: this._getTitle() + }; + } + + _getTitle() { + return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle; + } // Private + + + _initializeOnDelegatedTarget(event) { + return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); + } + + _isAnimated() { + return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2); + } + + _isShown() { + return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2); + } + + _createPopper(tip) { + const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement; + const attachment = AttachmentMap[placement.toUpperCase()]; + return createPopper(this._element, tip, this._getPopperConfig(attachment)); + } + + _getOffset() { + const { + offset + } = this._config; + + if (typeof offset === 'string') { + return offset.split(',').map(value => Number.parseInt(value, 10)); + } + + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); + } + + return offset; + } + + _resolvePossibleFunction(arg) { + return typeof arg === 'function' ? arg.call(this._element) : arg; + } + + _getPopperConfig(attachment) { + const defaultBsPopperConfig = { + placement: attachment, + modifiers: [{ + name: 'flip', + options: { + fallbackPlacements: this._config.fallbackPlacements + } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }, { + name: 'preventOverflow', + options: { + boundary: this._config.boundary + } + }, { + name: 'arrow', + options: { + element: `.${this.constructor.NAME}-arrow` + } + }, { + name: 'preSetPlacement', + enabled: true, + phase: 'beforeMain', + fn: data => { + // Pre-set Popper's placement attribute in order to read the arrow sizes properly. + // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement + this._getTipElement().setAttribute('data-popper-placement', data.state.placement); + } + }] + }; + return { ...defaultBsPopperConfig, + ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig) + }; + } + + _setListeners() { + const triggers = this._config.trigger.split(' '); + + for (const trigger of triggers) { + if (trigger === 'click') { + EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => this.toggle(event)); + } else if (trigger !== TRIGGER_MANUAL) { + const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); + const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); + EventHandler.on(this._element, eventIn, this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + + context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; + + context._enter(); + }); + EventHandler.on(this._element, eventOut, this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + + context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); + + context._leave(); + }); + } + } + + this._hideModalHandler = () => { + if (this._element) { + this.hide(); + } + }; + + EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); + + if (this._config.selector) { + this._config = { ...this._config, + trigger: 'manual', + selector: '' + }; + } else { + this._fixTitle(); + } + } + + _fixTitle() { + const title = this._config.originalTitle; + + if (!title) { + return; + } + + if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) { + this._element.setAttribute('aria-label', title); + } + + this._element.removeAttribute('title'); + } + + _enter() { + if (this._isShown() || this._isHovered) { + this._isHovered = true; + return; + } + + this._isHovered = true; + + this._setTimeout(() => { + if (this._isHovered) { + this.show(); + } + }, this._config.delay.show); + } + + _leave() { + if (this._isWithActiveTrigger()) { + return; + } + + this._isHovered = false; + + this._setTimeout(() => { + if (!this._isHovered) { + this.hide(); + } + }, this._config.delay.hide); + } + + _setTimeout(handler, timeout) { + clearTimeout(this._timeout); + this._timeout = setTimeout(handler, timeout); + } + + _isWithActiveTrigger() { + return Object.values(this._activeTrigger).includes(true); + } + + _getConfig(config) { + const dataAttributes = Manipulator.getDataAttributes(this._element); + + for (const dataAttribute of Object.keys(dataAttributes)) { + if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { + delete dataAttributes[dataAttribute]; + } + } + + config = { ...dataAttributes, + ...(typeof config === 'object' && config ? config : {}) + }; + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + + this._typeCheckConfig(config); + + return config; + } + + _configAfterMerge(config) { + config.container = config.container === false ? document.body : getElement(config.container); + + if (typeof config.delay === 'number') { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + + config.originalTitle = this._element.getAttribute('title') || ''; + + if (typeof config.title === 'number') { + config.title = config.title.toString(); + } + + if (typeof config.content === 'number') { + config.content = config.content.toString(); + } + + return config; + } + + _getDelegateConfig() { + const config = {}; + + for (const key in this._config) { + if (this.constructor.Default[key] !== this._config[key]) { + config[key] = this._config[key]; + } + } // In the future can be replaced with: + // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]]) + // `Object.fromEntries(keysWithDifferentValues)` + + + return config; + } + + _disposePopper() { + if (this._popper) { + this._popper.destroy(); + + this._popper = null; + } + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Tooltip.getOrCreateInstance(this, config); + + if (typeof config !== 'string') { + return; + } + + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](); + }); + } + + } + /** + * jQuery + */ + + + defineJQueryPlugin(Tooltip); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$3 = 'popover'; + const SELECTOR_TITLE = '.popover-header'; + const SELECTOR_CONTENT = '.popover-body'; + const Default$2 = { ...Tooltip.Default, + content: '', + offset: [0, 8], + placement: 'right', + template: '', + trigger: 'click' + }; + const DefaultType$2 = { ...Tooltip.DefaultType, + content: '(null|string|element|function)' + }; + /** + * Class definition + */ + + class Popover extends Tooltip { + // Getters + static get Default() { + return Default$2; + } + + static get DefaultType() { + return DefaultType$2; + } + + static get NAME() { + return NAME$3; + } // Overrides + + + _isWithContent() { + return this._getTitle() || this._getContent(); + } // Private + + + _getContentForTemplate() { + return { + [SELECTOR_TITLE]: this._getTitle(), + [SELECTOR_CONTENT]: this._getContent() + }; + } + + _getContent() { + return this._resolvePossibleFunction(this._config.content); + } // Static + + + static jQueryInterface(config) { + return this.each(function () { + const data = Popover.getOrCreateInstance(this, config); + + if (typeof config !== 'string') { + return; + } + + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + + data[config](); + }); + } + + } + /** + * jQuery + */ + + + defineJQueryPlugin(Popover); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.2.0): scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** + * Constants + */ + + const NAME$2 = 'scrollspy'; + const DATA_KEY$2 = 'bs.scrollspy'; + const EVENT_KEY$2 = `.${DATA_KEY$2}`; + const DATA_API_KEY = '.data-api'; + const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; + const EVENT_CLICK = `click${EVENT_KEY$2}`; + const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`; + const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; + const CLASS_NAME_ACTIVE$1 = 'active'; + const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; + const SELECTOR_TARGET_LINKS = '[href]'; + const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; + const SELECTOR_NAV_LINKS = '.nav-link'; + const SELECTOR_NAV_ITEMS = '.nav-item'; + const SELECTOR_LIST_ITEMS = '.list-group-item'; + const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; + const SELECTOR_DROPDOWN = '.dropdown'; + const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; + const Default$1 = { + offset: null, + // TODO: v6 @deprecated, keep it for backwards compatibility reasons + rootMargin: '0px 0px -25%', + smoothScroll: false, + target: null + }; + const DefaultType$1 = { + offset: '(number|null)', + // TODO v6 @deprecated, keep it for backwards compatibility reasons + rootMargin: 'string', + smoothScroll: 'boolean', + target: 'element' + }; + /** + * Class definition + */ + + class ScrollSpy extends BaseComponent { + constructor(element, config) { + super(element, config); // this._element is the observablesContainer and config.target the menu links wrapper + + this._targetLinks = new Map(); + this._observableSections = new Map(); + this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element; + this._activeTarget = null; + this._observer = null; + this._previousScrollData = { + visibleEntryTop: 0, + parentScrollTop: 0 + }; + this.refresh(); // initialize + } // Getters + + + static get Default() { + return Default$1; + } + + static get DefaultType() { + return DefaultType$1; + } + + static get NAME() { + return NAME$2; + } // Public + + + refresh() { + this._initializeTargetsAndObservables(); + + this._maybeEnableSmoothScroll(); + + if (this._observer) { + this._observer.disconnect(); + } else { + this._observer = this._getNewObserver(); + } + + for (const section of this._observableSections.values()) { + this._observer.observe(section); + } + } + + dispose() { + this._observer.disconnect(); + + super.dispose(); + } // Private + + + _configAfterMerge(config) { + // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case + config.target = getElement(config.target) || document.body; + return config; + } + + _maybeEnableSmoothScroll() { + if (!this._config.smoothScroll) { + return; + } // unregister any previous listeners + + + EventHandler.off(this._config.target, EVENT_CLICK); + EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => { + const observableSection = this._observableSections.get(event.target.hash); + + if (observableSection) { + event.preventDefault(); + const root = this._rootElement || window; + const height = observableSection.offsetTop - this._element.offsetTop; + + if (root.scrollTo) { + root.scrollTo({ + top: height, + behavior: 'smooth' + }); + return; + } // Chrome 60 doesn't support `scrollTo` + + + root.scrollTop = height; + } + }); + } + + _getNewObserver() { + const options = { + root: this._rootElement, + threshold: [0.1, 0.5, 1], + rootMargin: this._getRootMargin() + }; + return new IntersectionObserver(entries => this._observerCallback(entries), options); + } // The logic of selection + + + _observerCallback(entries) { + const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`); + + const activate = entry => { + this._previousScrollData.visibleEntryTop = entry.target.offsetTop; + + this._process(targetElement(entry)); + }; + + const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; + const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; + this._previousScrollData.parentScrollTop = parentScrollTop; + + for (const entry of entries) { + if (!entry.isIntersecting) { + this._activeTarget = null; + + this._clearActiveClass(targetElement(entry)); + + continue; + } + + const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop + + if (userScrollsDown && entryIsLowerThanPrevious) { + activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration + + if (!parentScrollTop) { + return; + } + + continue; + } // if we are scrolling up, pick the smallest offsetTop + + + if (!userScrollsDown && !entryIsLowerThanPrevious) { + activate(entry); + } + } + } // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only + + + _getRootMargin() { + return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin; + } + + _initializeTargetsAndObservables() { + this._targetLinks = new Map(); + this._observableSections = new Map(); + const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); + + for (const anchor of targetLinks) { + // ensure that the anchor has an id and is not disabled + if (!anchor.hash || isDisabled(anchor)) { + continue; + } + + const observableSection = SelectorEngine.findOne(anchor.hash, this._element); // ensure that the observableSection exists & is visible + + if (isVisible(observableSection)) { + this._targetLinks.set(anchor.hash, anchor); + + this._observableSections.set(anchor.hash, observableSection); + } + } + } + + _process(target) { + if (this._activeTarget === target) { + return; + } + + this._clearActiveClass(this._config.target); + + this._activeTarget = target; + target.classList.add(CLASS_NAME_ACTIVE$1); + + this._activateParents(target); + + EventHandler.trigger(this._element, EVENT_ACTIVATE, { + relatedTarget: target + }); + } + + _activateParents(target) { + // Activate dropdown parents + if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { + SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1); + return; + } + + for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { + // Set triggered links parents as active + // With both
    '),this.element.appendChild(e));var l=e.getElementsByTagName("span")[0];return l&&(null!=l.textContent?l.textContent=this.options.dictFallbackMessage:null!=l.innerText&&(l.innerText=this.options.dictFallbackMessage)),this.element.appendChild(this.getFallbackForm())},resize:function(e,t,i,n){var r={srcX:0,srcY:0,srcWidth:e.width,srcHeight:e.height},a=e.width/e.height;null==t&&null==i?(t=r.srcWidth,i=r.srcHeight):null==t?t=i*a:null==i&&(i=t/a);var o=(t=Math.min(t,r.srcWidth))/(i=Math.min(i,r.srcHeight));if(r.srcWidth>t||r.srcHeight>i)if("crop"===n)a>o?(r.srcHeight=e.height,r.srcWidth=r.srcHeight*o):(r.srcWidth=e.width,r.srcHeight=r.srcWidth/o);else{if("contain"!==n)throw new Error("Unknown resizeMethod '".concat(n,"'"));a>o?i=t/a:t=i*a}return r.srcX=(e.width-r.srcWidth)/2,r.srcY=(e.height-r.srcHeight)/2,r.trgWidth=t,r.trgHeight=i,r},transformFile:function(e,t){return(this.options.resizeWidth||this.options.resizeHeight)&&e.type.match(/image.*/)?this.resizeImage(e,this.options.resizeWidth,this.options.resizeHeight,this.options.resizeMethod,t):t(e)},previewTemplate:e('
    '),drop:function(e){return this.element.classList.remove("dz-drag-hover")},dragstart:function(e){},dragend:function(e){return this.element.classList.remove("dz-drag-hover")},dragenter:function(e){return this.element.classList.add("dz-drag-hover")},dragover:function(e){return this.element.classList.add("dz-drag-hover")},dragleave:function(e){return this.element.classList.remove("dz-drag-hover")},paste:function(e){},reset:function(){return this.element.classList.remove("dz-started")},addedfile:function(e){if(this.element===this.previewsContainer&&this.element.classList.add("dz-started"),this.previewsContainer&&!this.options.disablePreviews){var t=this;e.previewElement=f.createElement(this.options.previewTemplate.trim()),e.previewTemplate=e.previewElement,this.previewsContainer.appendChild(e.previewElement);var i=!0,n=!1,r=void 0;try{for(var a,o=e.previewElement.querySelectorAll("[data-dz-name]")[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;l.textContent=e.name}}catch(e){n=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(n)throw r}}var s=!0,u=!1,c=void 0;try{for(var d,h=e.previewElement.querySelectorAll("[data-dz-size]")[Symbol.iterator]();!(s=(d=h.next()).done);s=!0)(l=d.value).innerHTML=this.filesize(e.size)}catch(e){u=!0,c=e}finally{try{s||null==h.return||h.return()}finally{if(u)throw c}}this.options.addRemoveLinks&&(e._removeLink=f.createElement('
    '.concat(this.options.dictRemoveFile,"")),e.previewElement.appendChild(e._removeLink));var p=function(i){var n=t;if(i.preventDefault(),i.stopPropagation(),e.status===f.UPLOADING)return f.confirm(t.options.dictCancelUploadConfirmation,(function(){return n.removeFile(e)}));var r=t;return t.options.dictRemoveFileConfirmation?f.confirm(t.options.dictRemoveFileConfirmation,(function(){return r.removeFile(e)})):t.removeFile(e)},m=!0,v=!1,y=void 0;try{for(var g,b=e.previewElement.querySelectorAll("[data-dz-remove]")[Symbol.iterator]();!(m=(g=b.next()).done);m=!0){g.value.addEventListener("click",p)}}catch(e){v=!0,y=e}finally{try{m||null==b.return||b.return()}finally{if(v)throw y}}}},removedfile:function(e){return null!=e.previewElement&&null!=e.previewElement.parentNode&&e.previewElement.parentNode.removeChild(e.previewElement),this._updateMaxFilesReachedClass()},thumbnail:function(e,t){if(e.previewElement){e.previewElement.classList.remove("dz-file-preview");var i=!0,n=!1,r=void 0;try{for(var a,o=e.previewElement.querySelectorAll("[data-dz-thumbnail]")[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;l.alt=e.name,l.src=t}}catch(e){n=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(n)throw r}}return setTimeout((function(){return e.previewElement.classList.add("dz-image-preview")}),1)}},error:function(e,t){if(e.previewElement){e.previewElement.classList.add("dz-error"),"string"!=typeof t&&t.error&&(t=t.error);var i=!0,n=!1,r=void 0;try{for(var a,o=e.previewElement.querySelectorAll("[data-dz-errormessage]")[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){a.value.textContent=t}}catch(e){n=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(n)throw r}}}},errormultiple:function(){},processing:function(e){if(e.previewElement&&(e.previewElement.classList.add("dz-processing"),e._removeLink))return e._removeLink.innerHTML=this.options.dictCancelUpload},processingmultiple:function(){},uploadprogress:function(e,t,i){var n=!0,r=!1,a=void 0;if(e.previewElement)try{for(var o,l=e.previewElement.querySelectorAll("[data-dz-uploadprogress]")[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var s=o.value;"PROGRESS"===s.nodeName?s.value=t:s.style.width="".concat(t,"%")}}catch(e){r=!0,a=e}finally{try{n||null==l.return||l.return()}finally{if(r)throw a}}},totaluploadprogress:function(){},sending:function(){},sendingmultiple:function(){},success:function(e){if(e.previewElement)return e.previewElement.classList.add("dz-success")},successmultiple:function(){},canceled:function(e){return this.emit("error",e,this.options.dictUploadCanceled)},canceledmultiple:function(){},complete:function(e){if(e._removeLink&&(e._removeLink.innerHTML=this.options.dictRemoveFile),e.previewElement)return e.previewElement.classList.add("dz-complete")},completemultiple:function(){},maxfilesexceeded:function(){},maxfilesreached:function(){},queuecomplete:function(){},addedfiles:function(){}},f=function(n){"use strict";function o(n,r){var l,c,d,h;if(i(this,o),(l=s(this,(c=o,a(c)).call(this))).element=n,l.clickableElements=[],l.listeners=[],l.files=[],"string"==typeof l.element&&(l.element=document.querySelector(l.element)),!l.element||null==l.element.nodeType)throw new Error("Invalid dropzone element.");if(l.element.dropzone)throw new Error("Dropzone already attached.");o.instances.push(t(l)),l.element.dropzone=t(l);var f=null!=(h=o.optionsForElement(l.element))?h:{};if(l.options=e(u)(!0,{},p,f,null!=r?r:{}),l.options.previewTemplate=l.options.previewTemplate.replace(/\n*/g,""),l.options.forceFallback||!o.isBrowserSupported())return s(l,l.options.fallback.call(t(l)));if(null==l.options.url&&(l.options.url=l.element.getAttribute("action")),!l.options.url)throw new Error("No URL provided.");if(l.options.acceptedFiles&&l.options.acceptedMimeTypes)throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");if(l.options.uploadMultiple&&l.options.chunking)throw new Error("You cannot set both: uploadMultiple and chunking.");if(l.options.binaryBody&&l.options.uploadMultiple)throw new Error("You cannot set both: binaryBody and uploadMultiple.");return l.options.acceptedMimeTypes&&(l.options.acceptedFiles=l.options.acceptedMimeTypes,delete l.options.acceptedMimeTypes),null!=l.options.renameFilename&&(l.options.renameFile=function(e){return l.options.renameFilename.call(t(l),e.name,e)}),"string"==typeof l.options.method&&(l.options.method=l.options.method.toUpperCase()),(d=l.getExistingFallback())&&d.parentNode&&d.parentNode.removeChild(d),!1!==l.options.previewsContainer&&(l.options.previewsContainer?l.previewsContainer=o.getElement(l.options.previewsContainer,"previewsContainer"):l.previewsContainer=l.element),l.options.clickable&&(!0===l.options.clickable?l.clickableElements=[l.element]:l.clickableElements=o.getElements(l.options.clickable,"clickable")),l.init(),l}return l(o,n),r(o,[{key:"getAcceptedFiles",value:function(){return this.files.filter((function(e){return e.accepted})).map((function(e){return e}))}},{key:"getRejectedFiles",value:function(){return this.files.filter((function(e){return!e.accepted})).map((function(e){return e}))}},{key:"getFilesWithStatus",value:function(e){return this.files.filter((function(t){return t.status===e})).map((function(e){return e}))}},{key:"getQueuedFiles",value:function(){return this.getFilesWithStatus(o.QUEUED)}},{key:"getUploadingFiles",value:function(){return this.getFilesWithStatus(o.UPLOADING)}},{key:"getAddedFiles",value:function(){return this.getFilesWithStatus(o.ADDED)}},{key:"getActiveFiles",value:function(){return this.files.filter((function(e){return e.status===o.UPLOADING||e.status===o.QUEUED})).map((function(e){return e}))}},{key:"init",value:function(){var e=this,t=this,i=this,n=this,r=this,a=this,l=this,s=this,u=this,c=this,d=this;if("form"===this.element.tagName&&this.element.setAttribute("enctype","multipart/form-data"),this.element.classList.contains("dropzone")&&!this.element.querySelector(".dz-message")&&this.element.appendChild(o.createElement('
    "))),this.clickableElements.length){var h=this,p=function(){var e=h;h.hiddenFileInput&&h.hiddenFileInput.parentNode.removeChild(h.hiddenFileInput),h.hiddenFileInput=document.createElement("input"),h.hiddenFileInput.setAttribute("type","file"),(null===h.options.maxFiles||h.options.maxFiles>1)&&h.hiddenFileInput.setAttribute("multiple","multiple"),h.hiddenFileInput.className="dz-hidden-input",null!==h.options.acceptedFiles&&h.hiddenFileInput.setAttribute("accept",h.options.acceptedFiles),null!==h.options.capture&&h.hiddenFileInput.setAttribute("capture",h.options.capture),h.hiddenFileInput.setAttribute("tabindex","-1"),h.hiddenFileInput.style.visibility="hidden",h.hiddenFileInput.style.position="absolute",h.hiddenFileInput.style.top="0",h.hiddenFileInput.style.left="0",h.hiddenFileInput.style.height="0",h.hiddenFileInput.style.width="0",o.getElement(h.options.hiddenInputContainer,"hiddenInputContainer").appendChild(h.hiddenFileInput),h.hiddenFileInput.addEventListener("change",(function(){var t=e.hiddenFileInput.files,i=!0,n=!1,r=void 0;if(t.length)try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;e.addFile(l)}}catch(e){n=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(n)throw r}}e.emit("addedfiles",t),p()}))};p()}this.URL=null!==window.URL?window.URL:window.webkitURL;var f=!0,m=!1,v=void 0;try{for(var y,g=this.events[Symbol.iterator]();!(f=(y=g.next()).done);f=!0){var b=y.value;this.on(b,this.options[b])}}catch(e){m=!0,v=e}finally{try{f||null==g.return||g.return()}finally{if(m)throw v}}this.on("uploadprogress",(function(){return e.updateTotalUploadProgress()})),this.on("removedfile",(function(){return t.updateTotalUploadProgress()})),this.on("canceled",(function(e){return i.emit("complete",e)})),this.on("complete",(function(e){var t=n;if(0===n.getAddedFiles().length&&0===n.getUploadingFiles().length&&0===n.getQueuedFiles().length)return setTimeout((function(){return t.emit("queuecomplete")}),0)}));var k=function(e){if(function(e){if(e.dataTransfer.types)for(var t=0;t")),i+='
    ');var n=o.createElement(i);return"FORM"!==this.element.tagName?(t=o.createElement('
    '))).appendChild(n):(this.element.setAttribute("enctype","multipart/form-data"),this.element.setAttribute("method",this.options.method)),null!=t?t:n}},{key:"getExistingFallback",value:function(){var e=function(e){var t=!0,i=!1,n=void 0;try{for(var r,a=e[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value;if(/(^| )fallback($| )/.test(o.className))return o}}catch(e){i=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw n}}},t=!0,i=!1,n=void 0;try{for(var r,a=["div","form"][Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o,l=r.value;if(o=e(this.element.getElementsByTagName(l)))return o}}catch(e){i=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw n}}}},{key:"setupEventListeners",value:function(){return this.listeners.map((function(e){return function(){var t=[];for(var i in e.events){var n=e.events[i];t.push(e.element.addEventListener(i,n,!1))}return t}()}))}},{key:"removeEventListeners",value:function(){return this.listeners.map((function(e){return function(){var t=[];for(var i in e.events){var n=e.events[i];t.push(e.element.removeEventListener(i,n,!1))}return t}()}))}},{key:"disable",value:function(){var e=this;return this.clickableElements.forEach((function(e){return e.classList.remove("dz-clickable")})),this.removeEventListeners(),this.disabled=!0,this.files.map((function(t){return e.cancelUpload(t)}))}},{key:"enable",value:function(){return delete this.disabled,this.clickableElements.forEach((function(e){return e.classList.add("dz-clickable")})),this.setupEventListeners()}},{key:"filesize",value:function(e){var t=0,i="b";if(e>0){for(var n=["tb","gb","mb","kb","b"],r=0;r=Math.pow(this.options.filesizeBase,4-r)/10){t=e/Math.pow(this.options.filesizeBase,4-r),i=a;break}}t=Math.round(10*t)/10}return"".concat(t," ").concat(this.options.dictFileSizeUnits[i])}},{key:"_updateMaxFilesReachedClass",value:function(){return null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(this.getAcceptedFiles().length===this.options.maxFiles&&this.emit("maxfilesreached",this.files),this.element.classList.add("dz-max-files-reached")):this.element.classList.remove("dz-max-files-reached")}},{key:"drop",value:function(e){if(e.dataTransfer){this.emit("drop",e);for(var t=[],i=0;i0){var n=!0,r=!1,o=void 0;try{for(var l,s=i[Symbol.iterator]();!(n=(l=s.next()).done);n=!0){var u=l.value,c=e;u.isFile?u.file((function(e){if(!c.options.ignoreHiddenFiles||"."!==e.name.substring(0,1))return e.fullPath="".concat(t,"/").concat(e.name),c.addFile(e)})):u.isDirectory&&e._addFilesFromDirectory(u,"".concat(t,"/").concat(u.name))}}catch(e){r=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(r)throw o}}a()}return null}),r)};return a()}},{key:"accept",value:function(e,t){this.options.maxFilesize&&e.size>1048576*this.options.maxFilesize?t(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(e.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize)):o.isValidFile(e,this.options.acceptedFiles)?null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(t(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",e)):this.options.accept.call(this,e,t):t(this.options.dictInvalidFileType)}},{key:"addFile",value:function(e){var t=this;e.upload={uuid:o.uuidv4(),progress:0,total:e.size,bytesSent:0,filename:this._renameFile(e)},this.files.push(e),e.status=o.ADDED,this.emit("addedfile",e),this._enqueueThumbnail(e),this.accept(e,(function(i){i?(e.accepted=!1,t._errorProcessing([e],i)):(e.accepted=!0,t.options.autoQueue&&t.enqueueFile(e)),t._updateMaxFilesReachedClass()}))}},{key:"enqueueFiles",value:function(e){var t=!0,i=!1,n=void 0;try{for(var r,a=e[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value;this.enqueueFile(o)}}catch(e){i=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw n}}return null}},{key:"enqueueFile",value:function(e){if(e.status!==o.ADDED||!0!==e.accepted)throw new Error("This file can't be queued because it has already been processed or was rejected.");var t=this;if(e.status=o.QUEUED,this.options.autoProcessQueue)return setTimeout((function(){return t.processQueue()}),0)}},{key:"_enqueueThumbnail",value:function(e){if(this.options.createImageThumbnails&&e.type.match(/image.*/)&&e.size<=1048576*this.options.maxThumbnailFilesize){var t=this;return this._thumbnailQueue.push(e),setTimeout((function(){return t._processThumbnailQueue()}),0)}}},{key:"_processThumbnailQueue",value:function(){var e=this;if(!this._processingThumbnail&&0!==this._thumbnailQueue.length){this._processingThumbnail=!0;var t=this._thumbnailQueue.shift();return this.createThumbnail(t,this.options.thumbnailWidth,this.options.thumbnailHeight,this.options.thumbnailMethod,!0,(function(i){return e.emit("thumbnail",t,i),e._processingThumbnail=!1,e._processThumbnailQueue()}))}}},{key:"removeFile",value:function(e){if(e.status===o.UPLOADING&&this.cancelUpload(e),this.files=m(this.files,e),this.emit("removedfile",e),0===this.files.length)return this.emit("reset")}},{key:"removeAllFiles",value:function(e){null==e&&(e=!1);var t=!0,i=!1,n=void 0;try{for(var r,a=this.files.slice()[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var l=r.value;(l.status!==o.UPLOADING||e)&&this.removeFile(l)}}catch(e){i=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw n}}return null}},{key:"resizeImage",value:function(e,t,i,n,r){var a=this;return this.createThumbnail(e,t,i,n,!0,(function(t,i){if(null==i)return r(e);var n=a.options.resizeMimeType;null==n&&(n=e.type);var l=i.toDataURL(n,a.options.resizeQuality);return"image/jpeg"!==n&&"image/jpg"!==n||(l=g.restore(e.dataURL,l)),r(o.dataURItoBlob(l))}))}},{key:"createThumbnail",value:function(e,t,i,n,r,a){var o=this,l=new FileReader;l.onload=function(){e.dataURL=l.result,"image/svg+xml"!==e.type?o.createThumbnailFromUrl(e,t,i,n,r,a):null!=a&&a(l.result)},l.readAsDataURL(e)}},{key:"displayExistingFile",value:function(e,t,i,n,r){var a=void 0===r||r;if(this.emit("addedfile",e),this.emit("complete",e),a){var o=this;e.dataURL=t,this.createThumbnailFromUrl(e,this.options.thumbnailWidth,this.options.thumbnailHeight,this.options.thumbnailMethod,this.options.fixOrientation,(function(t){o.emit("thumbnail",e,t),i&&i()}),n)}else this.emit("thumbnail",e,t),i&&i()}},{key:"createThumbnailFromUrl",value:function(e,t,i,n,r,a,o){var l=this,s=document.createElement("img");return o&&(s.crossOrigin=o),r="from-image"!=getComputedStyle(document.body).imageOrientation&&r,s.onload=function(){var o=l,u=function(e){return e(1)};return"undefined"!=typeof EXIF&&null!==EXIF&&r&&(u=function(e){return EXIF.getData(s,(function(){return e(EXIF.getTag(this,"Orientation"))}))}),u((function(r){e.width=s.width,e.height=s.height;var l=o.options.resize.call(o,e,t,i,n),u=document.createElement("canvas"),c=u.getContext("2d");switch(u.width=l.trgWidth,u.height=l.trgHeight,r>4&&(u.width=l.trgHeight,u.height=l.trgWidth),r){case 2:c.translate(u.width,0),c.scale(-1,1);break;case 3:c.translate(u.width,u.height),c.rotate(Math.PI);break;case 4:c.translate(0,u.height),c.scale(1,-1);break;case 5:c.rotate(.5*Math.PI),c.scale(1,-1);break;case 6:c.rotate(.5*Math.PI),c.translate(0,-u.width);break;case 7:c.rotate(.5*Math.PI),c.translate(u.height,-u.width),c.scale(-1,1);break;case 8:c.rotate(-.5*Math.PI),c.translate(-u.height,0)}y(c,s,null!=l.srcX?l.srcX:0,null!=l.srcY?l.srcY:0,l.srcWidth,l.srcHeight,null!=l.trgX?l.trgX:0,null!=l.trgY?l.trgY:0,l.trgWidth,l.trgHeight);var d=u.toDataURL("image/png");if(null!=a)return a(d,u)}))},null!=a&&(s.onerror=a),s.src=e.dataURL}},{key:"processQueue",value:function(){var e=this.options.parallelUploads,t=this.getUploadingFiles().length,i=t;if(!(t>=e)){var n=this.getQueuedFiles();if(n.length>0){if(this.options.uploadMultiple)return this.processFiles(n.slice(0,e-t));for(;i1?t-1:0),n=1;nt.options.chunkSize),e[0].upload.totalChunkCount=Math.ceil(n.size/t.options.chunkSize)}if(e[0].upload.chunked){var r=t,a=t,l=e[0];n=i[0];l.upload.chunks=[];var s=function(){for(var t=0;void 0!==l.upload.chunks[t];)t++;if(!(t>=l.upload.totalChunkCount)){0;var i=t*r.options.chunkSize,a=Math.min(i+r.options.chunkSize,n.size),s={name:r._getParamName(0),data:n.webkitSlice?n.webkitSlice(i,a):n.slice(i,a),filename:l.upload.filename,chunkIndex:t};l.upload.chunks[t]={file:l,index:t,dataBlock:s,status:o.UPLOADING,progress:0,retries:0},r._uploadData(e,[s])}};if(l.upload.finishedChunkUpload=function(t,i){var n=a,r=!0;t.status=o.SUCCESS,t.dataBlock=null,t.response=t.xhr.responseText,t.responseHeaders=t.xhr.getAllResponseHeaders(),t.xhr=null;for(var u=0;u=o;l?a++:a--)r[a]=t.charCodeAt(a);return new Blob([n],{type:i})};var m=function(e,t){return e.filter((function(e){return e!==t})).map((function(e){return e}))},v=function(e){return e.replace(/[\-_](\w)/g,(function(e){return e.charAt(1).toUpperCase()}))};f.createElement=function(e){var t=document.createElement("div");return t.innerHTML=e,t.childNodes[0]},f.elementInside=function(e,t){if(e===t)return!0;for(;e=e.parentNode;)if(e===t)return!0;return!1},f.getElement=function(e,t){var i;if("string"==typeof e?i=document.querySelector(e):null!=e.nodeType&&(i=e),null==i)throw new Error("Invalid `".concat(t,"` option provided. Please provide a CSS selector or a plain HTML element."));return i},f.getElements=function(e,t){var i,n;if(e instanceof Array){n=[];try{var r=!0,a=!1,o=void 0;try{for(var l=e[Symbol.iterator]();!(r=(s=l.next()).done);r=!0)i=s.value,n.push(this.getElement(i,t))}catch(e){a=!0,o=e}finally{try{r||null==l.return||l.return()}finally{if(a)throw o}}}catch(e){n=null}}else if("string"==typeof e){n=[];r=!0,a=!1,o=void 0;try{var s;for(l=document.querySelectorAll(e)[Symbol.iterator]();!(r=(s=l.next()).done);r=!0)i=s.value,n.push(i)}catch(e){a=!0,o=e}finally{try{r||null==l.return||l.return()}finally{if(a)throw o}}}else null!=e.nodeType&&(n=[e]);if(null==n||!n.length)throw new Error("Invalid `".concat(t,"` option provided. Please provide a CSS selector, a plain HTML element or a list of those."));return n},f.confirm=function(e,t,i){return window.confirm(e)?t():null!=i?i():void 0},f.isValidFile=function(e,t){if(!t)return!0;t=t.split(",");var i=e.type,n=i.replace(/\/.*$/,""),r=!0,a=!1,o=void 0;try{for(var l,s=t[Symbol.iterator]();!(r=(l=s.next()).done);r=!0){var u=l.value;if("."===(u=u.trim()).charAt(0)){if(-1!==e.name.toLowerCase().indexOf(u.toLowerCase(),e.name.length-u.length))return!0}else if(/\/\*$/.test(u)){if(n===u.replace(/\/.*$/,""))return!0}else if(i===u)return!0}}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return!1},"undefined"!=typeof jQuery&&null!==jQuery&&(jQuery.fn.dropzone=function(e){return this.each((function(){return new f(this,e)}))}),f.ADDED="added",f.QUEUED="queued",f.ACCEPTED=f.QUEUED,f.UPLOADING="uploading",f.PROCESSING=f.UPLOADING,f.CANCELED="canceled",f.ERROR="error",f.SUCCESS="success";var y=function(e,t,i,n,r,a,o,l,s,u){var c=function(e){e.naturalWidth;var t=e.naturalHeight,i=document.createElement("canvas");i.width=1,i.height=t;var n=i.getContext("2d");n.drawImage(e,0,0);for(var r=n.getImageData(1,0,1,t).data,a=0,o=t,l=t;l>a;)0===r[4*(l-1)+3]?o=l:a=l,l=o+a>>1;var s=l/t;return 0===s?1:s}(t);return e.drawImage(t,i,n,r,a,o,l,s,u/c)},g=function(){"use strict";function e(){i(this,e)}return r(e,null,[{key:"initClass",value:function(){this.KEY_STR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}},{key:"encode64",value:function(e){for(var t="",i=void 0,n=void 0,r="",a=void 0,o=void 0,l=void 0,s="",u=0;a=(i=e[u++])>>2,o=(3&i)<<4|(n=e[u++])>>4,l=(15&n)<<2|(r=e[u++])>>6,s=63&r,isNaN(n)?l=s=64:isNaN(r)&&(s=64),t=t+this.KEY_STR.charAt(a)+this.KEY_STR.charAt(o)+this.KEY_STR.charAt(l)+this.KEY_STR.charAt(s),i=n=r="",a=o=l=s="",ue.length)break}return i}},{key:"decode64",value:function(e){var t=void 0,i=void 0,n="",r=void 0,a=void 0,o="",l=0,s=[];for(/[^A-Za-z0-9\+\/\=]/g.exec(e)&&console.warn("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\nExpect errors in decoding."),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");t=this.KEY_STR.indexOf(e.charAt(l++))<<2|(r=this.KEY_STR.indexOf(e.charAt(l++)))>>4,i=(15&r)<<4|(a=this.KEY_STR.indexOf(e.charAt(l++)))>>2,n=(3&a)<<6|(o=this.KEY_STR.indexOf(e.charAt(l++))),s.push(t),64!==a&&s.push(i),64!==o&&s.push(n),t=i=n="",r=a=o="",l=a;q<$ozq@K=+5IA0TFZ*( z#nNV$b(fl1wv{b4vSM|qm1Qk`Zx&1aEbA{lt7mJE^QCr{wd+gW;`RN!LBnjjQ2(R) z(gy8$k!9oDkFN9T5Zkm|dQlXs2Zef_(1t&oZh2g2o{cmakDGe8COEQYUH`Tkns>7v z?TW0JxJ%OzbYHoNhq?@)c8aAPmgByB2B;owisO1bX)N`$BA%S*OF*`>s)2Vs;m(?$ zXi>-Y!pjW=Y-yHFgSKPDY`g(6&AqpJ-qrZou3%VuTBp}4fUoi7qn@AStA2f0&c@&q z2B$%HuhO8~*R)@YgQcBfFB{}~)mO77aJI8onZY0AZw%I^=rYLP`Aa9hEOoN%irEanyO|>0TSazW+7$dqL5yps3iUv9q)*KIiiX58Bppi?{nRC?DU~#T-4@ zd2Jtht<~4p;IE>2HDmW)@nQ3+=WQJd?&4Ae&zc7NQ7%+M+eW>)1-}-rUVEL*R~q&( zZ>ni0;gI+BwRJC=wvDX$xLD&)HqA#G_|;j?1g+xrXQXA27lX!S?)ST|H0>yav1!~` zem7r>j|YWEd7kvIc}}f-+5oZeXakCRz&`?Rlae>{d*y2Y3rsca}~V`hz8PgC@nk7t)RgO%1z0 zAFyL45(^eXucB$D?059!ctNjNOTEamCJmd}YBnEa*MiBK-9%){y>OHiFmJ`LYm!Um2%vz_RM8LNQ z@!9ONjTWO}OWX(#X%Z==Y!gcGr{mY4(WBiDa(>X8U5Qk-seVvd{jS`j4HC54V1~D9 zB$NT6mR}&WbZ(<=dDezgc`E%>WY2?@?gBNm&?cP#yc6?4h%^w4aNU4cX5$ubFN}h9 z|O0A?V z1^6a2d{8^|e#z|!@> zG6A#!KtgIf)vFDGpB-6SWl$0^TZ0LB_)3l1Z$+uMUrZ7&H5MEnH5Mz<2>vJjHLvoR z?rR9YhB{6C)gHk>Gs8ZdE< ztj_GT2&wD7Pa{+`u1VsTiaKlhQRqIM9J#c_?r_dn^(|f%m~@Q1bEJZ1M~S z&pv9Bu?5RWyBp@jFC_oEdB zpU0>u+5{+T+4ftYe%*X${D9~VN{@vLTYRI{rq)w@IGf3|4HLZEy9`Ma{Ea6qIrm5>ntiqh_GEBXARTjP$+0{SQHaHi0z{kfO^?=B1`_!N{5_h zc0>C9t()Q;Zf1?u7VB+)xNd0TkY^3wtjKM#rFTf|j5iSvo=oyE#+DgG7bxo4Ny)+z zZy^cAy^%FNM8JQGj|;kL0^1+ssx4Nh54?fgd8$1t=a}jv)U3CwGodP&>c}b~<_cXu zx@9%4{A4>kfr_8{H86Y<`Y3O?*^{8$nX$SiKwz}C zgbuQ|PwU`wxv^~nia-_h0|pvg=aRBUc6^;$9E8}H;$SXVT% z*0Gfu3`U!+!oG>Men&6l?coPCvdtsDnZp}d`+W)u8rcR8Jx_O_`UWo5l;$>HsChfy zUAk`U#dJ0X8$({$32SC;Ubr(L(fNYT_UJY)Y4bUTvc>RpfYHo01crbD#Ad*rzO}P$ z0qmhSJZCo?x%Ph9oyY2qE|4W^0lJ%PXC0dOV>8?2BdoeDY_Lq^T!`6Bh%qX*HHb`! z)&|`2TCIt@Lbpe!Gowqud9ji0>V>`;1udZ<^>5RE5y!Jm8|pM8lc|w#!cv9a1ltC% z^-U#YE`hcyn9<%mmro%o3CeN4^d!$V&ghJ`D;i4=>sfo%v+(6)HEZ#uuNN0|;q@god)ofk0HdHJFm#cFbN5GNXpIINNA#ne?DKAR>EO|NwtZFVE?S~`5Gt&u#*&4N zptmg{Orm0`Cin~$CArhM#R@QrTWpV7EzB0OS#qVVN$Mjli2oQ&`Bzjk^X1%le=gLwYdA80S3r6TB8`Rl4T}zY@ zlgE(J=w9%oXt(ZKFv-&L$qf_xPw(Mcp zoZ7<(BXVL*y8hB}N#|T{1iSMpBQmXGj!FGJeMv>|Ij{jsiUnSZA>$qy={( z?7cr{y_YdlVrZN^sg&31GtBRsa2pME+P4Ygvv9I}vlAAh`8a1ohKsd)U;- z{YwM^T8AJLu?Wwo7yclX{JZ&8P7NaERXz+!7m469*i}}wc(d?P5t=1O{6sPZ>+jTQQmCIS>7i-yvB4I*S(B7b1L z!jIjvr^zbSWsXv!Zt3^{i@rEn^O2=x8plQS6vnch1p-a*#pbQOo&@C@lxRQ}jD`~! z0EQ=UoF9q#Hn)VxNN19#;&XfHi?l~^-=5(fIXi~!^5)I3K3fDUiuB$L?X3Gaw`^9( z)WzMGs~lMi2PBG@1*h36n{j}Z0;4`IV$lX=6E|FK%}mmOu|Rve%=f&AWp<1WSqXcj zYP4QTcSx4X3?@52((d+dRd0YD3Z_qBcVM-td`XKVZXshFinUFLtKcotwhvAn=6 zplm~C;N5Yk!IO2d)ccoeR%B-j)`$^#w|8q`wBa85r83)4AQXFMrL_&~w2i4UlPCF+ zR7iMs%uzf(CaZb%xu{>9n@%pdLnPKyu z=gHcop5&gwm&Q#e3SG{ZE!P`~l}_^IU~7-nc$yDm`M@C`>?EIxbF*Dcsl zXE6l!S!B<%=6!31^~e6R89vL0f$bHf(^7g^LoMZ`0rKjTe0gCdyuoCkG2Yn=+0;tj z*$dgU7xFGNU3ek132?A@88gdFXzX=kr2Gg*nlKdu*{uqc3_NCdahtf~g6I$6vOEEe@S2f%eqk=X}9KiOX_a*%I19cX;AsuhNQ1!OOPL$i`~FRuC3Giy#YAupE58~#cbjUGx&+EvT_VN*_so`s|YbO zHP~YjOsl~c4crx&v1mL`L{Wl2+qn)9ztoZL08aHE1zPi?}3(@yfQx22cOIg|ZlL3-;4@D_tt z8MSxxdd{f(kNn;=wEV{QNALO#lCt*ZA?a^;iHru=>?n!(YRHyJ1zeERTiFm}?q8*$ zV9b3pX7BNa`e_a|$?Rd&sS_FMf@r%{??qi_@?~wgOsLv>u$-zeyq&%P0^>A3c z4Aq(B6h{VSJgGljzzI)yQ0soLfn+UFHLCd$6e|p=}Lg^=N75 z3qoNG7+)`6f%)|_fwQnYmORd_z0Y#1Z{}vLXSvy6%w`wBorSZiZ(<6y43LQ*V!QOP zCBnWI9WA=@AE-r}(DIp-WAz=%wKgL^1_d0spUlc7=JKMiPp z?2sUwMK>u_`0~b)hGy&~3lJM7prX!*JV6EXq)qpJgt~&q*wWXp3d9@%$=3%|j8sF|IGxoOD>d zlvEtn-(Fcdn&e75ThGb1Va*zy`HOde9 zyVd-7Y;{jHN3*lOu_GL3nDx!5d9m+!VgDvpu$zcpm+;PITWK z3mw{?Lmnb0bL8Fd))G4gcya)eHD1_Ywo{kS?s72iah!TY>Bp&cZ|A<_^6ksE(9jGQ zH+v?TWYp?NY-U9)#YZSQvD=FAnLpaasj(yr-9Yk~nuN)x`a*`TV#2h+PrF7h3 zK9Tj_-+)bpqbm!4HZgf*xo}|lN4cp2;`lQd-M`1c)a;A|sQ&8JK z@rcTDR-PWphv9o0pd0KdG!budER0dQ*x*@wdXi&VdE7aDB{?I-qh+#_!m})#dw7{I ztu#T~M1JWF7xsVE3~aHhgnlIjKqUxZp9j3@6hGuqflREVc3SfYZP=M_eKEC5NL zOwlCv9ZNn-UCtUtR_|FbRC-Fv5QZh!H3Nvml|O%`3T=^LQx|zv+4iX|X$cR5_l@}3 zFvyNSzo_E@=ZWR#(97R?|IpfclNCzZVudB9SRrZ5;;ewE71HsTL`+lZ%?=&i1ZUa&h3mty3_ArV*AQ!~1Q=sqr=L~O#q6|^)b1!w1X~Z%_EBJ~S`;ec` zGdWz1^Lhld`pT+OfWjUF;$iP+Qbhj}E4bzGRKyckBNlYy3&JjJ~qR4 zuDlPlO=e8|UM_>d#CLm&Bi1Nmt&EWrWAiBK$#N!m6!!~989{lTPrby-JCrcVDLrL3 zkz`f?0g>1Mf5QqXks7>7Ps8=~934?p6)GteM zTiJ%nfnj60`Pb(`s{;QYm}hM?n@1bac2-XFXL5hE5e&#}k^&%M!wW06etTgrB3+_w z)8e=oJL`G(0-K|}T%dx>+lah)Ye)Jt5BBc75NEBe6eE>a(O&V%@Avwm;#GRR)RqzL zRgLlcz1RcU##|O>X|B5=tYRb**+FVP&q89Z;URArS?P|2g(Qh^yehcjnb4UT=R_2IH0J5&m;$rE6PkUMa z{CW{XUdkpp;Mr1=gF>h$h8JE()SL!d(>vTR;|R!)sWe%5he`)^E+l!Hzgm1pRuC3x zqi10WH1$G9M2nTGd;qR}bfafPoSO^{G~OUyG*}-K&e)rkN4O_TT4b0u84hH3&Oya~ zFwkLsG~2`gUE5kHZjoSrX%TplT>XP}!+AiqzC{toiqo*)%+|~z|BDoMxSB(*AEnd` z9)Ulm9*Bsq_;)t~l#Q?6`YZQP{z{1d!c(pTA;T(rL&E9J{daaC*)5@-^gW49ELsV@ zn*I4r6E@#gG0_rsNm&oTu{qcIGg;2Hb=9q}tv(O6GZx9TvkqwwzRI&l>RnpgU-;Ha z-yXJ+tBs@jvMav3TF9QWXyr!+=-PS3Rh^+TJb(W?AT21!rm79hTFX{K38_zSBeh$} zd+s^y>4}`!-qQq492tOEw-V}tQ`qw;cez)#apCIXH3B%A>=2o2=A<4eM4|@sdG0(= z2|dlaM);o7oc3z>99DIm<4h-TBEv}=Tz{AZ2mf`H?xqRt91P9k(XTwcQJBq-hNGMY>ui^9B-maXOQFtuW>!BcrVhO~%8kwETVl|@-o1LF>J1#i*hL-ZFa1u;Q*Xw*BNUYU??Jx2 z1!*}jV`h5z)*?P%ANwv~xz6T>VZ~-(i-5I>A#Y~85gDU8waD#j=V3S%u||12=>$D< zSWEQ%f zn%~u$G1Vd#$MB%o>*Qm5b-b;bkRBVwMEc-X<;0m_m~DQs!=jtb{tqJy>p8tPEb2tNS4XMz;(@TmCKdVEKBTm5ab zsB}cCo5t^hf7XTLhB4BnI7^sFw3AxV385DH2SkHId+HVSR3)#$))D6P_rjk>7O_ zHTZZ!4T&ywmt?^SF8**;4LD#XYrWRzXzK74mK897*3Nd$id3gDbJi&OX4UeQGNzU( zGzUgbrA1DK&fBAK7e#lX;Mn1NC|go&xon93VhKWSq1j^%r6H-)Z)aPLL)(JGJa}|_ z*)Hx%9zrx+Rr}V3tGLp;vz#!F#dc5}kniotcB@HKsdhIlUNejmB&B1kaI%YfMsg@I4B)*8B{odWaLa^DFWFR4!5%8 zu%D=`qya`#fv8hI~Ox6GO^y2868 z<v9mg>mpQCZSs4xff{!JW|IB_aF%vL`AnK?wxzS~OZic0%6;CT_5!#bLwYMfv zG)lK+?ASq=EdEt`uC;#rKFAr-G!obQtX)n5BuGAu!urSgN(`2Sf`UR8eGuoOOZUbP zvu(^TdJ4tL7;nz3uQnIML>iLRInOCfLYdu&A)Q8)eP)Rp1l-_pb?j_;(vIz{ydCP)8+6}uHr}^VR)8MVqor+8Bf2>6zwj;p4OFj;sFW{7#Uq!+PFT7oaE@dUB z1u6gxyu496L)&nCq_EEGvo5M6IdGTy!xFDA>|M&X6KN2x95=2_l=6KdY2ck{l{&i0 z3FToFa_uMetRY7wYfc@ocP1uA#|hisiR?ATgMr_dX^XV1q-#>zf`dn3UHK>exHDE& zYj|XnmOZX7@(973=3IJ$Oumq73Kq_8V1bl@qzu2N@qG1aRbJmNH7-cNalRb5O+egC zlaS3^Op}xiVE^s(CgFuiz_C}Dy}PoxN#yOb>a17aJT`xpplcX2*c*p0HgIno zzO-zG-#8HBvm})^0U$LNtJaq~W0ZX`GRlukMMj$?V4MN@R$WV9%W(rw(1tX0N$URP zZFRp>!O90?#WN9rGLBEt6$MKpN?*IMceKua9Z>BUI~?3bt*oJ4^yrz{clRg^a$>I8 zSqIgskBUuVQhUcwqkG0*xK=8KE%v{E!qUOaL?Z2mEPns z&5}HhaMHIUnG)$n@(BQ*b~!{vdBR!qsl6#NBJ#(B2wNN-cE)};$VuriwmmmuCiNoo zBhW3w<@@%v961hN+a|TW+4}l04S`1`zk#By&{Id|m-c7#+BRdZ;T>xMM0}0x9ec!C z?>*YrYt+fAq;CIzutvN_@ixUzUVC+oxY^%YV|b3(T+T44x;_!|PVbxG9Ynvh6oMEi zv6<4k;bu4s`Z%X_M4lixCJ|h`o&=Ll)BO-s(Qg5vTBL0aYCHLMD>+?mi4nzg6{Bfy znvk=!h5ew-hN?2xOa5aLrBu`Se{vDQf?mXNSv!5Tr7fA}{>WL^%v==37bqx@5%)8& z^$#-o{8Lah?~jgsXn~iWHm`ZShN!RUsCBwQfm9Vw#o#Csa9|gD@gKtAm(~*&{1nT- z@RQc_9m|I$a)UvzCYF->e%-c|wCK%g^K|}>JQ&_@CuK`8ni48lU(`r;hRssY-4kF< z9CKEnY)bfv9zS7QOBE9RPfD-Jx**Wq3arP4ulxbT(XvN3ub{ zd;eAuFpdb0Exi0Sr$!49yHG#-QjdqvZ@3bq1{8Chs0@&~o;D_lienHy6YK(qn^|Yu z90?Cj!E#1>Bu_H)N^RJP-L^5!u zpXbzTiZrEykHZ#;PvJ}MQAjoZi!G8k;z5x-2RGJcP}Q8fK}{8$tBeTcZ9-zoF}xLb zX3LSGE5QQSn?&XuNpM!P9#?-veTLP+tC9DStL(X$JX&_0dW*6fjg@jur|#6Eub{ZI zgWu`!yo4yVPlJdR!z#BPE&q(Y0&I39FgP4F%rqH^T#kj9w zwY>IIN5Jm~7PjqU9U3p*e-As%g_3!Lour#|0 zw>+``h1(Pgw@KMp2siCY{2O;Gh#+VFRAr<5k&c(8jq=vqW5Vl(VD^~aSubKZc<{~w zQht<(na96{DfYNsc4&)5EvH}73J_iSB11~;E>tc&N=P@>{yQsfMjqkg!pRgNn zdB@bZ;oUeY&dP={WtW>b*vCfklq3`4?2G@Y<3Vf0#tzAK8&M-$0WYoWe*UiXUD<94 z;kwAbSlJQFz*RaW&xE^P-L}rClmGCezSdZ+X$Yv#_dSdgMs5`BXab$w{3}1}P|O(FU6u(zNO1a}%cqdaP@}YK95*9D;LQ!pg z_3pJ(2{N*?w4a}BS*Xg7j7X*c!1tvHZ>gW|6H8|M$mjo)P@UZl06UccuyQ)SE1_bE za>XoE*}8)fw#i*a^zPK_O>$zwwLl=?xcD<_9Uc2Oyct$(JPo-ad=g3`gYz<{N)$9j zzKK7toj2DbIe8ln(CXQl1HX;WZ-up8p-ZWC5bzGWpzczIUAzc3~FBAY$8Y7P3pW=-|)2JwE%OZ8Qj(0_tOvQM%RPBhriU`^sDulI^_6!pXdhGk#C2Z2cVOnm>&#k@>V#g^UWQBa9uk?arJ>R%9_h`B=q=)WwR$ zfHTsaRZsU%dBw{rUAVPU(m=}de9p&OtE!Y)c(w>K9yrBWgks@>myU^a#yDq_7uvnN zky`b=e{DQ4Ar-%#KP}QCtT;%vH%Uco3uq@jN@kU+=n^(QJc+irY6A7ydz0g< z!pV*2<)Tu2OwEVdoJdaDDGE@qH6nZ}0b`F5VY|#3Kut?jX>Sum(e1Jv^TqoV6H&ia zeNGj;#K3oP#5NzLTIkF@?>Vnhi3$=``{xy~m-*pgx#=zar8Fi&*`^aaMKALk?OE|Y zyNV1^79Cx?hDR0Oyc^{tXp}XjB8;saYIIkZh|xB-o~Ntc#48rSZn%nX{?B$54}Jfo zRzqRS{=cKJg(x_zJ<_taRVLwX?>az(bZP?zff>s~rZ5Pq0f~UUhq?8zsmZP*sWk*W zD!|#aLzTZN%t7;^q?+|W#Qr*%2ivS6#3#gYuC%k9vgt5nlfM6Kt*o@;8?Szz* zvO9U8(4j(n4E@>fiucFzGH>1-L73P_vf(1FJW&r#g4QecDC(#@W#dIO-4ih^fQ89} z+uzAnb-||E3PaK}pkAji2U7a1t3C9uA()q7^ zWQyMm-C}dOvkTGSw^%9t%smULZQ25v8W zq*Z6nyV>f&zem%N`V+e0>DJwv&YWa*(zd+o3XRL%LN)X!gM8@~BxXDcyd!!dU-PUoB;Fc*a?F|9i=wV1XY-bNEu;g zMSQ*X&YsHti?Bc-i+ssC@q~62UXi90C2tZ`&kRP90mWMOG4TH}ycoMqod8Rdbh7?R z{xHI0`FUCI=pAV7a0DeK@nSO-=dN+s^@PDXaKC1{ia%yJn2JTY@BuC23K9^<^?sWA zRdyZXJ69f*0y!mknNJp9sf5w5P!_`VnvxP5ubnXE3U18!wqhSjtInh2>4!jxC|zV} zw9+R3DOGO+z}-X@190k_$jMk>n+qRLF5a@pnc4?ZD7H;H6Pdwtb=san#a6bn4|+D) zJzc$AT%fE)>gKTgc@8=eHhQ)3?1wp4+FV!WFu3qai13fRpH~l8pkNqaq3(T10BJXp@meN`$s;Jfn8@j*3;k;M54{ z+oYV2W;+vQF>v-CS+%w&PGocf)*Uh(oQ%25sTiegPx$7hmAi& zGIe4_(BS)xidb?p0^oG8=9!rsE447@E9Ws2WP)ogffqyJx|NWDO7F!*Ab4XGLzd=~ z^tKizJ&*J&%loZC(((f6Zx0g7*ZbxilQ=3)QB<(?D&h2xjaOYY7Cq1ji5PfN{2}VR zDscd}i>mN?1Vn-O%Y=hC966s3f-B{^J>#rG-5oUI?^-2EkiITW5lv4uf-u&e4 z!5ZS)gTxl)UP!A)1I?}GXY#wB-XbgxE+Z)2?_J!NZI|cW$q6@ zS{hD2Ca;a!OA*MIP<}0ZBbSSGGKzEgjc!P1BjzG@z(y%X@23K0@!^Ve%xo5 zoZeB;&DDcwBLV@&I&l2xDZGXcFFeNjivRQh9R2a;g>z#i?>u^^4VyaG^m^x|gbyhB zDG>b81LLIc;jK#h-e5Se!sWBXkTwAWc|wc{*x7qx6&GlT8`1bIv=Jzg27ALXg$gz* zABC8>Ww45w>NSI)MkXM;iJIFt3idgpI7bdwuaxsR86kI<>OPOPzT!W9ZWqLFq2ef_ zjgpxa9zA-EB=PeY>=%^7q`IrPR`7rgCch9NtXlhVt>8i2`J!(|7VQEk%*Tyu1-~In zvHS2vx6Z8{6)%Is7BeN}TJ4;qEbHP+Qm2&he$CGuH{DPkFaX+>h%gwry5z`F4a@Y@ zZwq_?X^l%i4n=aB0DP49iI%ZpHD61qhb#%PF|iG|WR!_nCGo5edM7=Nku*N!%191C zdX>i_j{h5ed$4{H^2#Fh z$h}?_qm{IyQAiy**@$^gU~cW$j3D9kK55jek12(G?dsA{j$ibdw54#@I5TILTOgnu z^{I1n+H8{m44jHMi7W}`nVy%$S9@3Ch|3eo+Eh8hwF)O#@$7m?hC??HB|{6jzep^59R?F;_TmJ=a~86Z(J<2Ol6)BRdf&Y#fMKo@LX+ zZgWH!Aatc0gh@X-Ff1;N_10ya>XNBqdpH8^$9Hs?=DW6WZd_u(DB`pDycgaYZv zZ<`~D%2tU%zUsyjak%4->{O96Frm+_EFxEB|(Fe*r}^bV73#`4`J7T@y@_#^Q}HzG}yzxVNrh-0_PK zoKA+AoAY}th)Ry7@GTc~eSZ;$JQ-|_qYCmvFQeGPl1Wisixi-x>v5iO`gRUB?2*W2L1hNqIKOHgI`Sw@G1*fT{B`~{UQ(BVj&o`GFsD$EX*R_=-OUb3TqP(dgN>@~Mqs@wD<(JNgatYLs_|eX#9HMZXj_%~uza zImjuBfEQi-OTHQAdy!Lc&m*!PcX0fXPZ3NaF*DewVdM2m6>EubQ#)rotg< zr&BlEp*5>9miNObH~pf`5njom_jHiNi+yvwWsltY)Jyw!;#@vVR!A|RC{#X>kNMVx0RBfm1yN@&b<)7yko%AMU^yK##1q6)p1*ThM z4nhFTFJ3+xG0p_EBOqGPv2YSux+9VeUde*(6y;g!DRkNk=7?Qro>73Zg}V*boeBB< zBFBc1`!5%QGRFE{TVik6fdPK>*=|;Uw^)2YpTAVUw^rw<7@eyI7xPFqaTt}q3vUwc zap~#e+=6QQ#WSQL0yOk8JG*>tQi?>Y4kwaiwomrVq{BUbOU~c5^TN8=ie=Z*Moe`lPG6d_Ar}P6xvK%d-q!-Vsubkx|JI5Vg=m{2yChA z;Wly7HzAq#qiXA{5&b9@lC)4D6g|^&xegso%moy&;N~FZ>t!3BDr;N3ec|Yf8vInT z>G3vjVHo|KJDCmESdxh$K(B2@dEKjX=dEH-F>bj1TxVZShV9f*+H(FpG-Cj)qBC>} z+Y~Exjx}qsk2+qgMt%D*4vliBr42fk8UNjN-Dq1ic6M_RzcLbE*vS+13eJOKp}W#H z1&7D=%y6XB_H|BwsAl0&eq9dDc(FouGt4=08Mm%l6WSBj*DDJ=X!CFom@R+s_S9$(nK;z4*|H(QP=N;Z zMUZq5m)Oj1ek8lpCemU-okif?eC?fa=h7{7m1N|FwRG>L|7?0k#J`vV)>dOnw8_!Q z*#5DcvWKeDf4dIN$2S%t&j|Ez^+z1E`(3R?IWw^S%L_NfM`H${3*xKa~say z8-V-h0IoMyo`NFGLvwk768w&zxf4!>Uq$DuuKIDIYp=>gZnuqsv@EI};Zrl)qTEJY zJjoyR`I>$Xh$k9jAbX6a80y3je>0L{_&uqbz><7JmrH{^j#z%slj6`}458nUo0GKP z(0p0k_v-Ld7|v%w$&&7?>E;vvVQ%>#WM17B{etb~tS&QbYUhcFeZCY{PS2`y!?H9j zQYq|6r7_FkKo2{yTk_lv&4&MNF#rgDp5NVq-vd0)PYnHUv3ZmvTb%8M5l%4Ozk}m% zo9N$Tb|zMhB|Oh&vt82?a^Cz!>-`saK7oNjd|bQ?zCG=w9R+RUvP~f>c8*P%Dgl!t zI_%E~81CpwsO_nlWY?@7-YRbQ0`)jM&FtF|Mz&(#Xxkiw$i{h59&w8M2rxH?IjIm@wAtO2lFW6-aM8H1{o6>n2vobAWsYh|o5!8Ltx5Pm zc*PPzo33X)#=uK8T*-}wd_8k*j(w!%VNMMl6RJQ9XLcozEA2KOsjC02e@`2kXB^5T zsKKLUkAJuf<~C*{{ZKicmK9fSm0hdGhMy!$zH3*obm^eM;O@%V^NWLCLIg7i$B9h-L1;-kbazHN(HJv zYE!@CtohwX4H_R%FX;ypyk(WGKi$)0@k4xT?}E#Ajri7Ox;hy2F6WpK+QlYNAIk(O-dK?naUB%ulYCNu= zi4$B<9l!N9`v`uSfT0~RhwE2SGQCG$Rtq~0irW*bxO6b%@$G{d+?qqP$lJen-rgaq zGt<^$P11n?xE}7YoKh6d)~P3HbCVxo@m3%*l&RT%hx&CowMV{RVwD?$%_1K9y;+hv z9t7gO5#yhXdhd?gW{md^7x}D^i8cWtVc|NYLq2+Fvn&E|L;~C5&#*`clzx+^@n&BT zBn=-x1#QtI@Y8utguB4EYW?RAQ*fj)pH=FKL7i58RO$q;RcX!qEh`r-twa? zlbWt7UCV}KtV5sIDrwLA`94g%QNNix)bDbW#-pr(HEi-rAJQ?&=u*AILwp|8!SftI zMkiBHAqy6zhZ_4c>#!hUR(x`UPNs%`btgXsY6_V)M9L$ft5TR8i+XhVf;QH&GBgXaZ|db#2mN!AOS)j ziO+>Tz6*#&@rDQh$qXMnT~ehXemAGY58{0z_Q(0gonX+>w_1o~C)#!g+Y1o07U5^% z*1qkkX z<`f*aY(PBmnw@M;RZCB2_OcO#%FG_3__#1E5E7NHP%TU%E;i!B2C(-9%=Rq*RgdY$ z);6>WuqtP&&l^FvB{9ohZp1(*|w#`=Z4`1!* zmkJJS`~_E&s>Q}kxmHgJhr=~ft`Qs{md#UbF*Ljb+D!RtYf(yFP<3TCm%T==qqcb) z;jkG%;8gzL0NH-b=y5zS6>2MOL^I>Ga5iukA(R zyUE6e!atlH{&0wQImVkmR+{`Ur@j<3x2YsBH;IX0jkqXq=gO`s1V!WN#0sk=nBhyC zyO#N)bJWb<^vRH7o#SnSWr?4A zE8=v|@o6PH#5y+^r=4}Li!-N$GcVIN_;k?*d%iM;{7u$?QNT>e2hG@myAj=rnNoC{ zB7g4ENzR*Y>=G|xYyt3wJ-&sBlvFVTwZ^g6avsPlQ&2vKB5IL<%}7WIu^09g7j}ef z{#$I}hR{}O_BvPbVQOUu!{LYja zlOEd5vFHW2aO@Ix!ECSlj5E4*zGLpKSO=cqK*19;c&|!sFp5~ePtThWyOtf#=F6U8 zO#t}#zx|hXk&m+lN!Wp?-vUO;`r)AAp;>v}CehY;o zR9uvWBb7q3M0V^ji0SZKKe!m&lcH3?%=@o=1lt4x|7Ve%R4^<-WlkuM5=)Z5lu@0| zRws0pna#4{|5mcgxbn+Zk$Ig{LE7jhoPUAr#HY)j>suw=#bYY{Z8XTcNWZvLG~13t zN82ue+5Vb`)12N>_-{)~^3y3w6cj}a8B$e#VuK+)^9wdgGF*}J84~F`aQWA7w2ADy zy7(7$%)cHw#RH_bC@N%tZj$W~m@ zLjeKJ*ml9qBd^CPR+l@yam36vg``aXaNj-uYO@eugZwd_bm(ejQh)uzChQFso)f10 z7z)2NJgJ`-afGddZQSKY?&1=T&c1ZJJ(W@3^Wf=sx;VfhaJj@0M+zGb4WnRl_OnyS z%#n`j3nCA*8JBl-E11=CT6L zp}pb91Jqk5Pf`z@XHLchWG6nNBk=GCMQRrZ`Mzs!Pzdo;|K48lAr55qD-D11$&7=$>s;(RBi`~f*f!9rQ3lVB~dg3=ae7SCDtz>ZyD5o z@qSO|%bWa_ix?yKnZ4JJI7RpN&WRCZe}n$Q0`m09|!vr=BJlTQ2YEX6qbF ztE>*f{Dmt(XFt(u2Wv|PZ|B{W_d$B>8Hq?=Rt-7~glc$Nq(c5%FY%6WOc%*=Y&olv z#arVaO_uT_U65M1&N-~xbUDmVjF8Uxfrd|s%&)f-nY)!l=12RJp2CC)PC79T*I!0D zmynIv|AkrhYe6wAC@g=3?}QtLU^IS>(22-I88dfWh~FW31zo<*8gP)4J-Tvyr>bbbj;%d{(BDHfS3%A8XlW<$k00qRUnOZXEcGW4($ePwU*ppL4OF zKfNGMD8C0J5p(i0ln)1IXJ?RokpoyRxdjMcu-c3trnHKmqU z(egUJjTNUAZ;!2s;`bT38QqMC8tHR?xtOLrbx2tks*#Bf3w{L@u{$n&=>-K3KHk;e6J=E<}Szx88Eu(hhM=n2f?XHU4U6o{Q0zUCwuq$%HuF0p_N} zNG*80D(Jf1LHMd?PaG~c$$cRnyAKr)s#-_{4yv=l=5-#WC-DmsaJL5Ae(q#pXX?#< zHg^H5d9G4~Y?o(@vmf9xS)J#?a`-UMd;tpCe)YgdxYdILYOdVTQrEVY4PyGCs&J_i z3sOMELb-O65t`1twv}6X(eLBp z&{*O=xHom=7AQ@GvX(AJ1tZ=*K#{$s{D<{z=!f3QpVV<`d2Q<=6dMvwd)w%3e&t7v zsoetlsOxB^TCe*SmPoH~(`Z+xT39S|x8YzC5LEKg*M73BPtoR>8fa9vY}GUs_f#@fUN z;P5SHco;}dZNq@FZ7l|P7nild4&aX8XfhudcW-_lZQkX-wO!j{Xh~AI$S?qfY?8-C zWR7lItbYNUz5uQMAuf^s*AR!_M{Dwqi!qY5Wn) z!TI>aCNdXHlNCXK@+yLlFJ^+fMS}a8nvRsYd0o_MZ}DRb;uVT0p{6zOcChs}fh%t$ zAW)U8Iy~Gwb{$EZ(@?bDq#>`~(~tnFXW%SOI!)8bxG@%AY-?zDE?pcKGM8?TqqdXo zI5{lG7YefrW}QlS8sQiT2*J?%5@!z3?D`=C$vu?k#SX_x`4bm95iv%P*th(5j#GT> zbz!=$3l6@(9$j_Wvv`&tnHBR61|tf)g?ed0gy^J}^h2FM5!F#}KYWK-i>-)#&fy5$`uvPKT5#)YAlO7)?qPY4BN~I@Is-xn(6N2YUk)zV5TV|*vnPnWob9lw z8&hvL!als9vJ^55BB{F#--2c92tlQr`wS}^_jYhqHcNA`gC(*zscQteGXvMMLJwHGK!i304uW>}hDRi81k^EN#GGsVWFNZ2F2FX|_rZx& z$*2Lldh%BWA#OHB31l%IC&U1=6Thd_a$>V}1oP`5_6Hu4@4yu-5t!B8} zGW>%p7xwR5$53v;j(2+LgTU;;6IAdM-NDLVcBQ<#Ts^93;;8U)`O=5~tZ&)Qf9zvI z9j6@)2{i*gAP=d1`b)k=*9j)t2Q zgi#ug$|&Bfgb3>*ZVc$2xFZJKNGDZ@3E<8x4uNQGx9{*cE8=)(x&=c@sW_NlVj<*G zyv0LgNHD}E%k3LKi0h2ZCO;mo=!3kqR;quTScb3Z-l8T(a3Bc$X=2iV+G@hCL;NFd zp^9NejIy>m@Iwt$ymreCjae=A+U}WZy@MTv4S9#f^J>bIbp=NH%kMiA$EX&nHaar)5EUFSVoKDU7WOw z?ViYTK8jFFkppV%)zSq^Upt0PSxEepg0Go9RHY)u&rz&))tJv26MSX~@-paUg13i^ zqwjLw^nKvJpbqwY8%>Al)oE%f4?<1H>HAsw{@H(1*JEdX9DHrOc>#F3uPKt{Y1j9w z;Nun+hB~~j4w8UN4K)!1y^5>!ou_=~7>hz`IvNG9!*|g2ctsp~cHV5u`g(zDTd1-u;@rd8v;4`Q5MaV|aZ|wn~r&ymP202?N#V^S9@DNu02@ zEes7mdXVE|ySKDSuIeZa#1$6^ zRQxcOC*K(o01Hv4{Ke=DH#KeS;Sl zKBeI<_$w!R5ZE|n8wBtsKHd?dz9?S$mVrt68&g+?AnUA(1y>5;!{Vd;HLsQO$yjU} zjompKG%dEfU(>`7`P)SUnsr|0&I0lS1L^G({wk_)P2OfRuZgGh zW2O0d34;>4hGCpbERf-N({v=?QWgQOd-E)+OZ2%eK13gz89Exs_~dNuN+}`CdX(Si z4GmlF*&$tty>T!_ln?bjP&}(~ggrWnh8noBb!ncDyLV~0w#x5y7+uN>8q||Hy6h3- zz0T3Kr%_LG${ng?X71w#MI8cYIiV~VBkMTwIg4BN4wGei?6iZchMlbE!Y%vYElYXx zIr`ij$arfn_`)JaF#29c zqEjK|$(|^7ls^x;#66Wp!_+8-V#(+vnS(@cfr#0p*@@7hjDtu@n1Pwgq5QHZvC3Xp z<0N~`BYIgAu~p8!hR)WM-7I>)*UQ;G-AaV5VBR>p8S<#4M4c!LQmq7*=kulCgDM}e z{AB@2sfC>=e)9{!dQuX?`e_JDB&5#7u)OV*^8N_&LXLgY%gQQJyZFgkT`c3AH~`FD zYQVHFG-VvAqGd)mzd2VT|H;-(Ly9gNnvZYxC4iA8;_et}wz=JOJlE5prQN(~a(-(_ThK}I zY&Ikde(NC@?Dxw*v%(_by7@e*1sPU|?Si8%3qQX#D%8$eT(||93n-FW(6`#+Dq66K z!qZy@bKgmYTaSO+QVw8=R(8Gq`Yg5rf$`BgJ{S}1vW>G_yqq*Xz6_o5jOi6oz1;h5 z>AUIpV$$nRzx(-b-;Kum{a;VV`xnFhbou|9UiFrb`opvSWV$?^^p=0^PN)6J`LE|k zgXyn>(cpa09S*+s_a7Wj8RmET_J;KSwbvaEf9)OhdnbRa)1==$@Biw)f2hM@|NPgp z$@qMH{^hLy>-gXgb(;Q_PJ_`=e=<0q{-GJp#?$FwZ^%lljbu>YonI&-;`4gYntmT$d{ZX&qm`ui#d%t`q z_N^Utr=#!BYkU3vs8+J_w7*~bsW!cU;qU#h&_Zn6-~Z*iAO4%>{pT+u{R#Tj1Q3sT zh!A{pF=pX{VG1$-y#Z{{1*WAMm?$}-vaJ7@wE((kIzCuvd&f$*;Q4ZqMRznBpVtI< zty}Z#weFOUC4MW5`6qyvk88g|h{34;7J?${gZ}j1d3STiR;8=bYvy9fQz#c6-i zMOJ7w?^AvLKmTX#pgWxQZ+Awz4hDx8Wp@OvY$R6s<-5!7@S^|Acc8Q~^beKK53UgD zGWRe_5&wH)9ub%(r>NTCR|SyjNidWBhz9N=%n(Fv0nt z=PwmL0g9#rfyzjWpqL0r5-N>m0x{z&SP0-lF}Dxy zjng6)A4BtmYjkp@dF_9c&u_Hk^t{lp0?Gl;)XjLYE|EE`#s_CaQyv@ zJt|;0;Fwm%1@YAx1K6_FkIQ0`nUPMQEdN;h+kU@)_IEQOTmvCtoWJpB^!M72%SlRu zvkoOufBXA`>2T2NKahI3hog@7JUX8S8>pRzqutzLma~_HmFCmGJ^VXTUHg8IkgeYx zeLqtKsiWFFm>vxd&hN#b#<51mfGJ-4Pq@^>Al4C*4W`@p0*XlGN#BchbA2|C%pz9# zKHB#CVG6N<-H{fK$Nl|{DO1adRvv(9?e|vZ%O(2Y-K^6LKd3ej#SFt)q&=* z%4`^XeFYL_>lxw#3GE0OW?uIL0?zi;2%lDA)t8`G*>|bNU~>$~)C$8k!xbq0Myt>v zY7z68Ola!Cv=|b98{_V`I9v?4*PSY?$|jTUmj{EX{}RO!6#alc|J&cu zgJEhRT z3IF)#gY$9cd@>jv2G{t7WLA0sDM_Ks-{r;JoNYl8S;XRm|G^VEBBesm*Z*MP825Wo zC8>(?O}P+DCX-?1vBq0R{aPckO)1p?-(L<0jLE|w&wGR6;QUMNd>r|RPY=eUdp~@t z;r-T;2jz|QZaA2tG;j@;^{sy?MfSj7o9FO15%6R@Ivjp6dH2=3Hzqb1(eC?cEoHl6 z{v~wCeys@+Psf*Jb%4SHmEe=N1fIQquX_RA@$&`de*X-eMW*OWO=`Y&g;QSJ9~?M+ zL}F^vJ?&qOCno~xhD#Osl@bO25Oc7KY=2+6%qvN&!^xKdIUKOMc%inS!;O||2cwxD zQJU(36Q+CJ-icJ+%_nA##FR`|*!!=I0CRfQ?e#sAlU*J>I9BTaKW+^4H^2Y;Y-YtS z3v;Iifbh3c|0KS@yJ0vZtR(@L_*;$r#9WF2hGoiyKX~v!8hr-Cje&n>^}~Loy1s#_ z1V3}nksyQV=Cdi2iKvbx*0`%7fm7=KpnG;UBp1ZeU^=ZJtvRWK*&lKBWN>&02at~& zPf!r>?mkjotG8QoUI?}B<@bkuS@Q~j)yEI^2ax%^chr!iRFtwCopw+9>BV{$1cL$}0snvu>(#qXavF<-=dl!3n z1Je{bfUvZ63wIfwwqqJ4CJem4Did3m4p4`tFHoQ}T^hQscI@#Jv1 zKl*9Av%EjgRGunfv~wyeWFwhkFpgd`ZJf|1xtcOGKXsN?%uA zS2$r#oN}I8BFTe9j*68GTwr2K!rXorBr3-$(KgE%0Zd|kb5D|Tu=vhuI5_W{its_L zd4T?trdQ@VS&)6C3SI1#XktbSJHe(@QgB`JClUb^HZAcVlh*fuqm)`<)P)h#SkZAl z;>{t{Y+%SDql4As~SfP}n7xx~XhN%obUO01F!ui)e!cv*vS0Kd@E4Fc~Z47dFdx1W0EN zL6pQF}t+t0nKAEjBsnjGEGpU*3oEQ8zPj}6HBd4o=`R>7NOYN8M7&PUy(!SZ- zN&j-tzuM}bo(8M70jaCni&QFIP?3a=7m&R(xKA|{M z2wwitxtiLKwO8yQ;hG_0i4eF}xM9goO>1M^s0oC|>47GvwR^ZaS4Vg{a}a5^sKxRN5(lymVHSpdxL z+oyv8Mu&k%`)STk``zn{v6M8{v9QFMf7{7R{*d zbHuRQCam;W`Jvp+aqZJD-<@5Y|MJ}@$=s;V{`#~#`SPIlJ1a>*{*m=WxLkqzw10jy z-e*g6fCjI9x_ta#<wmuJPtU8k z5O#4mahFvEfLV8j;nr|l^w*B^_yPwSZb;*yqCMhN5%eij4yJwbjQi6$^iLiB5^VwsQn|C0%2NBe*#wE+3o$uQ^;GDvU~amFb(Y5~vxRm)MJ}9U~>7Om1vIKN!KY zr8wK1ra>&IqTQ!*+KQ}7Sgr_|9uNmIS5z5Pds}K}&hP#{g(Kq;p{9*5Bp(h=7&##u zRLiQP&rp!yo$hYuvH9!goEzh(Zz_c zj2ASWfZxd_ZeZX5UFG6}1TR5mbQz!S4MxEep`I3D`jo&;-L&?<#WcYf{r$h+`!BKE z^3&q;A7;{38YKb7Mm~`)5iaT}W~$=DBY^I2VFHo+RJK8l5n_+zuj7%)WXV`iCjjXa zWB&Lf^qhS8@yFn$>CyONxF1>(MA0p+N>rCp6gydFrqmE=_&q%7t3YdqM+uduWF-l$ ztP$0vJLew*mqrcif@+_6fov%`C7~GH8Gy8!X^G2EGXp;BGZ(fZGz z>XYQ`lfbs1RnVn181P!G8^iJCysw;s?47lNUke530j%!I!$(ijpIcf%G@4HZTka3Y zyIde#9t3GTke!rX>!Nq|`qEUv3b5pKAW`d%P|wrhmnsOQy7R&VVc*p8rNj`{3Qe^+ ztHvgaRA_Xs|%_O@_GPY zXt(L6irs=Vr`>Cia%z;BKosKCT7&$D;6Mn8#vEUDBBg1{ z%#-Qk_$y|iLIA}wf$_;bVPwF&avucpUG76^rH(F6_eLVP71Q9fdpIW& z6gupWsPZ|drmDjB&R;dvbZgc?5{kD_~rlnfKxv86$OU?8Z9=1kcEZu_8N_Y--%!U(zQYz!}lFO4bodWky z*gNt{BhtkaG&uR<(n>DE-?H~B)>NB2SQBdDK`!FOy23a~Ob`6~=#!C3Gh~s_{-xIZ z@yAkc{`g}FDr1gEWTbJuSaP5@D1xkxC)mRDuv{-pSuQvDa!gK8RvM}j+?RpT0xMZN zl!*z|jmXm|iI{|0%<-wL?+ndB04DDJG%p2$3ndr~keoE^D)H1HY%wZA3g=e0Gy{;6 zN}o&y`}q8ZeLf5fAb)3n43)nid5d9F1ufrjz~$&HV6Q5U(Y<6(^Y%?`pw*v3Ht$xH z5*Yn3K2j*Pdx@492y54pmZh=__pOYTq+dg{&G$1R%_k}8A<4#5!PkBACkp~ zRr}Xnf^67=7PU_XVp(rX?zLyTuxNLig$H*yu(6^R3*DmH;v2XWE;+_n1Txja_r(N8P0(LbdTrT6`q5^TIo z?8I)$q}+hpgE?0r$U~faqDgm;&^?XDCg6bJZNX8LauQy0R6oY!;lta83t2K8HkGrm zVdlSigh1fTC5iMNtV&-bHW_soQ9iOoG7`6+u+{D#E&BVPW+qp7vuHxfasy-*+J=KQ z3*uw@?$iF)pBV2a5BL+#2sJYnOv5vXUS>!1vImQdOWz zZ}1!Pni04=--ZoH`?>IuL;OmpbJXwdE91>8@n#upHV%JIGk^LAmap~Yr|haf9aF*o z${l|BP6jbL#~wCYK>tkKVf&c|{swTJ@TxUs$_=tL8jxT*ogvhTC zY?{=HPKVVFaVoGz_hgdFyh_<>no>}%Hzm2MvXHPD<0*;`AKMyIUR~_M*q-oiHb4M6 zOYMvjd|_N8_1n{OXYPuz>PMBWzncgx1Ii=&8WD=gz1$y6yc!NAl<^*1FgP6Hq?P`V zCx}O{+KjqSR)w!gr^j|{q-R(vS!r=IX#ySDu;*l0C^ne;0pm$pvuk-=(c3-5 zU8Sfug&^cjBPoQ1(9ZAaX&1UEm?He~W|nZS5z|Q8>%`fjQUK7SzR2$AA`dhUAN*YU z6+bRj1@3JBVClixbU!gw8Wk=T+s{-i(0rN^f|&0{>Mm04px4H+8~Z(!r%32sMsdp1|6o7UYOFKaU>UQoQ1y_R^?O_dEakq7du+6{HZv~CB`PBn z@(xKGe<>MHMd(VZZweb!0WETMneP2t|IWNR>Cf2<+v%S|)lfIGkP}X;yEE^8hhr^F zzpa4v4Rvvo$_vz;sr?E`gXAPZzm(>)BqJL9d+-wZo3bn_mev<9-xCTckz!i{?_x1G zCuohmZ-Y6vM~Jxr0#>xoa6oZ&2aWDT35}rw_V=UfYZmv-L}GoOt!7LXTRP*$CeVdiE<^3$3++3Hgz!_r9dF?kNB+i5#t1M#rTrlxUc>@xGxsBmN*lzmepHrrNDZqFha12s)4_6jB0?;r1f zxg+F7bJ=cb$F$cyii?Df^2<3a#^D=0h`;LbU$mF9U0WdA%aADp$v>d%u+YHqJ2- z%^V3cPujHuV*S{gwiEE6R?F-;CbtA7{w1vQc`3B>9?+Sg!OUc!vW>Z8d9VNA@BzVF zWR8A>sC?;O><`8qo#6{S!hu#ns_&&)wnj`8{)S{%-61lWwQYz+GDg|+P`-EgLG#yY z_KktFd8V<yO zM9}WyWPEXWL^P*)qR|6=jwxeo(`JszZ(tG0OZrxT!%(hLovAAD*o(AA=uB<7YMF8b zrRgZs2z?XyOsiT9ZrGC-jq?<$rSEiPrXXg1+@r>GJt=hO&Imb-F z4#NLb19tmVdjdbB_D@w2tF6}nD}kcCj}>CMw4_po-31^8^a-Y)Z5TtI0B!lA7SYsr343I-fOnVhtJE+rhl3RU%|db!;Uz-g00G`7UL=MXPLWO(6U=CsSPqHQt{^Or znioaJLv}N2``s^hVu_Wikpx*ePWvchT%AGbfYv_!;~(YQfButPp%UBw_(z%YqmQ1J z=uLc*O4Bs5@?UaBD1*aah(oll6e871#nqxO1sVWkYdp>eDeVVK=uri(+Px}3+P8jC zYjv+@OW=UdB6Kvli$5wWC$e(Q9;%}BZM0g>9N za4%{08vrD$Q057#$Wb+xCn?zxeCuw6i)n$u{%v%}XgJSq56bsTm(033qL9c)`fQq# zrybYzm{Js|CH)5$t8=E2Zi^Xc{De?d;*&}RgBT!`h`nd{c;87`}>+bp3K^RgQ9;P7nX_? zF{XT?*9}I>I+ou;48HL!;1rk{dR@B922URx#-Jqi2rei*8J1tWaJc7M-k3V zSm!aXpo?#o)w?G*c#uxpDdEq&i^%#u`;| z*#JZxs%s)<4*#dr(yeZ;MGNU*E4DQW8oGAQx#C~G+sfgB+Mz$M`SYnixBU6UpEvy3 zANRDi<1MmkU2>E{i%aJI+Wa=9WOz%&DM=I?Yx5Hk@`a+Ab)*iPa5)m^#vvh@CqHc2%GGzWIi(wsP+smlZ2k ztXQ#bA+u=)YslImLq}jlaF^qZydAXa+_6YYT8XL~!WGPmubqD-^z zh-k1{9C8G4kPwxn7zS4}nm?HQ?79YtGH#FHSM*_^m$9UbPyhf>{wI{AvydhLlAYJ4 zXe+gn>LxWWHF4T}%}f^wfFPFK19I^z!5!=zOYNHy)?lFnm}~jB`}gznDcgjVv|~{o zk@Vh3HVax2%VUM7AoI@bFolXE!z|2d=MSqj)(wL@?+13$ZlAx|EpkO6> zm-!W-DS_TGaWNHvBF6$CsUlqp(#78?;VVqZ?Kn_aYC9*}5G4Kjeof9Bw*?O@l`f;M!v_Q>9%DwAdm538rprwewq~e@MB+ z5mPwV7%)t;Q!u<78)K@`>94=#?IMNDALO|l>&BGx8f9uM7`giD zt36C1w_w+lNg>dlE1)(982e(+jInLmd8&pul>!o3tdIgop9yn1{H49cm<;1zU;A7R zSob1?Rv~f0KGxiPP1v1wD%(p!*D*GG%nzs*iI>~_^!@O+U)Thf0}sm}VYwh-lQz9o zt-mGpx$}C8sRJ5n+JfT;6ti#NJ=@w>m*h0W;UD#H8Qw_jYH4NZfBfg@iu{>e3$^qq zk1Jzo2idP_y@R^0I_eEqfsra5!`9GywJ8Azr5|Dmg z6?};Jx^%@6KQB4eED6>La|#!Hv8Lkw&RH+rzJq@lP*=+~X$K6QFW$&SKU96M&1rrU z?_&Ah%g)12=Gx6G+9S&D=qJNE(iDOScRzF-GR4Aq!`Y0CIIMAP(L9QZeP&fbpEUB6kEqju*J66O*~@3C7O=C7fhmvQ!*RC0WCzyCt> zT5XE1WVO9FC}1TTDxSQe>2RR=Xy~f2ZCIFZBKw+SQ~4oaU72g6!rJ%6U}ct378WKo z(=K~3ila9N{r%S2>+#|AXvton5~z`oth#hxO8c9x_;-dBmG|Z~+bn~eZSQR*=Ae`k z<7_${eG?-jPegw3rupK1R+xoEY)MFBV>mIn&13dknflEim-$Q84Odk z>LqiM=r_mFl%Z5$D&Px}b|7PFwM};g|Jum6)12(9N2$wE6t#rz3@GHDka0>HGTmm&=>EE=uENXHH!Ig|Qe@ zc4o=ulV5E1uE6we#@O=1UrUw1MpwtDGAlX!Rt?HYYA{sPP4caffVaq3uN(4%ny?!4 zGC}AnZ3`-zNGZYmV9N=}9HvVQk0VG&Fk?E#moukBx?Wh{S1&ru&>gl6i?1TW|gqbnfu_Dv((6M|ZK!O%>4oO8~NbZdwV(tn5u=I3kj>g60N24)rQ%=e5(l{`r^EKS@c*?|lc z`%2Yl9=V6OdHf7p6BpH}l!y!KzQTcH&>qXBX*4)gikXsEI!){;PhmJ8?m%|udwb*2 zW1O0lYFv{<@k3mZES&}}$Wnk(-xPY*oTx}PKT{>x$2Xk9%~@B4WJO8e8h@*;$V|Xd|Kq=Bv%^(Mesr*xyUg}Ni~-K_ww4uTBT7vz(eRr zniAU|1jW*vD!Ms!n{Mk7lRY*Qvgw;p=g`dZYk`TVRCZYCmG`(soRZWL<|)47?@*oo z)BAzUxTWP|p=WlaD!UkT4d|cSA`VJFPd>WI52IKJMOS&|Z5GB&>Q7b|>TzwhQk`qE zAq$ZP4!`2~cs)(_%zN3WJCtS6$vauci{(TeAnz9XjI0{$?qxAadSK0jdl z?@TWeWgr~qwRkLtl0=)VxS~p7}Qg^T6HQ=#@kjCgJMTfwn7nq$5|dOx-qSW|nzmv^(T|@}j@I z^g@=HWf*`Qa({%zDtwNtv7VCDpitpBbCk0XI1voLwSTFshWjs@Hu$x<5(q{6Wwz}O z59LJWN6=<&Aw*ZeTR==RP#YB&k0~p%zJ3hdj7FPZAs8v@#1-dW9sBL;)5#vM{C*o z0d^2!g%Mcw4t<>hh7$R@*zz3hw$@}6{wQw6ChY$zzUA$}IkJbAgLU1ES^h@e+LV-K z3GQbRQgSBih`@?;^B#k+KNrXq-R|oxd9ZB!*5Ky%*MT9Y`AD1Iz~?bm6BghP;_&k( zt&1y!och6?B*t4yC$G*=;8>G%EPU$uA6CWp`mPy`z=cTCS&_Kq!5uG}1XqYuJ)y)T zbW270{Pe*1UTMQnh!qCz$+xne3U_ID{_=g8PYw(4!eK@fro1JJD^y#6N%`U*qTSNk zLh>yo3V*koMQpB{O;~&)5_x4&bg67(fv&Phnc!S0G0BLf&#>{~oK!JaXOKfQ)nTp( zcBUYz@K*7n8`)VdsSmEC^yWC;*&$X!)fZ7oSdEQJ%mXASB;FSa_(v(EjMLqxLJk*Q znB0n{3@V6DS(vi?yIU`NJu5lBjIDM7O4YMYF@SrSdahKgqQ74!T@CR|gCaU!NOtO` zC-+5_K5Wf&dfVYg(>TNS8G{JR1JzLdq-WcP<>&Pyn$9t!9qv*yJ0GVwKh^{}sJa=r z(#MGd&-Czcva49Z2ne008dZ+&(4c%2N3N#pBiBOLLCru43D)9REndZ1G@!;+A(Gg$ zRhiCiz;U3Kc5;CgfxMZT4y+8(Ts%K{QqIT+>h5!TC6Tb4n0zWmPo6&h!_&2m zjZVN3L-?H^w8rK_0GH2^mXoRq-HSrAvv+B|rzoyiS^Ag%HfYj)G8fAp$nfP zA5`gjkUFxqnLaeJ&rL)5Bq?gi$pYJnK7Lz51-eH~nn1BPEgpv{Sc*tQ4Yq8LRS=!H zZ{ZOMXF8LQxxN)0MiDuK__J?T&zBbYS2>=3Z4)s3eQdHQLB zLy{DYThZDkupB->Y{8w;FDA+=oo-Y%xo~MW9pucjk<>$sR}0qfpXDB^B_ag_hq_b- zYv}G83Xe4P=eY&vVt5GfdJ>r4&b-X8Ws$+eK9W;LCmow?7*>4!&}f4Q86-2r$uD9? z^PwF_%}vg4JG8>is=cG|x)6b@PZw`1PfNy;*zRp+T-+I$+^U~nM*%sM1tgH4hww{$ zl^~gAOjW&5@*8FmWvZ(`nL0Gvtv|4WC%e{SzI7L--hEbK{&?(ZSisKEZJsF9uYbOG zeS7=ntuL>CdGq?`H*o*#uCKsPkj0%BQB?QT*SA;Xm09JA3(+f@{klvGOg1=P2~Cm} zU2r2;s#QFT7HY}t@4YR5yYt#CRdLKqQ3aA*<63%oLmRURs9Xz1mI>VTNNuF!l3Z%t zGEYGQJlJz!;j$`cS6^qRpi#XRv)afVkxc|typ^N?lK_7vZ?bg1X-!MUTr5eLkuXH2 z65p9EOUYX=DIQC4cshF;4x(X`N;8+)9HUaUrmNYQSS&efvam>LkcK}|j9=#)bv#>n zQR?QvtuI|g^CHU0MHpZ$rcvV`*^96h&Ao+a2HrU=b%R^`Zhc4=7-s7IRupJH4TuWO_t;2>-VJtD zHmVA`-uBeAmHWcr%fTL!BegYRBOk0`)}*F*a=qk;gCBz>Hs2baSiZ=|+9#v8d|#Cr z|D)w?tM0z*m+YqSSt=)>enJmsZarXIQ5UFoIWM1^*?vNT?%-c#TOlL>ZC##kq_EED zg==QL15y!<^^OFftKsNoqFbS>FD0j6=tpcJrYE`86|a$EaQ=&J3|hE9nl%U0iOCD_ zH}9a*1GG>y%78MUIat%7p|#L7Cb%4a;LNllKM*uxIT*!`fkECJl7hrAs~lSrEMm}# zW8wSy+Lw|G*@;-z9GJPLWO^D2{!FRyNiz(*GVABDjws5sJm6H@cddJQY2C9DbZj}M zh?wKKF&Q4UTV$E!z76VH=e?Jg9wfuhWNc(nw4Hyb3wE#{NPr=UU1RFN3P+8^VYt+E z=ELrT-6*Zfg5L>%R-c56OM>@3 zm|78eeNri{MYn$0twuk$ei*^;v$$^S`g-*HBrwz~_wy1l#09P7Uz7_n`!V)?bT4nNKo1F9PGlLvz=-L6-wqg%MZt+=T9F=0ik?5u&)ak zO17C%whwi9kao5KKfji=rWf@el8S`3aG}CcDuA)e9!8h5J?rhV9ly)F(#Pd-SFn32 z{>;U@k)D;Y<>DJeTr&z6jlR!##{M8J_LCjsqOs+OEXV>Dq%fX)p${w#i~O^(k3xPI zCOL=s7Uo|MTGh0`YMUDZj-|5DDMO5HZZYRvmMLn0td>a@bQ0@nZS!MkC4?7oQq$Tr zGr6dAEd>0!QFLk6WIoCbVbM^!(y)?HIDGw0QeucPxwN{%YP#c6u3NDrbN+Lfg58YL z4FAwC?vwLTXHr=NYZh)-w7(@i!E-!mPFG1}Q3T0?L{0Tlij=VdTMXh`1VR={a&U2I zS!RyBTT4tl|ITX?C15Ypmi-~-!;cAx8cpG@;(i9jZ_i4Y% zO{csMo-fD9>CW^_`TM1O$0JUnxx+d~|MT6*)MYiQ;eWVVRk)mxeL&p+Dw&3TYi%xO zwMTh#pp|W2E14@D17oFwj+@r*5A&`MMvZf|lSE>ND=Rnzn1-$zdM-zh3I}rtD}~Ge zAi1k59Rn|A0yTDGv91E9Jl72Qb6B~d7Lrct_}d~t36sNv=^?wcya35gUIj_kro1K7 zm%v48TSoGb#LSncE&3tfRz!VlDQ`h9<`ac{$#sLOUOKc?3vipDA4eGF(@5%J zyUVW{bo53x>sRwsAjxi zx8OksBGtrqaNaG@=O7y_X3dXSo6lq>&U7ZmF&JW-dm~|yj2({J*pW$8jvTKp!67<4 zZtzBubWiUq+9A(RLS5V`ipm+EmaMk1wkho1!7zkFPB__QaN{fsc;$GxD^`p&S{tyKcfh zC(xDIF8gKf<#924g&8S<6{-9S8==&w zp;tD?qqbmW`lEkCMS-&DH+%DT$#T|o#JH%5agV$^+7<(8>lXy%xdg?yuz-w&ylPni zQlB|j;v251?-tm{LQ^T|%WCUG^#L4pX=lKek)z{#IS|B_(II(mgekiCFeR4Hr8^m( znjT)uG-~9Tk*rt*^iuz9juUlF*BywpSltlF9PF8O|F=VZDVh+oYha7_JyPv}ge#LY zfql?rGY{Y8qEa%riT%I4bhf43k;LOEhEE(`S1pA0wqT;SFnTCe8 zVbbB`%)})B7)2^@y&7=hhvxzwRVPo9%PJzAzsPKUOY`a1A;&U% zsnLvD;?AP?-TJ8L1e=XGoQs=HM-7YVJ=oCYry%8X@$%4ew2{w0w_=t}ob&mXSQ9O0Yd2}?yNw&gw39_=|4*s&FxJMnAcbv>!=fqiu04xvkA z;~FGXO?#YdNxT)F7nL9%S|k=q#!6H~6f@S$1^fK9(e)(D!jp`D_y9Of;oFpFDseWc z@$wXDA$WxkY6>P}o!p+;Wz>_?v1H(uRk9Gj4OwBRtWLX#HILl|b=t}x>uc9=0x;}J z5lj{UUBlQpM8PIt3|q>+nCLg0pPMV#PZW{~Le4B5-hiOflCK z`0TT0ihV;Fs`6s`qtTvU`+(!pl@ec#{(D8a;Ke-+gu>O$NfZMdUT3l4P)(j_ zW>6Hfh1e|}!?`<-YF84)e9{mXF`bE)f{}{?H=X9B{bpZ?6K^vgfw~JKL+3T>Q3qo7 zUw_hl9>S{dKfhYaOfceAR%_&+FB_gC#5h@bM{6$@cpb8FC3N}bgC9ay z#j`Y^o;oFI^?XRI&>Z722!aiiY!70m)tFRVuEYB4|5Os(>aMxr)*ITR24Mun-I=RQ`4#~6*C+M@4*#F=d7O}lm2-Tsb zDP4+sZ)F8s?);=)_qbdDebV6yOcNs;tZ?PVmv?U7y?yKYih5W^_eMUA`q|LEfpTbS(aob{&Tj4m7MQE8QfB70nGvbRT?n)|w9VNz$2RgGUb zedPP<_0-M0&iRzVChbT~}Cl zEbJVga9!c)8+ohth$8_yfeNFfGD81HEe%Iyobt{F~u5vDaw%NR_R zOGS62`ye_R;H$Di)H`BHvSsqXX!LulJSwjfJu*ppL&hxU)t(#-)^OWfTIzplrO_IL zh3AjWC$Cz3!QZ)SK&lZrjfZ-*V!(qO-^y#?KNBm~ra%yWK)_?UxC^t9P)jtS1S4r~ zA-A#-VmkZGq*&Y5x7W`|m}t}VBHgLiCi0Cr;Z{U&@}|MNflbpRgg!6{O@t^5y^ zeh>plugi6FT$}?0URIi|uqe3oukPfdRR3O0|Lw8YM#%6|)_70VfXX^?zcVutwRC2)Ft8<1xi7Yq?P8PZcy&jmm|`N{e5D!o{qVSbduA@kq)y+ zzgk{3F<0}KPfO8YSy{yAxA?XGZnXL0)AvWe{J06%L+4&xZ-3F96e4XS*>29(_d5US z&I{7?EoIJ(2$%^84moP@iVl~l#k^y8xOinRqt#_omAAKADlkn62Qp4G))4l51r`e` zqB~Vwn?N{Z#BdkQMOWTLikFuXtf9%U#jf^i474ZE#AerSrK#_b_0$sIp^6d>DzPxO zsi1H}1F_iYC8_;O!%TPlxtm=da8k6qjY7bRCGrHtOowXac3|^xfbxKQXuMNGj8cX( z`zowVcc{zVBm4rS!f`T`TgYRYJAE^S*pvu0!mADXl<`<2=yAdg-C%L~+%8j5?i(FH zbz_sxook=RO)4y&hb*&g&cw(s(}q5)~Q@j7-nW0#!P5`?y``aDtsy~SFqWBk_1s-rJ-9gDoC2<*(El=IvMh}NGz!~ z-WDg{Gz(GAM$BJAY0db&hAW4NmqW0~7rScYTWeX@^(((nqT>+F0Ot6^gA{ z>GHgg^vh`Fo39#JX6M_e?&-@?H&EZVk5A;3;@%^mv5$W+Uxby`g`ysLGDchQ5ur8zB_&xLA9aY#X(skVI1JaLf|;J*5lL^jCVO|j zy1%Cd@SuJ=H<}!msgMsFyQdF73-kp5ctLk7f-xHLg#gf&dpL~~Fm^g+>7(t^%16s@ zYFQnPbNEIOiBJmsHgBugcowwd&`49#ke|OUgLH^ule8J>!l~?07jkGl*m|62yuv{) z+ti9$>QX+uL+6DB5c84oOLbM)>N80KA7p6roTp}L6~}|7bHm}Z?MK<#p21MuHq3Ru zh!F!N{CwkAI^}@s3!Nqhom)-K{zS`xJ_{1nv;NtxUj69o00ov@NdWW$HyvFuB@a8H z{pF<}E5;@}N5T|*u|1B-Z8CU2n5gj5M15A?1l8qM0R=ogsk7?2j4hil-N*RsPe&GZ zgg~(l=_8C3jS2!JI#JRpVID3o)!neI_a5lw;i z9%7t{VFEjZ-Db%!BiRONq5HtsZ+YI1oGm6uw7H;?o0RMRgipcYDy9w&wK?C2)A77( zh3T3ISB}xMnVZ3*ZY~$N8ZM+*X48Qvc=+W?n%2BpH=hs4dcjfgSInp@5Z3zU|NnnV z6$@TA(E%*EU&8;AS$%3A7rsV~mI^8HPH}ja{l>pb+%ZX0oZgJmQcZ48bap^WjdW`w zy`oP_9&HP^uW_7>;cu>*4T7)NZoI18gdJ0I68`&gX$y(Ni9N~Ox*9-gCY6k>vZ%LF zdbqmIn+XPPt=NEjuHils!-`8-ei&(13kN3C-{t6QrBe1AEAF3y7~GFOgq3<&gPhjj z=~nyGa+*3qrG*+%TM^=nB1l9A__YgP`Flw(%4Q)h>YC`u?gk%Vi>Vu_Kk52yKH(Bw zS%f5HsxdA~BCT8S3g_E)C%D))>JzGHgWQk5hw=BP_{*QpE>Q9IsexiH0)E5z!Q^QF z?Df1)fZ$XK%3DD^0b<6)M)h@v+r;+v`2Icm5nK}A_y(I&YhvbGLIbajZtKP#DVJ^t z5l(4ps2eReKU#y;m{p*MM#GGx&yVf00=jGLc{i};dwV@(wOa&T3;<-1oN_huF8Vao zX*IktUa8Snae^0{K)%_X?&CJ*C@Ad)d2W6s?ex(;XSKQ^j%M+mla#HP#IhX$p+`}f zMm2kp_4M>(C{{YMCMJfnNj3;p)l42K z+{2OHjG_ZQpqq)KIj%Jcr|=~f&9Dfmoh zApUohmt2`5b$#tdmOK9v$Z4nP{fj}`ZK%hGo+c+1ja4FSid2Tli*kZzU6H6j9vj^=eyRW-bi!Z>Rhq`Sy9r{!rV z_KH!uyUD~G(L^N3uU_q+W9NMJYN-V8W4t5U{$P5teasiBgKIq$-mY&Yu8rP~eNb40 z&7S5hR!H`R+oz=(@Nf&Lyqe|-p#g-(x*^mAFxTzJ%>)Q4Y+)Yx$sx*m6Kb`UIg0ah zOkPZSrK1kE7_-1?x15@}c(m+|+7PXl*qW?SQx_Rpb}<*)2uF6AElPa{(43@ct51Wz zM=hefgf*CH|9mX851o$7$OVZ;9#j54$!CPxk*mqH%*rb5>m_)m_QGY^xc8#Pu*P6_ zgO$)bcU@PLuC*t!w#p>KdB{xlKDXy?Bg33B>q@(()st?!8cbQOb^8yv5?J}g-pzHw z)Z91AO6@WYAAle+OzdVo?FKgE-EcI9S~W1wOG>XkPS%YOZ&saQkgIv>w_dF8y|H%i z1e4ORTLcX<)Q&rk34z*8t}wzu%xcF=iTxUPqc9e117rVn)AP?5Ytu$O7lYU`?jgv_ zk62!fZbh0EBd3lJ{NdO{P{ikbzrnGPgU;ASsZ0 zZl?Q3=t{e=Atja?s-*60^^dUvxq*J^y1Y!xON#*M&eWX!;2f2ELHA0(n%%noREWEK zY5mH}=n3@2lqm%`zkXTy^nC%T*tWZB*@^GXxw=)OTHCtemL$%x0uS)4?ioLVqa>y|Bh^_4e7~ z`rc@hSOr~8FX2cYBgjUIR^ToXB%}RvOU3CpLK34)h6`&1ppOhSp$*^&5JqZ1U6hG z6$MhNb^Jph*&S!Pkz7XIWIA>6tB~K#+o*N)#~UyGq2<*aWtSoSW-FQ?z=``mTR%!!R zoq8ZsIdW8GD2IL>IgU?o!#bW|3;nl7Aw9$Y{lEVovOZMI+^0RMoAcCFw!ft!Bwi1%+c7sj{Q=sY50L zFjnEeX`-WbPpMVNXmBcnoaSdVh5{`O#6O2o*=oU3751#zC1w;FwN(p`lX#f38Tjdw z-&~5{vS+=#^h|=DMkZ4?c}!rHw*GM0j9@1ONO@Xj67cN_8t{M&v6T6I!`GA_tD{!g zngm@;(Sp@oPgIV@2q8I|JLjz*64zN6Lwy>wsgYMA)@ow>mR9WQyz$kQI*XRipZ1rp z=FLB)*@xi5_Kk~$KVLYo<-_eGvRT_4wG7hNJF+J_Uw9smSa%E2_v`yz_+QluEE1^WAa&R$RVGGAqTNcQgXSShj22$*N1)|*f z5Wu2VVICKwvcF#iZ8eiya1^9enl_Tj{82G;Fq2h8CDwc#G6_(S+=Rn8GS@MyT4rK- zcL!(p7g{2}g2R@~gcUC}nBBRib|dKsORL8UscY%O;{5B|q`h=8wv$C_WILdC^H8EY z`B7oe*2u+#9{a7^fKg{6Ms)_-im!plr!)%&v{9eUYQI1G7#gU|AopuM2&@JyZ zHReFy&xkWe&-&gEX%sE^)4ZXeAZlNZ^C$0$F(wo&)ihn<@GJq*rN`epWLq-6hMXsK z%=MIN>(V3flIHVMLDLhUg1+W9_-+!%GYb!^kBR-AS)SBoXD)OjCN9-XHJ{xL9H%*y(+#zx|`|I&s>h@ z8lvb%KzMET@q^=Sn`?hzo2ac`a%dQD9C^Mj-PSAsg3lRCP!|Q!HM{vJhV0D?B>jtC z^0DbGUrOSdW2)CQ`CR$lXRblHd>J5D^$5O&E1yfrFv`nh@=M?*yH(*Bofx4;?fk89 zPpD_kR-KulZU7Yznic#aMS7!gQS*687GcSGODm>1cT0cAfmQ}js2rli_4VLEOhkxTigXphDvA++j z?!D>T$0*fFJS#n}mYCChL1qeTt|o`3k0x&{1+u@W>|^T9Uvin7Wh$AoUa5$s*Kmrg zYA|FtB@~^L!Q?$Swv&jZ=JB!Vuv1@qu3cv1Pk->G%_XCG!?9&w``Jv=*6{Yw!V7PCwCcS$!ZPR zeCB{g!M3~S9%oHb?g^~Ye>8L6HIM_!H#v;XY|+fv*6#gT@)CV$Xi=No;W3eSeAw*L zhFN-fwj~Aom8hV5>ads(gpc)XG8p|Gh1-prw{G9T4@8?XnBntfohYli zn>mC{u!C|2k+y7$uj2;SZXd8cAoJX?bDBcTuYm~lphmHCN_rj^3CyEw)$~`XF58?Q z?r)9=8}S@{QZ3nqdnN=3Gq&&I@{Gp+U5Vh~eavm*DVT1KFCKG9`PhLIZ=78eiC_Cp z=y=L1u4Upz^_E@dRM!PF7E_XQUCzlv3*?ht*QLLp=%FJ|w$#mI_U&6n4i||v*H;$k z@4ezp$49UUxmI%`h(mZ^K&Z!53e|&>H6!bm)%ihakOfNN98|^JauzF|_HnB`+ltvO z>>;<`0&9Du4V2H7a=Gz?jm>ch12$V*$TA%LRqNGinPVe*F}zi^yiQ9dnyh8VhQB%G zHBb)%nM4%r^}s6xYqA2q?v`(FQ+wRHxXdQvDw2Qdz;OB6%KTOb3IRGBty+Gr5r=>o z8)zD*X%4e=u}b6W{rY^{5^_zB-W`*I%TsBroZvOEa`Wb0N0sOqRsu0E&ggxJ)T8y# zEy8L@WjGM;;XaNmg>%tn^%QhlHXy)lk*D*7q-3RgG{*SuP$wX>AeW3s94L1!iGh)N zB}O=Gy%xXrw{|7MDpB5qgYIr9kMU9&?Dp~QyDNk>%(Zt(`3L1HrTk>}wHEz;=NkNM zUpKS2eRt>rDT`ziAzxC9#67W-Bpl-=`LGlzOSCA(03}R76edx6_-}EILYhUJT)ya> z>FVWr^Q|U~W5j~qyMc|YJw+{Q-(6ykQGR6BiY~rg(CJ@a+!QdX{A_FA^e6I4s;BKz z-)$}#Z&|igs|oEA-kL>#?6Y3m{A>+_Qjw(n4)RlDR=^i_l<%5a&xph)mgy!}61P1?sYGdqmGRl>{-1S@uaFys3wqnq-djKQZ7pck~Lk@>%iLFfZq7?LW_;5N$BR{=B!3}WO>lOCfx{=my# zQ-zdavZL_kP3cD5A0qCtReUH!C_{n;|!~z&^&%>w~jVXiuAkuKE z`yfz`HITMku}p_~0YrB`0MY2P(U;c~g_ezP9*2R7>*G6k>nuP>H>bY_y1VnxeOXQE zKL}4pkl=Q?Cd!YT&d=w;>#c%+Ci*&X8#?#^=pEvJ&0_jueq=S`hu2cj!SV+Qp&LnJ z-MQreFX)qP!>r&s&tyX7e=3kMbI#-?fn#Q^>fXR24 zMFrTb765HuF6f%?3xKvS7uUQHXzDxA9irR4SG#;Ue04i^rBDrJ<_XS8y?t9dYYLHx z^WJXOm)1&G$!%*^0P#5$70=*KN%MieB!+QhmV2rV!j)JdHWZ=`Xe48fAtXwgs1`a; z2PFza`*SY*<~(2ul{9p@djTuN+&(!>gh}k|_;_@)BuS3Pj1^p-SR{cc7$EGm~y`^i#OBTb+R4ftShs@+K8?h=?u-m3bJDWe`Vw06yf)N)>)vn3fu zq`*-oY0lG0)g2h~E#hPOleu3t0XLssgU=J9(vGvE@%v1PB)a-y<{-uv#4fdy7p|zjZ zW{pw1g`s-UTJ#srgS*4^`M@KNu$`~B`IhTqzJmj;{-f!Pka87a*?E4Is^4GjB4+$3 z8qn_QYEN^G`WDNb^3^J#(jl=JamP~P*J|dqhy#Y^vdUXEX4hBWmmts_I)U1aeBrXN z84mqu*Kn8Z%)J`s@1UC)TRr-eGjEv!nAO*Cth zUoxOtfkfJZTSsZstSM@|6dky4v`;Ckkx@k^YW0(jztX|uU*SX)bHoZ+z5m1N+M~4x z>H>~(_3Cu*Dp^ajvcxWP|HZSyGqEIpvF(H!>k+I?HhdH@Fdfyk<=aL;cy0F~AjyY9 z6|wsZDphcR0toZ`>_D@gkcY_=^4u;nZC8>wrUuI8UGw*G79WQ)L9SHTCk)^ut}jiF zJ~yw{s_dQH#dhC2L#g(cL1-@=!B=Sr9##>a+wgK0HB@{?EQq@&@uxd=9 z@B!HI*7osf=jCM@CbdWjLrn|%M=jNs3uF)VQmuL_ zE4GX%_7|Zl7sx_7a4*!(3cj#leSvF*-=_Qp6SxRvs^8(tX7`_jqI$p3EXOFQMxh;8zmtDG$0y-pX< z*VU_#2A>6DM3i;|qKB5~(x8W@mtQ#&;Fo8$&sef^5ny>xB=Gega(PV=n88lR+HoB74aYi31s?;O1 zYZP}lVZ}>)gFu+rAT`1isRaIA}a6S?aHML4RISjSwu?V}+iUXhW{Rb+4+zZ5fLTFB#62>tnZ^H@qL& zeft&N)wrtCLyD%{M^aCIzU>w6=8t=C%GzoQbxJsgsczM(%$nsehgFsLNW`XDn6Z}e z!fpvd&Y8N`{k&$3R_AYQQf#<+LmmPKX;NCOgQBzZSrx%qP9!}*khkUnIen~ZmhgOO zV10$cSn#SLgn*OB8E&yU)4@e>M24W`hZ{b)s@6qgsw2ztX7-efy2|r z^VQY0jg8*wf`zT3EA)_7jiO7jXARY}<1Lq=(s^-OcgzRply|DZPYJK1b5_1oa`yp% z^YeF>2Sr;>SCw^r|KQ+hv>GLfknMdlkVliPpS6eE?4BwrjU3<>y-WY@hv!#p9}*iu z0y4(^Q##6cBc;o3Y&8PPiBKxpxZ1Lw)gH5+Ph+WGQk-c7z*$~xxp-45;(l-6?ct%E zXnaH$^p`Z!1UUqi%x#GyZEO|U^<#h38@pq6Y7h0JMqRZq*Z%z0G4o|H*|kNMxB0%W z8&z+Q@{Rp%=<`)m>Ud{C7#q(}Oh$Y+Sw3#V}E?#`{==)#?Q`cXT#8tv@~T8rH-ssg#l z@=H@elbz!$h)If?XY$=}I(mv~{b*!`U!9$w9=Z0=Z1T>|OsTX_swkIlO`ivI5*$*e z8C?av^SZ2(e~_p|$K6nCj%5tbrbk?$FrVhAIaq!yma1sXfL?ek;OZf?2ZNOh-V=QS zj^Fx|GIc6EI(@3oNT=0bV(D?j*TI4KKt(@!{b)s+)^5sBz~hHQc0MbgDH^oj(S)}= zT9O>k1`?9IZ6iC!=LebFZ-V|BDS|U!CEoejjH_n2@c4+E0;ao4{@{4E*|wh?RJ;>F z#{WA&FxLS!O_s*=C3{)tk{@zJK%`7qdQf(^h4B1KCf= z;iDc^`Z({5wl|u(cm>u>m!dq{`q^!+=%nSplot{gLiNh?IT?)}95VhJgb-vPGS&A1 z^+*|*5y)bg>!s$S;YhA~uH`7Cnd5SvcM8$@q%H9@hDw83>6ixW}9nSKB6f~ zUC<7Il6Pow#6r;JE!Wg2ivbC)-lc-pMU913NWdGR=J0R0H`T9Mlj+}K51y6R{(nIDtDg5y%U4AfYQPKT0@gxc2hHBrZWgQ9g((quYf-FC7QA@7Z#9)-%aE?+eMh;r;A@4} zHi4F>@4l5ke>aX8KMwxp;e2$qtUy_=C;-WY#ml3<&$Z{8kCv*oIozTVT8a;nBr5e< z7Vo!Pc1e(fM)Ry@^1D>gLbZHqbT#DtNCNJ?k7KgZ>1|JM@D>TxC86o8ASxt z>i$|Z>=jFkoxJ8#J%^A%d}|qHM5G~DO7Q(-JF1&lVJdp*VQjWW3cnyK3$-5!SrvMD z$OZLDTQnvoEvleQf(`Faa3Pa3^X5bB8xN4^Hr?T|QwtaLYI3CnvPo{xVbc^|5Hu~v z5Ls?ju;C5WVR3HkzQEJE^r7Z!v#r6is2>B(uaipwPW;pkw!QtXf2b3=FnGfXv|28aMhu7sS|{|xE{hOs-b8r(jI};DWQE+F@`Ntk=b ztfFDJ-_O_ekediEX$+uZH1p->Ud_j3_$jYpSRvl^-U-!7dg^U~5QuyqcPkgEv52xh zu`nuW%j&jr!%?eo`q59iNY8_xI3K_W`a^7J%Z16GgCF#ZzMzSYBdBrFt=)D&)?E9$ zWOZv-I~9wQ7!q@t%Z?zr(-cy*W$)-AiB*c&4JqJf2?1$+lDUN=5{C`$TR1yY7G+DN zY@OFwv5vc=)IncET#!>~BCL`0oE+hV*29p7lM5j(7F+@`*Zg)y^aS-(sBqa{>|r3) z!bR=1ja5yRpVe%GsYk3B9luCtw{tlUJAs48gq?Mw~s5!|4IxPbUy!rm72 zm}4>?Vd=AhE8>;J(U)pCvoMH5ABj#8k6myk1R5W$zIT%PfxKb!V4^gGp)!~uRqfv! zZQQ!Tjff`%>X&vx#8^P%iX-NblUz$V%Pd`; z0xi_Heijy_1#2cXpXC=qaOJb+!S52F zaj^}X_kbG3&Ft=!52)T;;Qhcgr{Tb7u}4lcIW)j5RC zH3;O^9F?B3BW<4|Q-)H&rW1I~9Rdc|U9B}lA4Z@HNMkVu z`LUg6(l(qk=%}g)P7D6C&xG4D7B=1*;(~KA#mG0@YpBq1yJbm?T3tGC^xMSE7&4h+P#su{)A)|b|b6L=7arbPcrHJy4O ziNR_*{j_c8wt}k^>v>_Yoy5b?j&JpHq6}yJslE1 zTOqPSQM@$*qSf~yn`BtD)|R)Y#t5G!bCJP;L+JF#45f)mZ_>x!PVEN%y{peWY}&tL zBd$@}iSF%u*dU(}>OS3OQ_4~n!*j=boeNtG{A#U07g?!c$i(fPLbv09zvYFe6~7^l9_MGo-3 zQ>ui<(S2syu|{KxYaM(|LtRm+S{^<&tK%##+EB?fxtTG%F(kF$OH%8PDid2#(|Ff& zZ!!2hY{T58fI&52u#mD2No2G1OHPe>2Q4}MQLJm)sDnn3GNB19C|GyWP*l+dvul?_ z{5SIA;^HD}!|bQ&3EfYdr4MLAQaB3IRT4oVGxuB+6Wl+BOTIa(xF8M|9VZjQ^)HCn zA2cJKaOCgmSt;G1Pt;u&SGiP7-Yk<{rSca8CtAH>5Or;z)2}~RuHcyMCEKqW?dvH7 zCW!grcw~3pn#tzP!&8lh!BjmgBDDeMx~f)#Nt4H1B@_!nU=mPZYV_>6 zQA&ER%~5y=+JyxQ+Pd*JLc9Rz3hvO>t)lSxKUYf!8ToL4SS)#MBeQ62&l` zCl!!wX(<(qWI$(7Qx|>|I zNY9Xk5$fuGO3{vR<^q%wDf8ma5SBh`nb~{?W#$A@4U6M(VSW3&uyTjyg$wQtc$m4=PgjzBtoHMB!qxId`3iun(9zTk7gXksz<1w(7B%nw?6Q(hDc zObzX8qD zf+T9mi_9wCw9360+GAw8ua;@k_{&Qii*(*Sri@cD8Z?qqCt`YPd zL4LAy6CsuR5ro|!O0t<%PhX90U2pOPcvti82}awtyH^g@0egRAZPtPdL>Z{n;IOQh zD3ixHV;9d&P;Aae1M-HJo68*4((h)WoAz#6`_QJ#V)mZ4|0IaY$)m7eo2i(dS09P2 zB*F$e|1hWM=r5&^wx*9NT9%HpOIl%ITFv)43>b8U#d2(uFUpaE z#$?)eoW|Lu*n}j+w(cf%H%x-6KYp_I!`g#^J7v<{HQ9;7BT8#ox&DTuAby>)-&mteFKUD8K#1R%ToGJDS45;f zk5p8O_+-*jQPFDnL&`6`&mF0{B%+J5(e@jhIUP&REg^H~SdyzQJ1;!Ss3vOF*^kv} z&Vyk!6yvp%k(1E(WHFzfP&x-R2uhyt6C~K!uYzf=eg)iuHSo_0r~iMOkotVpmI?W( zImFnxh1F1S|67S^?dj9UPX~#@de2$w^*UJLzl4emia8qiHQ>xu{$EEx+OnoQqr4$9 z*NN}c==t8pzh(VhzODbf(|`1s|G3M!?1Hh|th{*p?#GobOJ0d%SlTJ{AjV*4FzJpg zrWUL0?(rcmtK9N+7n4XY<=xK|B=wn@yJSuwy&nEVOQ)lM9bJEm?*irDeo^KT~)BSV&f5d^UHM8E*TErS?X)I_XtiNL1%E=ETYj3v>;b|md zj2A*=0X+r9!*}^=&CSQ_3SE8=^lu+ZRPz-67TX!k+&2#evSc3~v~7PSQAEKQfdBQ& zODoP>nSkjokB9G;bG*x8=UtwX@ny6l1X3WszP$9!S1W4jn+ns3ML=^0RtAXJSE7dU zyD)^AAUaT-NileuV~~`rTR(H>n}RdIRSrIH5Po=k8h8K;9W_RKL6h|T2b2QZJ2(3c zqz!w0chja^n^OS?=>?yz$y=_BGCPN)nP|Fii56-)gK4a@erGRsuvZ^2MHjc?o-(Zj z5-k?&7`=J0)*ZqmFk)$HwWfK zfe9Q{tJWy;;fWCbLVK7E`Lg$W;?x{1ILfEse`y z?sX)FS4kSt-}{cf==R2!m$2U?>L3)w(ad3GT(}A1-Zm7gG+7=l0vC|QheMu3K-h#| zUm@~}d#_64ueT({Q&}eOML5HRa9OzbB9BckP$RZRyN4&&o%p=|2}_oeYjU6k+%*@&^HM^^%F_S%&(W2H zbLmqaR>rz00T{-{pXEW)u_Lc(dKV;Tzd18&&-`(6&`(Pb08m@gciTeYMNUN7No>G+ ztbPV{A%Oc0L|*!rE4CBs!JHxzo!w-ksmzz(z9Xf+2F4U}UJ}1G;`p_7!Si9M42YVm z0I!`clVawks!UU2P?MFvYwZo(l&B|}?W(14e#9ot;vnx9l0~e6lBR(-+UT6O%y8M9 z?jgkmB_vIW0v^QO7W4byQi5{D991loy{r%++NZ#0T`nNmR97+4I;6^}YYz}W%y|5n zpY)jU!cp1?q}ln&3Hj>4Cb#^EmoS$7vaQ=qXy!I%`ih-nZh73{md8$n+Bn9$(fN;D z8!ZQh?t9b>$^ZC1@f2rBZ-13a>)nK3-<}@7;lpTl#D(Ut=4&*dj7Zkz=vy2|-k3j& zoE6-Evs}z^6^_Pr9hS`f;N8_x0*^Rz|H-<;xpTTTdu`I4X#xD=6Lb9v;j9xs6VB7g z{`mnZEAZF_*LK|rzH>8TI!9akit**X5HdmRZ{cb;E`usUBe|N^Q3ZJhShG{3KajCV zdqBVrFUIxY>h5s|v^JH5+TbOmCGkrVsETnLQYX8CI18m0VM6TBXyb5eXLRiQz#D7< zAa``~T0&f0-J+RLG}#u{OtEQAh@M~}gqxgpO?YVMLMw^Zh~e_lWs$W&WM=5i+8AHu ze6fS7<#_h`KmQ!vJyCa8##f`mmoHat++3NWewI{aLtA|f<3{LrhrPrJVqeUlJhO69 z5JnIq-Ei6jkqdULovjnC-6&3}NM0g%wPbzyI#$Luvb3;N@19z$Qn9^MUml5$do>7@ z-R{4882YL5et0JoG=(h)yiee&wsoi@9RiNJJ=B*}@L|eriG7yZ@ZbK>>jWC@=IXd8 z=-oa**Co=gD5?q8uX-^et9&R5*CZ1Py8;otCcG=2N^^<0g?Sa1U!09BtNaKF83P*w z_kWOVbA&U>@=q0fq|vEhtCV2_pvQJpZG5pTlE{L>JWfB?8;eGQqO+^os+;lvEP?D| zteiz)HAvEAS`C*72AD-XbsF!5)8_~QQR!pqFRC%tJindn3mR_s-L@cT^bMknS9XWz zPvhpsW&y^Rz<^IFOP?vnOZV<=aTjg?$lyDbCiw5b5@K(WSxo8!Q3Mq;9?$JXBQ8%| zg9qwjrU%~pj6Bz{tkK3}_NEz*z@vY;`^BB>H$T5?qMOP(XH`o^i)vXygbduSssMHv z_qJbQ{d9fIWpz{CL3522_2PzERRWyZL_rw}En*WAdp^{8K$N zt&)u~d%5Sml;?lbvn6nhPT!mo&}6-tOS0i+^nu@9~q&b93LZjqz!DS-q7dG~M!8f(m>tbv~8#=l5zhiA2IBu7hBsHMc89AN&4cQ0UR6@a* z(5d7CdANyMIE#p-O5N?H)+v;y5`8IIrd3-XtQnIRn<`^VG2Il>_-z;6+TK|vsQT6Z z>*;9un-Px>CVPK)JxyRz)gfr0pX{EWMXR{-;^oWbS3fSjeEH@IN<}=#z) zty7SG;|i+2=O>5_?s{KfaPeB=M#{*Z;LGW?+Qpj<42U{Skr$2G7j1H~pg`F)o0{d| zVRS}G{2d6;{qEWKkEr8K*{7ItmDnNC{q7G?k1SYxEc5#eq0Xd`o@Rx2N3$usggcqI zk`tXEVUnCHH0@%;$bj0#3U7?l!Mazf#};3>*&?gOIJHH@N7K9ZzZaS<`PVF={^~Iv zDwEmH>GT9VMfh@xy}QRNo}KdG`1r)MWs$71>nSHmE*-EiA*I`jJ`B@5RIv%!1{5ey z$)mS{bjQeM_9tWjk?c^-f8fQYQ7{#KRcNS#wmL7Ig2;|&`l_m68h)bofsT(DeYgNc z9LIa-dR==H_f@vxwdiSUEK*u+ri07Nmz$ry*EoOSS89!rw#|WmJbI%0G|Wp)FE}`@ zZfvmAc{q=BvP6j;Kz1V|^nh<1xhe`nEYlMO3auAP?IuCThHed_Xc(9Vn0_c!%3M%T zi^EizY)!^-3**kxG+nedjdPLhEU8nzCYvCC@!p1xBUR~+;qUf+Vr02MA?cgg@}&Zr)B%q%i~kU{~e$*FDHKv zCzHJ`)M4D&h~Y=EfM!Y>{p}nm>0~zAi~}GHdT)Aq=s_NUkk@_i(>LSFB|y#s@*vLRamEx^CjN zB0>27BR2}1NUAF%g)vUgh&XusA0p1CX(qFIE>gYD640$G4zvlG$KpNy}5x}r-=yJn3Gsk-@3T3y(215KIauE^J2aqfnkVh}bkoPU&J zDfC@O4m7?fH?U+JwI;>bp$4Rl&H0L6jYbHIRh(w?rMRbpo9-VXK;02u6|v#)?Vn{&|OJ=MdUwg z0{fCJ4>Bw0-n*5n9W^B^YP_9!FkPBoH2J@B1n=wKlCW$}OHUu&qMC}$W>C)KAa?(J zUmSGww?8Tv`6c??BD?u3JKi)`rl2B=;`Ys>X$@?zG2S~WrlN**hV{CDA26BRpu8VT zoorLelu2)N?y8ajtR=iWBFeS#*q|9*a&lY3%7{)LX~cR?6&1tsdrfpN4AJJgorMOf z&wiT;19^D~E`A;bX#632m3EAQ%bdo+_^9Njh1;B!7~;7hU- znF86Sn8KZ(WB}dcIuEHPL{dn za(Q~Jla`jU>Gvg^yg5GoNg__}ht;j~Eb+-%bt;{;N2n zm`L$}+(@{Fz)hr1vm0w?#D~saOEc_2mCj(8VbKsRKpJ*$I|n}!;ACkrq0$CtSw9xq zXygrv_8uWx_XC@7Yw1f2ICqUHCiQY9JePgmMRNL?oc0)Sp2=UMEI0Gr|1Bf8lfRAl zPchmJA8ftxb4z0^XBD5mfeLhS;}MIITLimnmhJ27_G`HZ+BfAG@db(oFX4NxRJ7d< z$~1ffk}EI$E>(5s*HWu{Zh_@R)Z!?!s^E_1wri?$?Q*#u)vq~6({|l=Wi|5N^0#ov zp(V=F%(^C1>d+-_^`$WXoxVJvr!U@E@*llB!&?ZF>WYA5!t=%PE zsAMvz%FK*W8Q)@ifdkl~f7X?-{V-b_wL_M zCRhca=N{93^XAQ%lLh&4cK*I1<~dtgdpq5G3YxG4pN{_qH>Q>t5G)=~FYrA^4ZMHn z^YPx!O=I(VTt-kieYbq``rWZuJStQ9)ZqbG+HwNaK9Bvsa$8KoG*RO}*8cix?ti=bVC~@_zFYtI|9JHM509Vx@#)61=YRV1U;g^vQP6VSL|gl}pAHU>j!*vQ z>Fn(M=QnTP{r&olo40P?x%>GSUw*cNUtf}uC^7)xrU68aySF_FMp+%2K=jSZWh0>? zss@95eR_kp#YMncEuU^K{&Z`;ExKRS7M~Wi#V55j1OcCJ&v!HBRfg6EOR?<0iE}un z56TXWFG$2D1|s%hUj)bS7lASGC5B~##$r%Qgf)P~e;wVrGWzN(MHv34f_qMH zjwpTG*Ms_wfm-pK6u)uD%HPcLw^Y9Jkd4vP(k)8gy;b@Z|C!Ey*!sbGsZSZDlc;<5 zcBxby^h@1ab9II8x>DjT$tRyjNl>44Z)#f4(;;xc$3I*MBz(9K`2BF93gI>_?1`ER z`_rRY!)Y2x{6CN0UJ)hd*72l{{-h8sr(d>+K!K%E?Ub*VsbVYpe<5DLl(hYC0t$k zWpiK}e^u|vuQY5`G&OmSTWalmx6}t%H8`G{l-JZk>CQ&2ibLZro#epP&X${q=~oBd z%Fx?%kTn8TQE31J!*JI_WiWI$#P0KEHZ7)L>~D#R%+cqf%f?td)>M9f@wVghS{*_g zwmeg1+`I#`{Z}lUyt)yuZr-VvLs<|Mi6u~0FA;3z4z^eqfrzkRw2S#;XCVioX)q#| z#13xeNVaHtE?C-~=1=HTlLV?KHI)@xy2%Mu!E|AGLN;WH2vjTq;vnuC8(UyRr4P3h zvaK?HpBTrBrh&RFJ`_#a#RbiB{j_aTTul+d8`2c4Vj^>qaLBg=q0Uw*!%%>_{MNa0oYl1`yeO-;-)+#TYMO(JHI)RSE~ulES9n_RXrFa8Hrs6g?TFF!Md{?|m% z#dK@Ax)7!EuP zB%I@yFOU8tyV^iu4YN1I%b#7oHoClW`I>B;m%qMD?KMv(Z0b=N~7&vO(OYks3sBqH&oNf=hs$? z1ICh#k)xj<etuNsogMvdcB7}fhGFG(`16yc#bi>tJJe|xJ~^Mg zwi9SqUF2%5%0>4sy}a*Ob6utCv0-QG!%Qs~)GabWB_#zuVze=c<{U-K|4R>Cj5Zl5 zBa~qL)K6LnIK3EC>;h~{rg=L$bH%wSibnq7{y9#2r`!oTosbgo$pnwoDZx&9lCDWl z@SpudVj!hIQWBl3qmA>!L((*JRp}`iS(nqj_{}M~0q{+b8t=j5?^mVmJ34!084#`B z^ApY@lihoxo7Zpfe>bn&+efI<5%BMgzF&W4FVKN2@ZjF)#`vaQc-^Ouu(s2AsJH$` zT&DYijgQ`t2vyLnG+km!_*KQ}e)-Y*>e>$*YpR)+h~MLafN!Is31HE2@uex+e!s^} zb8&S-{Yh*%5blGA=1VzwG>{1VD5zIul^0q?xSXgnjh_*3z|zedNWGk#O{qUl=Nlse zeL6iRg@&o~%eU|`C`FXW-AnLmja%~09?9_?Z$6w=&1ToU#0TGQqOt1)>`N%vtUJOa zE@;blvZ3ZsuVSF=H%F++Ma=~$O4e+nk>Dvhr%s2~bfR;~#r+Jzgl{=bq)VK@laKaE zFD26}IAkYivS=v_m3(2&ECbbhsKEZYv~67%uCUbfpmjy7ztiM^Hk!Wj0wnynq>+85 zl%9AspqvJ1=3euhTunUf6C(gXBJRv6!SsF=dkb+Nd$7D~oPwf%{G3W##_U|FJi?xS zirs@a$r?$e&BilL!~@xEu$q-T`_jQ=j}VN6@E1%bp6065mTYKC?VoR*?!J2EH<%FIlF993*wKdw8*?w>A6F*LC0*2Xbf4tm;A^V7 z{X1?*@%L45G|LUB`tW>jm*)W$DGrniLs#kjz~s%tClc{S14L>J0_cVEt6&7`e$5wM zSALj%c_~3d5P(kSh0MVtB^a#vie7p4HwM%k4nq9j0;u2oD zd-VJ?x4|_n4S^C~vHWBU#+CG3srY%4b5<7m^!nW|c0a#+>x-Sw?|yOj&aGRY!lOQY zMW48oKLK2szUk-MB{KD+aN`F~!Y6t$<^TQg%@53i<^ygWOt^lWcs?TE_`;^^DKY#} z!4dJrxr0@%dV9wUuBzd`baZws7}T4ao$|>(iH7*{>F(C;n_t}eawQ-_`&$m}) zud|=vEFYW~@)j&qGhoY4Z`nEc1D*5VjdzFJ$9nv9XYcmi&%d19xVbZ#Og_Ik`P9kn z)0>lRM8tZZtw2xeZKwW_3K~k-PyTrAWmni2W(n_X4Aw_Hf}%S zS0+ihpn>O*IC98tv;n|_g&i;rdl(XLgwHZ3^T(86{%9E-^lo=DF%-U@?uoq6NaFv> zk0eoV1M!o0&>R2FH~b{v@9~=>kp+Y*qS4WrKc8;hx%v6t7q@PIzI}W9%iFstR8gg(L3+_l@n)O;1%I880n8se<09u>tNO86{Ka=+MVtaYh#~t zM5TPbC`?8bkpF~_Qi$K#K0h@t{E<+?pM-*+O0FpcOis1NoqOrgy@>fmAo+=e1{3sn zR#0UAHXMj&s~qCsRMTxY00{xx=i4k^{la?$_oyHWXJ5Qs#X0%-uxrZ!^c)?k#145@ zy3&@~R!}I~j!oK~FTU9Na%=aCn_t}C`~36W3kaW!T4~ug0DdUUX|=mfls9pkCciWc za-|(SxAc@6g}aY^51A=r7%wbW9LfrQa!%TrtSbAhKij7b%sN#|_PJ{gTxX(23RO>* zOOaPqBA#gFFmUatG2_a!*XM`ZM_^tMQlmVZ)35_@mSxPbh;rqH`x4b}d{^d;tN62q zKb7MCnC`x%^dHIkKehD~1#DC2vw1iGj4Xsa=E(Rdy`(SF*s#7UFLs#UpMq$n`$rfb zznkKXcw{4^YI+a$pA#%$q@PADUj0#Ci~7C0`*d=M^W3B9(N8LmkpJ^^@@B@?=iyPj zi&P3v;uCLP8yxG>an=QiJ=N7m6!17=0jB-7dBKAb%foQ4=UF);AGibm_nsFmUS^r$ zw@QbX1?lP8@$t7)(W07*cpX8YeLLPhtrJtmyH#78PL}b?AN<2)cc2`DRuF-iFH6%x zqxzeBF;M#Z$T79{mc0rG)2O5BS~SmD?3#_UZT_>b{~YQ+Kj}aEe=!68>``3B$RWpn zZOQR>_wUM87N7a!%T_=9_3q!Tq-pqgn}2uzZW*ktODjdA_C zZ3ew0*j;VKfD-eD6u>(tTz**HxRKV7&}F{lD~C%9zu;%2%Zqc3YD#QKZeW%tUdpl= z;YTIIiOMQ&kiSw4^XJp++c$39oZQ*FwLSTgU2b>r9v3XQ>;=*Z9qq10d+ZCg_d$kQ z1->0x7-LW-@FWF4WQ(J3XAAszGu=JY?&uze{Lrm2{6XCPi~sqn|49bKhr)gMZ9ZO< zI6K|XpWkm;i-%JK>U2MAQl!)@C!ZkHkOj>vfz}*6XL>*QU4^AYbk*!3I5>%2nf3788ytDbe z(pLtA(KOH!hvy7t~zC#j=-(CVcSa{G<~OO)%rN zi)rd3-~2q~(z$8KsOd_sPK|GYVn?F9!A7A7TX%i4< z*H|z7>XUw!x^X=}@;9h?-Leem`6y)kkh6K^Y#WerC?=$tKE~L{9DeQXx5!wtU_jjq zniJ9qKymR@n6j_@)db?O)2C(zq#bl`N_v;shGll)QTHD`;ZT@|F#pU4-d9T@hNo`g zXWC};Dj5MkeUP^KWr^Xps+Z~9`00$!QNW|oe$$G|d(8c0H;$nBD8ZVq=OJI~FOMh3 zZ}{&iGOSphVQXii=+T0Hl6$CCUj}~wowGIho%8BdES1^A)8j)l7FNy^-(+p5;$-_6 z4YZucs8WP5e!u1a*)pstc4eV`I#We{2$1|eojsT;N89myr}YO;-zG*?Wl>&;G#ah~Og-QH>AhM9DGbCe1^#ZGNJL*{yiGzlU3{%;4UD zT#xx>l8W_yU98e9-=B3r9+J8% zkZtaXUdk-ybh>XR4pV#4sE@Wr9w8^Zhnl6~J7-yKgh;e~yemWr8V#7AYkygP=w;Qp z{~}c-KX72K2Irlu`$F5)A%gXZxxI zwKMdRpIk6%hbotdc=4)mmu$Vf=z8eAqMDt=ZTs7qm=@EI=6rEp_Ja<&QtxHibzM)y zgPrOS)62zI`HsJF%3~(KJ%ECEBdX<(^U;maUrP1oT!bTlh#}@a?{=`Z3%_UT$=hXW zH1q=xQH9K0RE>aAn$IF}49~|-vnI}ZaPTx*>fV=Y9|BYZTeH_*`Qcq0AN)LVk(6f? z=_U;&%nmNpp>HI7Gy5{X=kL(50#HX0l@{K9M9KRmL-NDbhH=F3hZJYE5&~Z8T+5#fpXX;6 z{LaJ7IGXmPnIuB9U+wCh?NhsYx2yWS07%{t+F2r(d7P?LyerDLvbpdL0yQ;TEFL%9 zs$(o(Qz-(6X>BN^lfn_c$S?OY=7${p{EyCNa`fYmeEa;5UdsQ_|J>$}g`Dx1jkbz! z;sr|!MX>E_GGE+P;dBb;XSzJ|GaaM#Q@p(d1@Xe<2L5u~Xrh1g>d3=(;%gdSL6M|_ zd~AYU)L;pu;enp@Dr2hoja#9;msoN(F^6)V30~m8P`v)Dhy(uSSh6E=Q(nUtvX-2Q kd6S+5awC8OIWaZi&kHcj=e^2kTnmr2qf` literal 0 HcmV?d00001 diff --git a/demo/dist/libs/dropzone/dist/dropzone.css b/demo/dist/libs/dropzone/dist/dropzone.css new file mode 100644 index 000000000..569ac4484 --- /dev/null +++ b/demo/dist/libs/dropzone/dist/dropzone.css @@ -0,0 +1 @@ +@keyframes passing-through{0%{opacity:0;transform:translateY(40px)}30%,70%{opacity:1;transform:translateY(0px)}100%{opacity:0;transform:translateY(-40px)}}@keyframes slide-in{0%{opacity:0;transform:translateY(40px)}30%{opacity:1;transform:translateY(0px)}}@keyframes pulse{0%{transform:scale(1)}10%{transform:scale(1.1)}20%{transform:scale(1)}}.dropzone,.dropzone *{box-sizing:border-box}.dropzone{min-height:150px;border:1px solid rgba(0,0,0,.8);border-radius:5px;padding:20px 20px}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message *{cursor:pointer}.dropzone.dz-started .dz-message{display:none}.dropzone.dz-drag-hover{border-style:solid}.dropzone.dz-drag-hover .dz-message{opacity:.5}.dropzone .dz-message{text-align:center;margin:3em 0}.dropzone .dz-message .dz-button{background:none;color:inherit;border:none;padding:0;font:inherit;cursor:pointer;outline:inherit}.dropzone .dz-preview{position:relative;display:inline-block;vertical-align:top;margin:16px;min-height:100px}.dropzone .dz-preview:hover{z-index:1000}.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-preview.dz-file-preview .dz-image{border-radius:20px;background:#999;background:linear-gradient(to bottom, #eee, #ddd)}.dropzone .dz-preview.dz-file-preview .dz-details{opacity:1}.dropzone .dz-preview.dz-image-preview{background:#fff}.dropzone .dz-preview.dz-image-preview .dz-details{transition:opacity .2s linear}.dropzone .dz-preview .dz-remove{font-size:14px;text-align:center;display:block;cursor:pointer;border:none}.dropzone .dz-preview .dz-remove:hover{text-decoration:underline}.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-preview .dz-details{z-index:20;position:absolute;top:0;left:0;opacity:0;font-size:13px;min-width:100%;max-width:100%;padding:2em 1em;text-align:center;color:rgba(0,0,0,.9);line-height:150%}.dropzone .dz-preview .dz-details .dz-size{margin-bottom:1em;font-size:16px}.dropzone .dz-preview .dz-details .dz-filename{white-space:nowrap}.dropzone .dz-preview .dz-details .dz-filename:hover span{border:1px solid rgba(200,200,200,.8);background-color:rgba(255,255,255,.8)}.dropzone .dz-preview .dz-details .dz-filename:not(:hover){overflow:hidden;text-overflow:ellipsis}.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span{border:1px solid transparent}.dropzone .dz-preview .dz-details .dz-filename span,.dropzone .dz-preview .dz-details .dz-size span{background-color:rgba(255,255,255,.4);padding:0 .4em;border-radius:3px}.dropzone .dz-preview:hover .dz-image img{transform:scale(1.05, 1.05);filter:blur(8px)}.dropzone .dz-preview .dz-image{border-radius:20px;overflow:hidden;width:120px;height:120px;position:relative;display:block;z-index:10}.dropzone .dz-preview .dz-image img{display:block}.dropzone .dz-preview.dz-success .dz-success-mark{animation:passing-through 3s cubic-bezier(0.77, 0, 0.175, 1)}.dropzone .dz-preview.dz-error .dz-error-mark{opacity:1;animation:slide-in 3s cubic-bezier(0.77, 0, 0.175, 1)}.dropzone .dz-preview .dz-success-mark,.dropzone .dz-preview .dz-error-mark{pointer-events:none;opacity:0;z-index:500;position:absolute;display:block;top:50%;left:50%;margin-left:-27px;margin-top:-27px;background:rgba(0,0,0,.8);border-radius:50%}.dropzone .dz-preview .dz-success-mark svg,.dropzone .dz-preview .dz-error-mark svg{display:block;width:54px;height:54px;fill:#fff}.dropzone .dz-preview.dz-processing .dz-progress{opacity:1;transition:all .2s linear}.dropzone .dz-preview.dz-complete .dz-progress{opacity:0;transition:opacity .4s ease-in}.dropzone .dz-preview:not(.dz-processing) .dz-progress{animation:pulse 6s ease infinite}.dropzone .dz-preview .dz-progress{opacity:1;z-index:1000;pointer-events:none;position:absolute;height:20px;top:50%;margin-top:-10px;left:15%;right:15%;border:3px solid rgba(0,0,0,.8);background:rgba(0,0,0,.8);border-radius:10px;overflow:hidden}.dropzone .dz-preview .dz-progress .dz-upload{background:#fff;display:block;position:relative;height:100%;width:0;transition:width 300ms ease-in-out;border-radius:17px}.dropzone .dz-preview.dz-error .dz-error-message{display:block}.dropzone .dz-preview.dz-error:hover .dz-error-message{opacity:1;pointer-events:auto}.dropzone .dz-preview .dz-error-message{pointer-events:none;z-index:1000;position:absolute;display:block;display:none;opacity:0;transition:opacity .3s ease;border-radius:8px;font-size:13px;top:130px;left:-10px;width:140px;background:#b10606;padding:.5em 1em;color:#fff}.dropzone .dz-preview .dz-error-message:after{content:"";position:absolute;top:-6px;left:64px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #b10606}/*# sourceMappingURL=dropzone.css.map */ diff --git a/demo/dist/libs/dropzone/dist/dropzone.css.map b/demo/dist/libs/dropzone/dist/dropzone.css.map new file mode 100644 index 0000000000000000000000000000000000000000..d5aac3702a7b2bc61c15553bf54f322abe89d73d GIT binary patch literal 1354 zcmZWp(QevM4E>k9)}pATsN>By+#raui82(?X%AVNr5O#ONh#W<{`-#Y6e{h-y1v&w zK0bExH+U`Du4;C{y#f=#4K9f@+2G8igm|E^L__DymY6jZFaRe&_kaN_c zYfd66r@|%Y)|U?Ib^g%_B!ae65fm2hYoUG6EPJf=`qs(4(Nr=z%u_1VEG?0$U&LRFQGm1QNhvjSIEOsi)|Da}0yK~4B9uPSKG26svqK0IEJVJV z^4#|wVrB~n=%quf%L?nF`(^Q38n~;7hFSvx0tQv*pLGL7w%2$ovK`~6ci9rYj#rfM zDE^9OZuC6H`GYjtvkg9%8JNanFpKE67f1+Ch0@4#>}8Kt7hG@7iseEGp8(TJjFm81 zQr^4DLBwbG%gGDUo5*I3(1dqx1LBRl2g}xFGJE#}_D1ik5PMMdvqwCphmk>AT?SlS z=m-uPfdzoFbtuaA+bPv-i`42KC{eIOw$jxp+ozQBr>U|nJ=ognV&FhAJyL%0LigzJ zAvyr8)iW%LBN&O0(`e^H*!U?Y(6RjkNu#Epf&nR}`WkDKwkKT!y-lTX!VgQB;trdO o(^5{>6Taay-4n&WQ}`d|1Q|hAEPjhWtEU1#xzoQ;euZ!U0ODS8^8f$< literal 0 HcmV?d00001 diff --git a/demo/dist/libs/dropzone/dist/dropzone.js b/demo/dist/libs/dropzone/dist/dropzone.js new file mode 100644 index 000000000..d0a2ffea9 --- /dev/null +++ b/demo/dist/libs/dropzone/dist/dropzone.js @@ -0,0 +1,3068 @@ +var $6mU8w$swchelpers = require("@swc/helpers"); +var $6mU8w$justextend = require("just-extend"); + +function $parcel$interopDefault(a) { + return a && a.__esModule ? a.default : a; +} +function $parcel$defineInteropFlag(a) { + Object.defineProperty(a, '__esModule', {value: true, configurable: true}); +} +function $parcel$export(e, n, v, s) { + Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); +} + +$parcel$defineInteropFlag(module.exports); + +$parcel$export(module.exports, "default", function () { return $a601ff30f483e917$export$2e2bcd8739ae039; }); +$parcel$export(module.exports, "Dropzone", function () { return $a601ff30f483e917$export$2e2bcd8739ae039; }); + + + +var $b1d17cfb1d15c36a$export$2e2bcd8739ae039 = /*#__PURE__*/ function() { + "use strict"; + function $b1d17cfb1d15c36a$export$2e2bcd8739ae039() { + $6mU8w$swchelpers.classCallCheck(this, $b1d17cfb1d15c36a$export$2e2bcd8739ae039); + } + $6mU8w$swchelpers.createClass($b1d17cfb1d15c36a$export$2e2bcd8739ae039, [ + { + // Add an event listener for given event + key: "on", + value: function on(event, fn) { + this._callbacks = this._callbacks || { + }; + // Create namespace for this event + if (!this._callbacks[event]) this._callbacks[event] = []; + this._callbacks[event].push(fn); + return this; + } + }, + { + key: "emit", + value: function emit(event) { + for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){ + args[_key - 1] = arguments[_key]; + } + this._callbacks = this._callbacks || { + }; + var callbacks = this._callbacks[event]; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + if (callbacks) try { + for(var _iterator = callbacks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var callback = _step.value; + callback.apply(this, args); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + // trigger a corresponding DOM event + if (this.element) this.element.dispatchEvent(this.makeEvent("dropzone:" + event, { + args: args + })); + return this; + } + }, + { + key: "makeEvent", + value: function makeEvent(eventName, detail) { + var params = { + bubbles: true, + cancelable: true, + detail: detail + }; + if (typeof window.CustomEvent === "function") return new CustomEvent(eventName, params); + else { + // IE 11 support + // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent + var evt = document.createEvent("CustomEvent"); + evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail); + return evt; + } + } + }, + { + // Remove event listener for given event. If fn is not provided, all event + // listeners for that event will be removed. If neither is provided, all + // event listeners will be removed. + key: "off", + value: function off(event, fn) { + if (!this._callbacks || arguments.length === 0) { + this._callbacks = { + }; + return this; + } + // specific event + var callbacks = this._callbacks[event]; + if (!callbacks) return this; + // remove all handlers + if (arguments.length === 1) { + delete this._callbacks[event]; + return this; + } + // remove specific handler + for(var i = 0; i < callbacks.length; i++){ + var callback = callbacks[i]; + if (callback === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; + } + } + ]); + return $b1d17cfb1d15c36a$export$2e2bcd8739ae039; +}(); + + + +var $69c61888cc1f4c57$exports = {}; +$69c61888cc1f4c57$exports = "
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n"; + + +var $b657c03155fc27e2$var$defaultOptions = { + /** + * Has to be specified on elements other than form (or when the form doesn't + * have an `action` attribute). + * + * You can also provide a function that will be called with `files` and + * `dataBlocks` and must return the url as string. + */ url: null, + /** + * Can be changed to `"put"` if necessary. You can also provide a function + * that will be called with `files` and must return the method (since `v3.12.0`). + */ method: "post", + /** + * Will be set on the XHRequest. + */ withCredentials: false, + /** + * The timeout for the XHR requests in milliseconds (since `v4.4.0`). + * If set to null or 0, no timeout is going to be set. + */ timeout: null, + /** + * How many file uploads to process in parallel (See the + * Enqueuing file uploads documentation section for more info) + */ parallelUploads: 2, + /** + * Whether to send multiple files in one request. If + * this it set to true, then the fallback file input element will + * have the `multiple` attribute as well. This option will + * also trigger additional events (like `processingmultiple`). See the events + * documentation section for more information. + */ uploadMultiple: false, + /** + * Whether you want files to be uploaded in chunks to your server. This can't be + * used in combination with `uploadMultiple`. + * + * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload. + */ chunking: false, + /** + * If `chunking` is enabled, this defines whether **every** file should be chunked, + * even if the file size is below chunkSize. This means, that the additional chunk + * form data will be submitted and the `chunksUploaded` callback will be invoked. + */ forceChunking: false, + /** + * If `chunking` is `true`, then this defines the chunk size in bytes. + */ chunkSize: 2097152, + /** + * If `true`, the individual chunks of a file are being uploaded simultaneously. + */ parallelChunkUploads: false, + /** + * Whether a chunk should be retried if it fails. + */ retryChunks: false, + /** + * If `retryChunks` is true, how many times should it be retried. + */ retryChunksLimit: 3, + /** + * The maximum filesize (in MiB) that is allowed to be uploaded. + */ maxFilesize: 256, + /** + * The name of the file param that gets transferred. + * **NOTE**: If you have the option `uploadMultiple` set to `true`, then + * Dropzone will append `[]` to the name. + */ paramName: "file", + /** + * Whether thumbnails for images should be generated + */ createImageThumbnails: true, + /** + * In MB. When the filename exceeds this limit, the thumbnail will not be generated. + */ maxThumbnailFilesize: 10, + /** + * If `null`, the ratio of the image will be used to calculate it. + */ thumbnailWidth: 120, + /** + * The same as `thumbnailWidth`. If both are null, images will not be resized. + */ thumbnailHeight: 120, + /** + * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided. + * Can be either `contain` or `crop`. + */ thumbnailMethod: "crop", + /** + * If set, images will be resized to these dimensions before being **uploaded**. + * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect + * ratio of the file will be preserved. + * + * The `options.transformFile` function uses these options, so if the `transformFile` function + * is overridden, these options don't do anything. + */ resizeWidth: null, + /** + * See `resizeWidth`. + */ resizeHeight: null, + /** + * The mime type of the resized image (before it gets uploaded to the server). + * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`. + * See `resizeWidth` for more information. + */ resizeMimeType: null, + /** + * The quality of the resized images. See `resizeWidth`. + */ resizeQuality: 0.8, + /** + * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided. + * Can be either `contain` or `crop`. + */ resizeMethod: "contain", + /** + * The base that is used to calculate the **displayed** filesize. You can + * change this to 1024 if you would rather display kibibytes, mebibytes, + * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte` + * not `1 kilobyte`. You can change this to `1024` if you don't care about + * validity. + */ filesizeBase: 1000, + /** + * If not `null` defines how many files this Dropzone handles. If it exceeds, + * the event `maxfilesexceeded` will be called. The dropzone element gets the + * class `dz-max-files-reached` accordingly so you can provide visual + * feedback. + */ maxFiles: null, + /** + * An optional object to send additional headers to the server. Eg: + * `{ "My-Awesome-Header": "header value" }` + */ headers: null, + /** + * Should the default headers be set or not? + * Accept: application/json <- for requesting json response + * Cache-Control: no-cache <- Request shouldnt be cached + * X-Requested-With: XMLHttpRequest <- We sent the request via XMLHttpRequest + */ defaultHeaders: true, + /** + * If `true`, the dropzone element itself will be clickable, if `false` + * nothing will be clickable. + * + * You can also pass an HTML element, a CSS selector (for multiple elements) + * or an array of those. In that case, all of those elements will trigger an + * upload when clicked. + */ clickable: true, + /** + * Whether hidden files in directories should be ignored. + */ ignoreHiddenFiles: true, + /** + * The default implementation of `accept` checks the file's mime type or + * extension against this list. This is a comma separated list of mime + * types or file extensions. + * + * Eg.: `image/*,application/pdf,.psd` + * + * If the Dropzone is `clickable` this option will also be used as + * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept) + * parameter on the hidden file input as well. + */ acceptedFiles: null, + /** + * **Deprecated!** + * Use acceptedFiles instead. + */ acceptedMimeTypes: null, + /** + * If false, files will be added to the queue but the queue will not be + * processed automatically. + * This can be useful if you need some additional user input before sending + * files (or if you want want all files sent at once). + * If you're ready to send the file simply call `myDropzone.processQueue()`. + * + * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation + * section for more information. + */ autoProcessQueue: true, + /** + * If false, files added to the dropzone will not be queued by default. + * You'll have to call `enqueueFile(file)` manually. + */ autoQueue: true, + /** + * If `true`, this will add a link to every file preview to remove or cancel (if + * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation` + * and `dictRemoveFile` options are used for the wording. + */ addRemoveLinks: false, + /** + * Defines where to display the file previews – if `null` the + * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS + * selector. The element should have the `dropzone-previews` class so + * the previews are displayed properly. + */ previewsContainer: null, + /** + * Set this to `true` if you don't want previews to be shown. + */ disablePreviews: false, + /** + * This is the element the hidden input field (which is used when clicking on the + * dropzone to trigger file selection) will be appended to. This might + * be important in case you use frameworks to switch the content of your page. + * + * Can be a selector string, or an element directly. + */ hiddenInputContainer: "body", + /** + * If null, no capture type will be specified + * If camera, mobile devices will skip the file selection and choose camera + * If microphone, mobile devices will skip the file selection and choose the microphone + * If camcorder, mobile devices will skip the file selection and choose the camera in video mode + * On apple devices multiple must be set to false. AcceptedFiles may need to + * be set to an appropriate mime type (e.g. "image/*", "audio/*", or "video/*"). + */ capture: null, + /** + * **Deprecated**. Use `renameFile` instead. + */ renameFilename: null, + /** + * A function that is invoked before the file is uploaded to the server and renames the file. + * This function gets the `File` as argument and can use the `file.name`. The actual name of the + * file that gets used during the upload can be accessed through `file.upload.filename`. + */ renameFile: null, + /** + * If `true` the fallback will be forced. This is very useful to test your server + * implementations first and make sure that everything works as + * expected without dropzone if you experience problems, and to test + * how your fallbacks will look. + */ forceFallback: false, + /** + * The text used before any files are dropped. + */ dictDefaultMessage: "Drop files here to upload", + /** + * The text that replaces the default message text it the browser is not supported. + */ dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.", + /** + * The text that will be added before the fallback form. + * If you provide a fallback element yourself, or if this option is `null` this will + * be ignored. + */ dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.", + /** + * If the filesize is too big. + * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values. + */ dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.", + /** + * If the file doesn't match the file type. + */ dictInvalidFileType: "You can't upload files of this type.", + /** + * If the server response was invalid. + * `{{statusCode}}` will be replaced with the servers status code. + */ dictResponseError: "Server responded with {{statusCode}} code.", + /** + * If `addRemoveLinks` is true, the text to be used for the cancel upload link. + */ dictCancelUpload: "Cancel upload", + /** + * The text that is displayed if an upload was manually canceled + */ dictUploadCanceled: "Upload canceled.", + /** + * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload. + */ dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?", + /** + * If `addRemoveLinks` is true, the text to be used to remove a file. + */ dictRemoveFile: "Remove file", + /** + * If this is not null, then the user will be prompted before removing a file. + */ dictRemoveFileConfirmation: null, + /** + * Displayed if `maxFiles` is st and exceeded. + * The string `{{maxFiles}}` will be replaced by the configuration value. + */ dictMaxFilesExceeded: "You can not upload any more files.", + /** + * Allows you to translate the different units. Starting with `tb` for terabytes and going down to + * `b` for bytes. + */ dictFileSizeUnits: { + tb: "TB", + gb: "GB", + mb: "MB", + kb: "KB", + b: "b" + }, + /** + * Called when dropzone initialized + * You can add event listeners here + */ init: function() { + }, + /** + * Can be an **object** of additional parameters to transfer to the server, **or** a `Function` + * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case + * of a function, this needs to return a map. + * + * The default implementation does nothing for normal uploads, but adds relevant information for + * chunked uploads. + * + * This is the same as adding hidden input fields in the form element. + */ params: function(files, xhr, chunk) { + if (chunk) return { + dzuuid: chunk.file.upload.uuid, + dzchunkindex: chunk.index, + dztotalfilesize: chunk.file.size, + dzchunksize: this.options.chunkSize, + dztotalchunkcount: chunk.file.upload.totalChunkCount, + dzchunkbyteoffset: chunk.index * this.options.chunkSize + }; + }, + /** + * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File) + * and a `done` function as parameters. + * + * If the done function is invoked without arguments, the file is "accepted" and will + * be processed. If you pass an error message, the file is rejected, and the error + * message will be displayed. + * This function will not be called if the file is too big or doesn't match the mime types. + */ accept: function(file, done) { + return done(); + }, + /** + * The callback that will be invoked when all chunks have been uploaded for a file. + * It gets the file for which the chunks have been uploaded as the first parameter, + * and the `done` function as second. `done()` needs to be invoked when everything + * needed to finish the upload process is done. + */ chunksUploaded: function chunksUploaded(file, done) { + done(); + }, + /** + * Sends the file as binary blob in body instead of form data. + * If this is set, the `params` option will be ignored. + * It's an error to set this to `true` along with `uploadMultiple` since + * multiple files cannot be in a single binary body. + */ binaryBody: false, + /** + * Gets called when the browser is not supported. + * The default implementation shows the fallback input field and adds + * a text. + */ fallback: function() { + // This code should pass in IE7... :( + var messageElement; + this.element.className = "".concat(this.element.className, " dz-browser-not-supported"); + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = this.element.getElementsByTagName("div")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var child = _step.value; + if (/(^| )dz-message($| )/.test(child.className)) { + messageElement = child; + child.className = "dz-message"; // Removes the 'dz-default' class + break; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + if (!messageElement) { + messageElement = $a601ff30f483e917$export$2e2bcd8739ae039.createElement('
    '); + this.element.appendChild(messageElement); + } + var span = messageElement.getElementsByTagName("span")[0]; + if (span) { + if (span.textContent != null) span.textContent = this.options.dictFallbackMessage; + else if (span.innerText != null) span.innerText = this.options.dictFallbackMessage; + } + return this.element.appendChild(this.getFallbackForm()); + }, + /** + * Gets called to calculate the thumbnail dimensions. + * + * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing: + * + * - `srcWidth` & `srcHeight` (required) + * - `trgWidth` & `trgHeight` (required) + * - `srcX` & `srcY` (optional, default `0`) + * - `trgX` & `trgY` (optional, default `0`) + * + * Those values are going to be used by `ctx.drawImage()`. + */ resize: function(file, width, height, resizeMethod) { + var info = { + srcX: 0, + srcY: 0, + srcWidth: file.width, + srcHeight: file.height + }; + var srcRatio = file.width / file.height; + // Automatically calculate dimensions if not specified + if (width == null && height == null) { + width = info.srcWidth; + height = info.srcHeight; + } else if (width == null) width = height * srcRatio; + else if (height == null) height = width / srcRatio; + // Make sure images aren't upscaled + width = Math.min(width, info.srcWidth); + height = Math.min(height, info.srcHeight); + var trgRatio = width / height; + if (info.srcWidth > width || info.srcHeight > height) { + // Image is bigger and needs rescaling + if (resizeMethod === "crop") { + if (srcRatio > trgRatio) { + info.srcHeight = file.height; + info.srcWidth = info.srcHeight * trgRatio; + } else { + info.srcWidth = file.width; + info.srcHeight = info.srcWidth / trgRatio; + } + } else if (resizeMethod === "contain") { + // Method 'contain' + if (srcRatio > trgRatio) height = width / srcRatio; + else width = height * srcRatio; + } else throw new Error("Unknown resizeMethod '".concat(resizeMethod, "'")); + } + info.srcX = (file.width - info.srcWidth) / 2; + info.srcY = (file.height - info.srcHeight) / 2; + info.trgWidth = width; + info.trgHeight = height; + return info; + }, + /** + * Can be used to transform the file (for example, resize an image if necessary). + * + * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes + * images according to those dimensions. + * + * Gets the `file` as the first parameter, and a `done()` function as the second, that needs + * to be invoked with the file when the transformation is done. + */ transformFile: function(file, done) { + if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done); + else return done(file); + }, + /** + * A string that contains the template used for each dropped + * file. Change it to fulfill your needs but make sure to properly + * provide all elements. + * + * If you want to use an actual HTML element instead of providing a String + * as a config option, you could create a div with the id `tpl`, + * put the template inside it and provide the element like this: + * + * document + * .querySelector('#tpl') + * .innerHTML + * + */ previewTemplate: (/*@__PURE__*/$parcel$interopDefault($69c61888cc1f4c57$exports)), + /* + Those functions register themselves to the events on init and handle all + the user interface specific stuff. Overwriting them won't break the upload + but can break the way it's displayed. + You can overwrite them if you don't like the default behavior. If you just + want to add an additional event handler, register it on the dropzone object + and don't overwrite those options. + */ // Those are self explanatory and simply concern the DragnDrop. + drop: function(e) { + return this.element.classList.remove("dz-drag-hover"); + }, + dragstart: function(e) { + }, + dragend: function(e) { + return this.element.classList.remove("dz-drag-hover"); + }, + dragenter: function(e) { + return this.element.classList.add("dz-drag-hover"); + }, + dragover: function(e) { + return this.element.classList.add("dz-drag-hover"); + }, + dragleave: function(e) { + return this.element.classList.remove("dz-drag-hover"); + }, + paste: function(e) { + }, + // Called whenever there are no files left in the dropzone anymore, and the + // dropzone should be displayed as if in the initial state. + reset: function() { + return this.element.classList.remove("dz-started"); + }, + // Called when a file is added to the queue + // Receives `file` + addedfile: function(file) { + if (this.element === this.previewsContainer) this.element.classList.add("dz-started"); + if (this.previewsContainer && !this.options.disablePreviews) { + var _this = this; + file.previewElement = $a601ff30f483e917$export$2e2bcd8739ae039.createElement(this.options.previewTemplate.trim()); + file.previewTemplate = file.previewElement; // Backwards compatibility + this.previewsContainer.appendChild(file.previewElement); + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = file.previewElement.querySelectorAll("[data-dz-name]")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var node = _step.value; + node.textContent = file.name; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined; + try { + for(var _iterator1 = file.previewElement.querySelectorAll("[data-dz-size]")[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){ + node = _step1.value; + node.innerHTML = this.filesize(file.size); + } + } catch (err) { + _didIteratorError1 = true; + _iteratorError1 = err; + } finally{ + try { + if (!_iteratorNormalCompletion1 && _iterator1.return != null) { + _iterator1.return(); + } + } finally{ + if (_didIteratorError1) { + throw _iteratorError1; + } + } + } + if (this.options.addRemoveLinks) { + file._removeLink = $a601ff30f483e917$export$2e2bcd8739ae039.createElement("".concat(this.options.dictRemoveFile, "")); + file.previewElement.appendChild(file._removeLink); + } + var removeFileEvent = function(e) { + var _this1 = _this; + e.preventDefault(); + e.stopPropagation(); + if (file.status === $a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING) return $a601ff30f483e917$export$2e2bcd8739ae039.confirm(_this.options.dictCancelUploadConfirmation, function() { + return _this1.removeFile(file); + }); + else { + var _this2 = _this; + if (_this.options.dictRemoveFileConfirmation) return $a601ff30f483e917$export$2e2bcd8739ae039.confirm(_this.options.dictRemoveFileConfirmation, function() { + return _this2.removeFile(file); + }); + else return _this.removeFile(file); + } + }; + var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined; + try { + for(var _iterator2 = file.previewElement.querySelectorAll("[data-dz-remove]")[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){ + var removeLink = _step2.value; + removeLink.addEventListener("click", removeFileEvent); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally{ + try { + if (!_iteratorNormalCompletion2 && _iterator2.return != null) { + _iterator2.return(); + } + } finally{ + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + } + }, + // Called whenever a file is removed. + removedfile: function(file) { + if (file.previewElement != null && file.previewElement.parentNode != null) file.previewElement.parentNode.removeChild(file.previewElement); + return this._updateMaxFilesReachedClass(); + }, + // Called when a thumbnail has been generated + // Receives `file` and `dataUrl` + thumbnail: function(file, dataUrl) { + if (file.previewElement) { + file.previewElement.classList.remove("dz-file-preview"); + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = file.previewElement.querySelectorAll("[data-dz-thumbnail]")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var thumbnailElement = _step.value; + thumbnailElement.alt = file.name; + thumbnailElement.src = dataUrl; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + return setTimeout(function() { + return file.previewElement.classList.add("dz-image-preview"); + }, 1); + } + }, + // Called whenever an error occurs + // Receives `file` and `message` + error: function(file, message) { + if (file.previewElement) { + file.previewElement.classList.add("dz-error"); + if (typeof message !== "string" && message.error) message = message.error; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = file.previewElement.querySelectorAll("[data-dz-errormessage]")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var node = _step.value; + node.textContent = message; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + }, + errormultiple: function() { + }, + // Called when a file gets processed. Since there is a cue, not all added + // files are processed immediately. + // Receives `file` + processing: function(file) { + if (file.previewElement) { + file.previewElement.classList.add("dz-processing"); + if (file._removeLink) return file._removeLink.innerHTML = this.options.dictCancelUpload; + } + }, + processingmultiple: function() { + }, + // Called whenever the upload progress gets updated. + // Receives `file`, `progress` (percentage 0-100) and `bytesSent`. + // To get the total number of bytes of the file, use `file.size` + uploadprogress: function(file, progress, bytesSent) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + if (file.previewElement) try { + for(var _iterator = file.previewElement.querySelectorAll("[data-dz-uploadprogress]")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var node = _step.value; + node.nodeName === "PROGRESS" ? node.value = progress : node.style.width = "".concat(progress, "%"); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }, + // Called whenever the total upload progress gets updated. + // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent + totaluploadprogress: function() { + }, + // Called just before the file is sent. Gets the `xhr` object as second + // parameter, so you can modify it (for example to add a CSRF token) and a + // `formData` object to add additional information. + sending: function() { + }, + sendingmultiple: function() { + }, + // When the complete upload is finished and successful + // Receives `file` + success: function(file) { + if (file.previewElement) return file.previewElement.classList.add("dz-success"); + }, + successmultiple: function() { + }, + // When the upload is canceled. + canceled: function(file) { + return this.emit("error", file, this.options.dictUploadCanceled); + }, + canceledmultiple: function() { + }, + // When the upload is finished, either with success or an error. + // Receives `file` + complete: function(file) { + if (file._removeLink) file._removeLink.innerHTML = this.options.dictRemoveFile; + if (file.previewElement) return file.previewElement.classList.add("dz-complete"); + }, + completemultiple: function() { + }, + maxfilesexceeded: function() { + }, + maxfilesreached: function() { + }, + queuecomplete: function() { + }, + addedfiles: function() { + } +}; +var $b657c03155fc27e2$export$2e2bcd8739ae039 = $b657c03155fc27e2$var$defaultOptions; + + +var $a601ff30f483e917$export$2e2bcd8739ae039 = /*#__PURE__*/ function(Emitter) { + "use strict"; + $6mU8w$swchelpers.inherits($a601ff30f483e917$export$2e2bcd8739ae039, Emitter); + function $a601ff30f483e917$export$2e2bcd8739ae039(el, options) { + $6mU8w$swchelpers.classCallCheck(this, $a601ff30f483e917$export$2e2bcd8739ae039); + var _this; + _this = $6mU8w$swchelpers.possibleConstructorReturn(this, $6mU8w$swchelpers.getPrototypeOf($a601ff30f483e917$export$2e2bcd8739ae039).call(this)); + var fallback, left; + _this.element = el; + _this.clickableElements = []; + _this.listeners = []; + _this.files = []; // All files + if (typeof _this.element === "string") _this.element = document.querySelector(_this.element); + // Not checking if instance of HTMLElement or Element since IE9 is extremely weird. + if (!_this.element || _this.element.nodeType == null) throw new Error("Invalid dropzone element."); + if (_this.element.dropzone) throw new Error("Dropzone already attached."); + // Now add this dropzone to the instances. + $a601ff30f483e917$export$2e2bcd8739ae039.instances.push($6mU8w$swchelpers.assertThisInitialized(_this)); + // Put the dropzone inside the element itself. + _this.element.dropzone = $6mU8w$swchelpers.assertThisInitialized(_this); + var elementOptions = (left = $a601ff30f483e917$export$2e2bcd8739ae039.optionsForElement(_this.element)) != null ? left : { + }; + _this.options = $parcel$interopDefault($6mU8w$justextend)(true, { + }, $b657c03155fc27e2$export$2e2bcd8739ae039, elementOptions, options != null ? options : { + }); + _this.options.previewTemplate = _this.options.previewTemplate.replace(/\n*/g, ""); + // If the browser failed, just call the fallback and leave + if (_this.options.forceFallback || !$a601ff30f483e917$export$2e2bcd8739ae039.isBrowserSupported()) return $6mU8w$swchelpers.possibleConstructorReturn(_this, _this.options.fallback.call($6mU8w$swchelpers.assertThisInitialized(_this))); + // @options.url = @element.getAttribute "action" unless @options.url? + if (_this.options.url == null) _this.options.url = _this.element.getAttribute("action"); + if (!_this.options.url) throw new Error("No URL provided."); + if (_this.options.acceptedFiles && _this.options.acceptedMimeTypes) throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated."); + if (_this.options.uploadMultiple && _this.options.chunking) throw new Error("You cannot set both: uploadMultiple and chunking."); + if (_this.options.binaryBody && _this.options.uploadMultiple) throw new Error("You cannot set both: binaryBody and uploadMultiple."); + // Backwards compatibility + if (_this.options.acceptedMimeTypes) { + _this.options.acceptedFiles = _this.options.acceptedMimeTypes; + delete _this.options.acceptedMimeTypes; + } + // Backwards compatibility + if (_this.options.renameFilename != null) _this.options.renameFile = function(file) { + return _this.options.renameFilename.call($6mU8w$swchelpers.assertThisInitialized(_this), file.name, file); + }; + if (typeof _this.options.method === "string") _this.options.method = _this.options.method.toUpperCase(); + if ((fallback = _this.getExistingFallback()) && fallback.parentNode) // Remove the fallback + fallback.parentNode.removeChild(fallback); + // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false + if (_this.options.previewsContainer !== false) { + if (_this.options.previewsContainer) _this.previewsContainer = $a601ff30f483e917$export$2e2bcd8739ae039.getElement(_this.options.previewsContainer, "previewsContainer"); + else _this.previewsContainer = _this.element; + } + if (_this.options.clickable) { + if (_this.options.clickable === true) _this.clickableElements = [ + _this.element + ]; + else _this.clickableElements = $a601ff30f483e917$export$2e2bcd8739ae039.getElements(_this.options.clickable, "clickable"); + } + _this.init(); + return _this; + } + $6mU8w$swchelpers.createClass($a601ff30f483e917$export$2e2bcd8739ae039, [ + { + // Returns all files that have been accepted + key: "getAcceptedFiles", + value: function getAcceptedFiles() { + return this.files.filter(function(file) { + return file.accepted; + }).map(function(file) { + return file; + }); + } + }, + { + // Returns all files that have been rejected + // Not sure when that's going to be useful, but added for completeness. + key: "getRejectedFiles", + value: function getRejectedFiles() { + return this.files.filter(function(file) { + return !file.accepted; + }).map(function(file) { + return file; + }); + } + }, + { + key: "getFilesWithStatus", + value: function getFilesWithStatus(status) { + return this.files.filter(function(file) { + return file.status === status; + }).map(function(file) { + return file; + }); + } + }, + { + // Returns all files that are in the queue + key: "getQueuedFiles", + value: function getQueuedFiles() { + return this.getFilesWithStatus($a601ff30f483e917$export$2e2bcd8739ae039.QUEUED); + } + }, + { + key: "getUploadingFiles", + value: function getUploadingFiles() { + return this.getFilesWithStatus($a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING); + } + }, + { + key: "getAddedFiles", + value: function getAddedFiles() { + return this.getFilesWithStatus($a601ff30f483e917$export$2e2bcd8739ae039.ADDED); + } + }, + { + // Files that are either queued or uploading + key: "getActiveFiles", + value: function getActiveFiles() { + return this.files.filter(function(file) { + return file.status === $a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING || file.status === $a601ff30f483e917$export$2e2bcd8739ae039.QUEUED; + }).map(function(file) { + return file; + }); + } + }, + { + // The function that gets called when Dropzone is initialized. You + // can (and should) setup event listeners inside this function. + key: "init", + value: function init() { + var _this12 = this, _this1 = this, _this2 = this, _this3 = this, _this4 = this, _this5 = this, _this6 = this, _this7 = this, _this8 = this, _this9 = this, _this10 = this; + // In case it isn't set already + if (this.element.tagName === "form") this.element.setAttribute("enctype", "multipart/form-data"); + if (this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message")) this.element.appendChild($a601ff30f483e917$export$2e2bcd8739ae039.createElement("
    "))); + if (this.clickableElements.length) { + var _this = this; + var setupHiddenFileInput = function() { + var _this11 = _this; + if (_this.hiddenFileInput) _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput); + _this.hiddenFileInput = document.createElement("input"); + _this.hiddenFileInput.setAttribute("type", "file"); + if (_this.options.maxFiles === null || _this.options.maxFiles > 1) _this.hiddenFileInput.setAttribute("multiple", "multiple"); + _this.hiddenFileInput.className = "dz-hidden-input"; + if (_this.options.acceptedFiles !== null) _this.hiddenFileInput.setAttribute("accept", _this.options.acceptedFiles); + if (_this.options.capture !== null) _this.hiddenFileInput.setAttribute("capture", _this.options.capture); + // Making sure that no one can "tab" into this field. + _this.hiddenFileInput.setAttribute("tabindex", "-1"); + // Not setting `display="none"` because some browsers don't accept clicks + // on elements that aren't displayed. + _this.hiddenFileInput.style.visibility = "hidden"; + _this.hiddenFileInput.style.position = "absolute"; + _this.hiddenFileInput.style.top = "0"; + _this.hiddenFileInput.style.left = "0"; + _this.hiddenFileInput.style.height = "0"; + _this.hiddenFileInput.style.width = "0"; + $a601ff30f483e917$export$2e2bcd8739ae039.getElement(_this.options.hiddenInputContainer, "hiddenInputContainer").appendChild(_this.hiddenFileInput); + _this.hiddenFileInput.addEventListener("change", function() { + var _hiddenFileInput = _this11.hiddenFileInput, files = _hiddenFileInput.files; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + if (files.length) try { + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + _this11.addFile(file); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + _this11.emit("addedfiles", files); + setupHiddenFileInput(); + }); + }; + setupHiddenFileInput(); + } + this.URL = window.URL !== null ? window.URL : window.webkitURL; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + // Setup all event listeners on the Dropzone object itself. + // They're not in @setupEventListeners() because they shouldn't be removed + // again when the dropzone gets disabled. + for(var _iterator = this.events[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var eventName = _step.value; + this.on(eventName, this.options[eventName]); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + this.on("uploadprogress", function() { + return _this12.updateTotalUploadProgress(); + }); + this.on("removedfile", function() { + return _this1.updateTotalUploadProgress(); + }); + this.on("canceled", function(file) { + return _this2.emit("complete", file); + }); + // Emit a `queuecomplete` event if all files finished uploading. + this.on("complete", function(file) { + var _this11 = _this3; + if (_this3.getAddedFiles().length === 0 && _this3.getUploadingFiles().length === 0 && _this3.getQueuedFiles().length === 0) // This needs to be deferred so that `queuecomplete` really triggers after `complete` + return setTimeout(function() { + return _this11.emit("queuecomplete"); + }, 0); + }); + var containsFiles = function containsFiles(e) { + if (e.dataTransfer.types) // Because e.dataTransfer.types is an Object in + // IE, we need to iterate like this instead of + // using e.dataTransfer.types.some() + for(var i = 0; i < e.dataTransfer.types.length; i++){ + if (e.dataTransfer.types[i] === "Files") return true; + } + return false; + }; + var noPropagation = function noPropagation(e) { + // If there are no files, we don't want to stop + // propagation so we don't interfere with other + // drag and drop behaviour. + if (!containsFiles(e)) return; + e.stopPropagation(); + if (e.preventDefault) return e.preventDefault(); + else return e.returnValue = false; + }; + // Create the listeners + this.listeners = [ + { + element: this.element, + events: { + dragstart: function(e) { + return _this4.emit("dragstart", e); + }, + dragenter: function(e) { + noPropagation(e); + return _this5.emit("dragenter", e); + }, + dragover: function(e) { + // Makes it possible to drag files from chrome's download bar + // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar + // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception) + var efct; + try { + efct = e.dataTransfer.effectAllowed; + } catch (error) { + } + e.dataTransfer.dropEffect = "move" === efct || "linkMove" === efct ? "move" : "copy"; + noPropagation(e); + return _this6.emit("dragover", e); + }, + dragleave: function(e) { + return _this7.emit("dragleave", e); + }, + drop: function(e) { + noPropagation(e); + return _this8.drop(e); + }, + dragend: function(e) { + return _this9.emit("dragend", e); + } + } + }, + ]; + this.clickableElements.forEach(function(clickableElement) { + var _this11 = _this10; + return _this10.listeners.push({ + element: clickableElement, + events: { + click: function(evt) { + // Only the actual dropzone or the message element should trigger file selection + if (clickableElement !== _this11.element || evt.target === _this11.element || $a601ff30f483e917$export$2e2bcd8739ae039.elementInside(evt.target, _this11.element.querySelector(".dz-message"))) _this11.hiddenFileInput.click(); // Forward the click + return true; + } + } + }); + }); + this.enable(); + return this.options.init.call(this); + } + }, + { + // Not fully tested yet + key: "destroy", + value: function destroy() { + this.disable(); + this.removeAllFiles(true); + if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) { + this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput); + this.hiddenFileInput = null; + } + delete this.element.dropzone; + return $a601ff30f483e917$export$2e2bcd8739ae039.instances.splice($a601ff30f483e917$export$2e2bcd8739ae039.instances.indexOf(this), 1); + } + }, + { + key: "updateTotalUploadProgress", + value: function updateTotalUploadProgress() { + var totalUploadProgress; + var totalBytesSent = 0; + var totalBytes = 0; + var activeFiles = this.getActiveFiles(); + if (activeFiles.length) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = this.getActiveFiles()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + totalBytesSent += file.upload.bytesSent; + totalBytes += file.upload.total; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + totalUploadProgress = 100 * totalBytesSent / totalBytes; + } else totalUploadProgress = 100; + return this.emit("totaluploadprogress", totalUploadProgress, totalBytes, totalBytesSent); + } + }, + { + // @options.paramName can be a function taking one parameter rather than a string. + // A parameter name for a file is obtained simply by calling this with an index number. + key: "_getParamName", + value: function _getParamName(n) { + if (typeof this.options.paramName === "function") return this.options.paramName(n); + else return "".concat(this.options.paramName).concat(this.options.uploadMultiple ? "[".concat(n, "]") : ""); + } + }, + { + // If @options.renameFile is a function, + // the function will be used to rename the file.name before appending it to the formData + key: "_renameFile", + value: function _renameFile(file) { + if (typeof this.options.renameFile !== "function") return file.name; + return this.options.renameFile(file); + } + }, + { + // Returns a form that can be used as fallback if the browser does not support DragnDrop + // + // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided. + // This code has to pass in IE7 :( + key: "getFallbackForm", + value: function getFallbackForm() { + var existingFallback, form; + if (existingFallback = this.getExistingFallback()) return existingFallback; + var fieldsString = '
    '; + if (this.options.dictFallbackText) fieldsString += "

    ".concat(this.options.dictFallbackText, "

    "); + fieldsString += "
    "); + var fields = $a601ff30f483e917$export$2e2bcd8739ae039.createElement(fieldsString); + if (this.element.tagName !== "FORM") { + form = $a601ff30f483e917$export$2e2bcd8739ae039.createElement("
    ")); + form.appendChild(fields); + } else { + // Make sure that the enctype and method attributes are set properly + this.element.setAttribute("enctype", "multipart/form-data"); + this.element.setAttribute("method", this.options.method); + } + return form != null ? form : fields; + } + }, + { + // Returns the fallback elements if they exist already + // + // This code has to pass in IE7 :( + key: "getExistingFallback", + value: function getExistingFallback() { + var getFallback = function getFallback(elements) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = elements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var el = _step.value; + if (/(^| )fallback($| )/.test(el.className)) return el; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = [ + "div", + "form" + ][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var tagName = _step.value; + var fallback; + if (fallback = getFallback(this.element.getElementsByTagName(tagName))) return fallback; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + }, + { + // Activates all listeners stored in @listeners + key: "setupEventListeners", + value: function setupEventListeners() { + return this.listeners.map(function(elementListeners) { + return (function() { + var result = []; + for(var event in elementListeners.events){ + var listener = elementListeners.events[event]; + result.push(elementListeners.element.addEventListener(event, listener, false)); + } + return result; + })(); + }); + } + }, + { + // Deactivates all listeners stored in @listeners + key: "removeEventListeners", + value: function removeEventListeners() { + return this.listeners.map(function(elementListeners) { + return (function() { + var result = []; + for(var event in elementListeners.events){ + var listener = elementListeners.events[event]; + result.push(elementListeners.element.removeEventListener(event, listener, false)); + } + return result; + })(); + }); + } + }, + { + // Removes all event listeners and cancels all files in the queue or being processed. + key: "disable", + value: function disable() { + var _this = this; + this.clickableElements.forEach(function(element) { + return element.classList.remove("dz-clickable"); + }); + this.removeEventListeners(); + this.disabled = true; + return this.files.map(function(file) { + return _this.cancelUpload(file); + }); + } + }, + { + key: "enable", + value: function enable() { + delete this.disabled; + this.clickableElements.forEach(function(element) { + return element.classList.add("dz-clickable"); + }); + return this.setupEventListeners(); + } + }, + { + // Returns a nicely formatted filesize + key: "filesize", + value: function filesize(size) { + var selectedSize = 0; + var selectedUnit = "b"; + if (size > 0) { + var units = [ + "tb", + "gb", + "mb", + "kb", + "b" + ]; + for(var i = 0; i < units.length; i++){ + var unit = units[i]; + var cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10; + if (size >= cutoff) { + selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i); + selectedUnit = unit; + break; + } + } + selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits + } + return "".concat(selectedSize, " ").concat(this.options.dictFileSizeUnits[selectedUnit]); + } + }, + { + // Adds or removes the `dz-max-files-reached` class from the form. + key: "_updateMaxFilesReachedClass", + value: function _updateMaxFilesReachedClass() { + if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { + if (this.getAcceptedFiles().length === this.options.maxFiles) this.emit("maxfilesreached", this.files); + return this.element.classList.add("dz-max-files-reached"); + } else return this.element.classList.remove("dz-max-files-reached"); + } + }, + { + key: "drop", + value: function drop(e) { + if (!e.dataTransfer) return; + this.emit("drop", e); + // Convert the FileList to an Array + // This is necessary for IE11 + var files = []; + for(var i = 0; i < e.dataTransfer.files.length; i++)files[i] = e.dataTransfer.files[i]; + // Even if it's a folder, files.length will contain the folders. + if (files.length) { + var _dataTransfer = e.dataTransfer, items = _dataTransfer.items; + if (items && items.length && items[0].webkitGetAsEntry != null) // The browser supports dropping of folders, so handle items instead of files + this._addFilesFromItems(items); + else this.handleFiles(files); + } + this.emit("addedfiles", files); + } + }, + { + key: "paste", + value: function paste(e) { + if ($a601ff30f483e917$var$__guard__(e != null ? e.clipboardData : undefined, function(x) { + return x.items; + }) == null) return; + this.emit("paste", e); + var _clipboardData = e.clipboardData, items = _clipboardData.items; + if (items.length) return this._addFilesFromItems(items); + } + }, + { + key: "handleFiles", + value: function handleFiles(files) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + this.addFile(file); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + }, + { + // When a folder is dropped (or files are pasted), items must be handled + // instead of files. + key: "_addFilesFromItems", + value: function _addFilesFromItems(items) { + var _this = this; + return (function() { + var result = []; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var item = _step.value; + var entry; + if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) { + if (entry.isFile) result.push(_this.addFile(item.getAsFile())); + else if (entry.isDirectory) // Append all files from that directory to files + result.push(_this._addFilesFromDirectory(entry, entry.name)); + else result.push(undefined); + } else if (item.getAsFile != null) { + if (item.kind == null || item.kind === "file") result.push(_this.addFile(item.getAsFile())); + else result.push(undefined); + } else result.push(undefined); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + return result; + })(); + } + }, + { + // Goes through the directory, and adds each file it finds recursively + key: "_addFilesFromDirectory", + value: function _addFilesFromDirectory(directory, path) { + var _this = this; + var dirReader = directory.createReader(); + var errorHandler = function(error) { + return $a601ff30f483e917$var$__guardMethod__(console, "log", function(o) { + return o.log(error); + }); + }; + var readEntries = function() { + var _this1 = _this; + return dirReader.readEntries(function(entries) { + if (entries.length > 0) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var entry = _step.value; + var _this2 = _this1; + if (entry.isFile) entry.file(function(file) { + if (_this2.options.ignoreHiddenFiles && file.name.substring(0, 1) === ".") return; + file.fullPath = "".concat(path, "/").concat(file.name); + return _this2.addFile(file); + }); + else if (entry.isDirectory) _this1._addFilesFromDirectory(entry, "".concat(path, "/").concat(entry.name)); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + // Recursively call readEntries() again, since browser only handle + // the first 100 entries. + // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries + readEntries(); + } + return null; + }, errorHandler); + }; + return readEntries(); + } + }, + { + // If `done()` is called without argument the file is accepted + // If you call it with an error message, the file is rejected + // (This allows for asynchronous validation) + // + // This function checks the filesize, and if the file.type passes the + // `acceptedFiles` check. + key: "accept", + value: function accept(file, done) { + if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1048576) done(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(file.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)); + else if (!$a601ff30f483e917$export$2e2bcd8739ae039.isValidFile(file, this.options.acceptedFiles)) done(this.options.dictInvalidFileType); + else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { + done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)); + this.emit("maxfilesexceeded", file); + } else this.options.accept.call(this, file, done); + } + }, + { + key: "addFile", + value: function addFile(file) { + var _this = this; + file.upload = { + uuid: $a601ff30f483e917$export$2e2bcd8739ae039.uuidv4(), + progress: 0, + // Setting the total upload size to file.size for the beginning + // It's actual different than the size to be transmitted. + total: file.size, + bytesSent: 0, + filename: this._renameFile(file) + }; + this.files.push(file); + file.status = $a601ff30f483e917$export$2e2bcd8739ae039.ADDED; + this.emit("addedfile", file); + this._enqueueThumbnail(file); + this.accept(file, function(error) { + if (error) { + file.accepted = false; + _this._errorProcessing([ + file + ], error); // Will set the file.status + } else { + file.accepted = true; + if (_this.options.autoQueue) _this.enqueueFile(file); + // Will set .accepted = true + } + _this._updateMaxFilesReachedClass(); + }); + } + }, + { + // Wrapper for enqueueFile + key: "enqueueFiles", + value: function enqueueFiles(files) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + this.enqueueFile(file); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + return null; + } + }, + { + key: "enqueueFile", + value: function enqueueFile(file) { + if (file.status === $a601ff30f483e917$export$2e2bcd8739ae039.ADDED && file.accepted === true) { + var _this = this; + file.status = $a601ff30f483e917$export$2e2bcd8739ae039.QUEUED; + if (this.options.autoProcessQueue) return setTimeout(function() { + return _this.processQueue(); + }, 0); // Deferring the call + } else throw new Error("This file can't be queued because it has already been processed or was rejected."); + } + }, + { + key: "_enqueueThumbnail", + value: function _enqueueThumbnail(file) { + if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1048576) { + var _this = this; + this._thumbnailQueue.push(file); + return setTimeout(function() { + return _this._processThumbnailQueue(); + }, 0); // Deferring the call + } + } + }, + { + key: "_processThumbnailQueue", + value: function _processThumbnailQueue() { + var _this = this; + if (this._processingThumbnail || this._thumbnailQueue.length === 0) return; + this._processingThumbnail = true; + var file = this._thumbnailQueue.shift(); + return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, function(dataUrl) { + _this.emit("thumbnail", file, dataUrl); + _this._processingThumbnail = false; + return _this._processThumbnailQueue(); + }); + } + }, + { + // Can be called by the user to remove a file + key: "removeFile", + value: function removeFile(file) { + if (file.status === $a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING) this.cancelUpload(file); + this.files = $a601ff30f483e917$var$without(this.files, file); + this.emit("removedfile", file); + if (this.files.length === 0) return this.emit("reset"); + } + }, + { + // Removes all files that aren't currently processed from the list + key: "removeAllFiles", + value: function removeAllFiles(cancelIfNecessary) { + // Create a copy of files since removeFile() changes the @files array. + if (cancelIfNecessary == null) cancelIfNecessary = false; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = this.files.slice()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + if (file.status !== $a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING || cancelIfNecessary) this.removeFile(file); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + return null; + } + }, + { + // Resizes an image before it gets sent to the server. This function is the default behavior of + // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with + // the resized blob. + key: "resizeImage", + value: function resizeImage(file, width, height, resizeMethod, callback) { + var _this = this; + return this.createThumbnail(file, width, height, resizeMethod, true, function(dataUrl, canvas) { + if (canvas == null) // The image has not been resized + return callback(file); + else { + var _options = _this.options, resizeMimeType = _options.resizeMimeType; + if (resizeMimeType == null) resizeMimeType = file.type; + var resizedDataURL = canvas.toDataURL(resizeMimeType, _this.options.resizeQuality); + if (resizeMimeType === "image/jpeg" || resizeMimeType === "image/jpg") // Now add the original EXIF information + resizedDataURL = $a601ff30f483e917$var$ExifRestore.restore(file.dataURL, resizedDataURL); + return callback($a601ff30f483e917$export$2e2bcd8739ae039.dataURItoBlob(resizedDataURL)); + } + }); + } + }, + { + key: "createThumbnail", + value: function createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) { + var _this = this; + var fileReader = new FileReader(); + fileReader.onload = function() { + file.dataURL = fileReader.result; + // Don't bother creating a thumbnail for SVG images since they're vector + if (file.type === "image/svg+xml") { + if (callback != null) callback(fileReader.result); + return; + } + _this.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback); + }; + fileReader.readAsDataURL(file); + } + }, + { + // `mockFile` needs to have these attributes: + // + // { name: 'name', size: 12345, imageUrl: '' } + // + // `callback` will be invoked when the image has been downloaded and displayed. + // `crossOrigin` will be added to the `img` tag when accessing the file. + key: "displayExistingFile", + value: function displayExistingFile(mockFile, imageUrl, callback, crossOrigin, param) { + var resizeThumbnail = param === void 0 ? true : param; + this.emit("addedfile", mockFile); + this.emit("complete", mockFile); + if (!resizeThumbnail) { + this.emit("thumbnail", mockFile, imageUrl); + if (callback) callback(); + } else { + var _this = this; + var onDone = function(thumbnail) { + _this.emit("thumbnail", mockFile, thumbnail); + if (callback) callback(); + }; + mockFile.dataURL = imageUrl; + this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, this.options.fixOrientation, onDone, crossOrigin); + } + } + }, + { + key: "createThumbnailFromUrl", + value: function createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) { + var _this = this; + // Not using `new Image` here because of a bug in latest Chrome versions. + // See https://github.com/enyo/dropzone/pull/226 + var img = document.createElement("img"); + if (crossOrigin) img.crossOrigin = crossOrigin; + // fixOrientation is not needed anymore with browsers handling imageOrientation + fixOrientation = getComputedStyle(document.body)["imageOrientation"] == "from-image" ? false : fixOrientation; + img.onload = function() { + var _this1 = _this; + var loadExif = function(callback) { + return callback(1); + }; + if (typeof EXIF !== "undefined" && EXIF !== null && fixOrientation) loadExif = function(callback) { + return EXIF.getData(img, function() { + return callback(EXIF.getTag(this, "Orientation")); + }); + }; + return loadExif(function(orientation) { + file.width = img.width; + file.height = img.height; + var resizeInfo = _this1.options.resize.call(_this1, file, width, height, resizeMethod); + var canvas = document.createElement("canvas"); + var ctx = canvas.getContext("2d"); + canvas.width = resizeInfo.trgWidth; + canvas.height = resizeInfo.trgHeight; + if (orientation > 4) { + canvas.width = resizeInfo.trgHeight; + canvas.height = resizeInfo.trgWidth; + } + switch(orientation){ + case 2: + // horizontal flip + ctx.translate(canvas.width, 0); + ctx.scale(-1, 1); + break; + case 3: + // 180° rotate left + ctx.translate(canvas.width, canvas.height); + ctx.rotate(Math.PI); + break; + case 4: + // vertical flip + ctx.translate(0, canvas.height); + ctx.scale(1, -1); + break; + case 5: + // vertical flip + 90 rotate right + ctx.rotate(0.5 * Math.PI); + ctx.scale(1, -1); + break; + case 6: + // 90° rotate right + ctx.rotate(0.5 * Math.PI); + ctx.translate(0, -canvas.width); + break; + case 7: + // horizontal flip + 90 rotate right + ctx.rotate(0.5 * Math.PI); + ctx.translate(canvas.height, -canvas.width); + ctx.scale(-1, 1); + break; + case 8: + // 90° rotate left + ctx.rotate(-0.5 * Math.PI); + ctx.translate(-canvas.height, 0); + break; + } + // This is a bugfix for iOS' scaling bug. + $a601ff30f483e917$var$drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight); + var thumbnail = canvas.toDataURL("image/png"); + if (callback != null) return callback(thumbnail, canvas); + }); + }; + if (callback != null) img.onerror = callback; + return img.src = file.dataURL; + } + }, + { + // Goes through the queue and processes files if there aren't too many already. + key: "processQueue", + value: function processQueue() { + var _options = this.options, parallelUploads = _options.parallelUploads; + var processingLength = this.getUploadingFiles().length; + var i = processingLength; + // There are already at least as many files uploading than should be + if (processingLength >= parallelUploads) return; + var queuedFiles = this.getQueuedFiles(); + if (!(queuedFiles.length > 0)) return; + if (this.options.uploadMultiple) // The files should be uploaded in one request + return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength)); + else while(i < parallelUploads){ + if (!queuedFiles.length) return; + // Nothing left to process + this.processFile(queuedFiles.shift()); + i++; + } + } + }, + { + // Wrapper for `processFiles` + key: "processFile", + value: function processFile(file) { + return this.processFiles([ + file + ]); + } + }, + { + // Loads the file, then calls finishedLoading() + key: "processFiles", + value: function processFiles(files) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + file.processing = true; // Backwards compatibility + file.status = $a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING; + this.emit("processing", file); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + if (this.options.uploadMultiple) this.emit("processingmultiple", files); + return this.uploadFiles(files); + } + }, + { + key: "_getFilesWithXhr", + value: function _getFilesWithXhr(xhr) { + var files; + return files = this.files.filter(function(file) { + return file.xhr === xhr; + }).map(function(file) { + return file; + }); + } + }, + { + // Cancels the file upload and sets the status to CANCELED + // **if** the file is actually being uploaded. + // If it's still in the queue, the file is being removed from it and the status + // set to CANCELED. + key: "cancelUpload", + value: function cancelUpload(file) { + if (file.status === $a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING) { + var groupedFiles = this._getFilesWithXhr(file.xhr); + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = groupedFiles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var groupedFile = _step.value; + groupedFile.status = $a601ff30f483e917$export$2e2bcd8739ae039.CANCELED; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + if (typeof file.xhr !== "undefined") file.xhr.abort(); + var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined; + try { + for(var _iterator1 = groupedFiles[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){ + var groupedFile = _step1.value; + this.emit("canceled", groupedFile); + } + } catch (err) { + _didIteratorError1 = true; + _iteratorError1 = err; + } finally{ + try { + if (!_iteratorNormalCompletion1 && _iterator1.return != null) { + _iterator1.return(); + } + } finally{ + if (_didIteratorError1) { + throw _iteratorError1; + } + } + } + if (this.options.uploadMultiple) this.emit("canceledmultiple", groupedFiles); + } else if (file.status === $a601ff30f483e917$export$2e2bcd8739ae039.ADDED || file.status === $a601ff30f483e917$export$2e2bcd8739ae039.QUEUED) { + file.status = $a601ff30f483e917$export$2e2bcd8739ae039.CANCELED; + this.emit("canceled", file); + if (this.options.uploadMultiple) this.emit("canceledmultiple", [ + file + ]); + } + if (this.options.autoProcessQueue) return this.processQueue(); + } + }, + { + key: "resolveOption", + value: function resolveOption(option) { + for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){ + args[_key - 1] = arguments[_key]; + } + if (typeof option === "function") return option.apply(this, args); + return option; + } + }, + { + key: "uploadFile", + value: function uploadFile(file) { + return this.uploadFiles([ + file + ]); + } + }, + { + key: "uploadFiles", + value: function uploadFiles(files) { + var _this = this; + this._transformFiles(files, function(transformedFiles) { + if (_this.options.chunking) { + // Chunking is not allowed to be used with `uploadMultiple` so we know + // that there is only __one__file. + var transformedFile = transformedFiles[0]; + files[0].upload.chunked = _this.options.chunking && (_this.options.forceChunking || transformedFile.size > _this.options.chunkSize); + files[0].upload.totalChunkCount = Math.ceil(transformedFile.size / _this.options.chunkSize); + } + if (files[0].upload.chunked) { + var _this1 = _this, _this4 = _this; + // This file should be sent in chunks! + // If the chunking option is set, we **know** that there can only be **one** file, since + // uploadMultiple is not allowed with this option. + var file = files[0]; + var transformedFile = transformedFiles[0]; + var startedChunkCount = 0; + file.upload.chunks = []; + var handleNextChunk = function() { + var chunkIndex = 0; + // Find the next item in file.upload.chunks that is not defined yet. + while(file.upload.chunks[chunkIndex] !== undefined)chunkIndex++; + // This means, that all chunks have already been started. + if (chunkIndex >= file.upload.totalChunkCount) return; + startedChunkCount++; + var start = chunkIndex * _this1.options.chunkSize; + var end = Math.min(start + _this1.options.chunkSize, transformedFile.size); + var dataBlock = { + name: _this1._getParamName(0), + data: transformedFile.webkitSlice ? transformedFile.webkitSlice(start, end) : transformedFile.slice(start, end), + filename: file.upload.filename, + chunkIndex: chunkIndex + }; + file.upload.chunks[chunkIndex] = { + file: file, + index: chunkIndex, + dataBlock: dataBlock, + status: $a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING, + progress: 0, + retries: 0 + }; + _this1._uploadData(files, [ + dataBlock + ]); + }; + file.upload.finishedChunkUpload = function(chunk, response) { + var _this5 = _this4; + var allFinished = true; + chunk.status = $a601ff30f483e917$export$2e2bcd8739ae039.SUCCESS; + // Clear the data from the chunk + chunk.dataBlock = null; + chunk.response = chunk.xhr.responseText; + chunk.responseHeaders = chunk.xhr.getAllResponseHeaders(); + // Leaving this reference to xhr will cause memory leaks. + chunk.xhr = null; + for(var i = 0; i < file.upload.totalChunkCount; i++){ + if (file.upload.chunks[i] === undefined) return handleNextChunk(); + if (file.upload.chunks[i].status !== $a601ff30f483e917$export$2e2bcd8739ae039.SUCCESS) allFinished = false; + } + if (allFinished) _this4.options.chunksUploaded(file, function() { + _this5._finished(files, response, null); + }); + }; + if (_this.options.parallelChunkUploads) for(var i = 0; i < file.upload.totalChunkCount; i++)handleNextChunk(); + else handleNextChunk(); + } else { + var dataBlocks = []; + for(var i = 0; i < files.length; i++)dataBlocks[i] = { + name: _this._getParamName(i), + data: transformedFiles[i], + filename: files[i].upload.filename + }; + _this._uploadData(files, dataBlocks); + } + }); + } + }, + { + /// Returns the right chunk for given file and xhr + key: "_getChunk", + value: function _getChunk(file, xhr) { + for(var i = 0; i < file.upload.totalChunkCount; i++){ + if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) return file.upload.chunks[i]; + } + } + }, + { + // This function actually uploads the file(s) to the server. + // + // If dataBlocks contains the actual data to upload (meaning, that this could + // either be transformed files, or individual chunks for chunked upload) then + // they will be used for the actual data to upload. + key: "_uploadData", + value: function _uploadData(files, dataBlocks) { + var _this = this, _this7 = this, _this8 = this, _this9 = this; + var xhr = new XMLHttpRequest(); + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + // Put the xhr object in the file objects to be able to reference it later. + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + file.xhr = xhr; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + if (files[0].upload.chunked) // Put the xhr object in the right chunk object, so it can be associated + // later, and found with _getChunk. + files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr; + var method = this.resolveOption(this.options.method, files, dataBlocks); + var url = this.resolveOption(this.options.url, files, dataBlocks); + xhr.open(method, url, true); + // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8 + var timeout = this.resolveOption(this.options.timeout, files); + if (timeout) xhr.timeout = this.resolveOption(this.options.timeout, files); + // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179 + xhr.withCredentials = !!this.options.withCredentials; + xhr.onload = function(e) { + _this._finishedUploading(files, xhr, e); + }; + xhr.ontimeout = function() { + _this7._handleUploadError(files, xhr, "Request timedout after ".concat(_this7.options.timeout / 1000, " seconds")); + }; + xhr.onerror = function() { + _this8._handleUploadError(files, xhr); + }; + // Some browsers do not have the .upload property + var progressObj = xhr.upload != null ? xhr.upload : xhr; + progressObj.onprogress = function(e) { + return _this9._updateFilesUploadProgress(files, xhr, e); + }; + var headers = this.options.defaultHeaders ? { + Accept: "application/json", + "Cache-Control": "no-cache", + "X-Requested-With": "XMLHttpRequest" + } : { + }; + if (this.options.binaryBody) headers["Content-Type"] = files[0].type; + if (this.options.headers) $parcel$interopDefault($6mU8w$justextend)(headers, this.options.headers); + for(var headerName in headers){ + var headerValue = headers[headerName]; + if (headerValue) xhr.setRequestHeader(headerName, headerValue); + } + if (this.options.binaryBody) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + // Since the file is going to be sent as binary body, it doesn't make + // any sense to generate `FormData` for it. + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + this.emit("sending", file, xhr); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + if (this.options.uploadMultiple) this.emit("sendingmultiple", files, xhr); + this.submitRequest(xhr, null, files); + } else { + var formData = new FormData(); + // Adding all @options parameters + if (this.options.params) { + var additionalParams = this.options.params; + if (typeof additionalParams === "function") additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null); + for(var key in additionalParams){ + var value = additionalParams[key]; + if (Array.isArray(value)) // The additional parameter contains an array, + // so lets iterate over it to attach each value + // individually. + for(var i = 0; i < value.length; i++)formData.append(key, value[i]); + else formData.append(key, value); + } + } + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + // Let the user add additional data if necessary + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + this.emit("sending", file, xhr, formData); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + if (this.options.uploadMultiple) this.emit("sendingmultiple", files, xhr, formData); + this._addFormElementData(formData); + // Finally add the files + // Has to be last because some servers (eg: S3) expect the file to be the last parameter + for(var i = 0; i < dataBlocks.length; i++){ + var dataBlock = dataBlocks[i]; + formData.append(dataBlock.name, dataBlock.data, dataBlock.filename); + } + this.submitRequest(xhr, formData, files); + } + } + }, + { + // Transforms all files with this.options.transformFile and invokes done with the transformed files when done. + key: "_transformFiles", + value: function _transformFiles(files, done) { + var _this = this, _loop = function(i) { + _this.options.transformFile.call(_this, files[i], function(transformedFile) { + transformedFiles[i] = transformedFile; + if (++doneCounter === files.length) done(transformedFiles); + }); + }; + var transformedFiles = []; + // Clumsy way of handling asynchronous calls, until I get to add a proper Future library. + var doneCounter = 0; + for(var i = 0; i < files.length; i++)_loop(i); + } + }, + { + // Takes care of adding other input elements of the form to the AJAX request + key: "_addFormElementData", + value: function _addFormElementData(formData) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + // Take care of other input elements + if (this.element.tagName === "FORM") try { + for(var _iterator = this.element.querySelectorAll("input, textarea, select, button")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var input = _step.value; + var inputName = input.getAttribute("name"); + var inputType = input.getAttribute("type"); + if (inputType) inputType = inputType.toLowerCase(); + // If the input doesn't have a name, we can't use it. + if (typeof inputName === "undefined" || inputName === null) continue; + if (input.tagName === "SELECT" && input.hasAttribute("multiple")) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + // Possibly multiple values + for(var _iterator = input.options[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var option = _step.value; + if (option.selected) formData.append(inputName, option.value); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } else if (!inputType || inputType !== "checkbox" && inputType !== "radio" || input.checked) formData.append(inputName, input.value); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + }, + { + // Invoked when there is new progress information about given files. + // If e is not provided, it is assumed that the upload is finished. + key: "_updateFilesUploadProgress", + value: function _updateFilesUploadProgress(files, xhr, e) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + if (!files[0].upload.chunked) try { + // Handle file uploads without chunking + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + if (file.upload.total && file.upload.bytesSent && file.upload.bytesSent == file.upload.total) continue; + if (e) { + file.upload.progress = 100 * e.loaded / e.total; + file.upload.total = e.total; + file.upload.bytesSent = e.loaded; + } else { + // No event, so we're at 100% + file.upload.progress = 100; + file.upload.bytesSent = file.upload.total; + } + this.emit("uploadprogress", file, file.upload.progress, file.upload.bytesSent); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + else { + // Handle chunked file uploads + // Chunked upload is not compatible with uploading multiple files in one + // request, so we know there's only one file. + var file = files[0]; + // Since this is a chunked upload, we need to update the appropriate chunk + // progress. + var chunk = this._getChunk(file, xhr); + if (e) { + chunk.progress = 100 * e.loaded / e.total; + chunk.total = e.total; + chunk.bytesSent = e.loaded; + } else { + // No event, so we're at 100% + chunk.progress = 100; + chunk.bytesSent = chunk.total; + } + // Now tally the *file* upload progress from its individual chunks + file.upload.progress = 0; + file.upload.total = 0; + file.upload.bytesSent = 0; + for(var i = 0; i < file.upload.totalChunkCount; i++)if (file.upload.chunks[i] && typeof file.upload.chunks[i].progress !== "undefined") { + file.upload.progress += file.upload.chunks[i].progress; + file.upload.total += file.upload.chunks[i].total; + file.upload.bytesSent += file.upload.chunks[i].bytesSent; + } + // Since the process is a percentage, we need to divide by the amount of + // chunks we've used. + file.upload.progress = file.upload.progress / file.upload.totalChunkCount; + this.emit("uploadprogress", file, file.upload.progress, file.upload.bytesSent); + } + } + }, + { + key: "_finishedUploading", + value: function _finishedUploading(files, xhr, e) { + var response; + if (files[0].status === $a601ff30f483e917$export$2e2bcd8739ae039.CANCELED) return; + if (xhr.readyState !== 4) return; + if (xhr.responseType !== "arraybuffer" && xhr.responseType !== "blob") { + response = xhr.responseText; + if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) try { + response = JSON.parse(response); + } catch (error) { + e = error; + response = "Invalid JSON response from server."; + } + } + this._updateFilesUploadProgress(files, xhr); + if (!(200 <= xhr.status && xhr.status < 300)) this._handleUploadError(files, xhr, response); + else if (files[0].upload.chunked) files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr), response); + else this._finished(files, response, e); + } + }, + { + key: "_handleUploadError", + value: function _handleUploadError(files, xhr, response) { + if (files[0].status === $a601ff30f483e917$export$2e2bcd8739ae039.CANCELED) return; + if (files[0].upload.chunked && this.options.retryChunks) { + var chunk = this._getChunk(files[0], xhr); + if ((chunk.retries++) < this.options.retryChunksLimit) { + this._uploadData(files, [ + chunk.dataBlock + ]); + return; + } else console.warn("Retried this chunk too often. Giving up."); + } + this._errorProcessing(files, response || this.options.dictResponseError.replace("{{statusCode}}", xhr.status), xhr); + } + }, + { + key: "submitRequest", + value: function submitRequest(xhr, formData, files) { + if (xhr.readyState != 1) { + console.warn("Cannot send this request because the XMLHttpRequest.readyState is not OPENED."); + return; + } + if (this.options.binaryBody) { + if (files[0].upload.chunked) { + var chunk = this._getChunk(files[0], xhr); + xhr.send(chunk.dataBlock.data); + } else xhr.send(files[0]); + } else xhr.send(formData); + } + }, + { + // Called internally when processing is finished. + // Individual callbacks have to be called in the appropriate sections. + key: "_finished", + value: function _finished(files, responseText, e) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + file.status = $a601ff30f483e917$export$2e2bcd8739ae039.SUCCESS; + this.emit("success", file, responseText, e); + this.emit("complete", file); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + if (this.options.uploadMultiple) { + this.emit("successmultiple", files, responseText, e); + this.emit("completemultiple", files); + } + if (this.options.autoProcessQueue) return this.processQueue(); + } + }, + { + // Called internally when processing is finished. + // Individual callbacks have to be called in the appropriate sections. + key: "_errorProcessing", + value: function _errorProcessing(files, message, xhr) { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var file = _step.value; + file.status = $a601ff30f483e917$export$2e2bcd8739ae039.ERROR; + this.emit("error", file, message, xhr); + this.emit("complete", file); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + if (this.options.uploadMultiple) { + this.emit("errormultiple", files, message, xhr); + this.emit("completemultiple", files); + } + if (this.options.autoProcessQueue) return this.processQueue(); + } + } + ], [ + { + key: "initClass", + value: function initClass() { + // Exposing the emitter class, mainly for tests + this.prototype.Emitter = $b1d17cfb1d15c36a$export$2e2bcd8739ae039; + /* + This is a list of all available events you can register on a dropzone object. + + You can register an event handler like this: + + dropzone.on("dragEnter", function() { }); + + */ this.prototype.events = [ + "drop", + "dragstart", + "dragend", + "dragenter", + "dragover", + "dragleave", + "addedfile", + "addedfiles", + "removedfile", + "thumbnail", + "error", + "errormultiple", + "processing", + "processingmultiple", + "uploadprogress", + "totaluploadprogress", + "sending", + "sendingmultiple", + "success", + "successmultiple", + "canceled", + "canceledmultiple", + "complete", + "completemultiple", + "reset", + "maxfilesexceeded", + "maxfilesreached", + "queuecomplete", + ]; + this.prototype._thumbnailQueue = []; + this.prototype._processingThumbnail = false; + } + }, + { + key: "uuidv4", + value: function uuidv4() { + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) { + var r = Math.random() * 16 | 0, v = c === "x" ? r : r & 3 | 8; + return v.toString(16); + }); + } + } + ]); + return $a601ff30f483e917$export$2e2bcd8739ae039; +}($b1d17cfb1d15c36a$export$2e2bcd8739ae039); +$a601ff30f483e917$export$2e2bcd8739ae039.initClass(); +// This is a map of options for your different dropzones. Add configurations +// to this object for your different dropzone elemens. +// +// Example: +// +// Dropzone.options.myDropzoneElementId = { maxFilesize: 1 }; +// +// And in html: +// +//
    +$a601ff30f483e917$export$2e2bcd8739ae039.options = { +}; +// Returns the options for an element or undefined if none available. +$a601ff30f483e917$export$2e2bcd8739ae039.optionsForElement = function(element) { + // Get the `Dropzone.options.elementId` for this element if it exists + if (element.getAttribute("id")) return $a601ff30f483e917$export$2e2bcd8739ae039.options[$a601ff30f483e917$var$camelize(element.getAttribute("id"))]; + else return undefined; +}; +// Holds a list of all dropzone instances +$a601ff30f483e917$export$2e2bcd8739ae039.instances = []; +// Returns the dropzone for given element if any +$a601ff30f483e917$export$2e2bcd8739ae039.forElement = function(element) { + if (typeof element === "string") element = document.querySelector(element); + if ((element != null ? element.dropzone : undefined) == null) throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone."); + return element.dropzone; +}; +// Looks for all .dropzone elements and creates a dropzone for them +$a601ff30f483e917$export$2e2bcd8739ae039.discover = function() { + var dropzones; + if (document.querySelectorAll) dropzones = document.querySelectorAll(".dropzone"); + else { + dropzones = []; + // IE :( + var checkElements = function(elements) { + return (function() { + var result = []; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = elements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var el = _step.value; + if (/(^| )dropzone($| )/.test(el.className)) result.push(dropzones.push(el)); + else result.push(undefined); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + return result; + })(); + }; + checkElements(document.getElementsByTagName("div")); + checkElements(document.getElementsByTagName("form")); + } + return (function() { + var result = []; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = dropzones[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var dropzone = _step.value; + // Create a dropzone unless auto discover has been disabled for specific element + if ($a601ff30f483e917$export$2e2bcd8739ae039.optionsForElement(dropzone) !== false) result.push(new $a601ff30f483e917$export$2e2bcd8739ae039(dropzone)); + else result.push(undefined); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + return result; + })(); +}; +// Some browsers support drag and drog functionality, but not correctly. +// +// So I created a blocklist of userAgents. Yes, yes. Browser sniffing, I know. +// But what to do when browsers *theoretically* support an API, but crash +// when using it. +// +// This is a list of regular expressions tested against navigator.userAgent +// +// ** It should only be used on browser that *do* support the API, but +// incorrectly ** +$a601ff30f483e917$export$2e2bcd8739ae039.blockedBrowsers = [ + // The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API. + /opera.*(Macintosh|Windows Phone).*version\/12/i, +]; +// Checks if the browser is supported +$a601ff30f483e917$export$2e2bcd8739ae039.isBrowserSupported = function() { + var capableBrowser = true; + if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) { + if (!("classList" in document.createElement("a"))) capableBrowser = false; + else { + if ($a601ff30f483e917$export$2e2bcd8739ae039.blacklistedBrowsers !== undefined) // Since this has been renamed, this makes sure we don't break older + // configuration. + $a601ff30f483e917$export$2e2bcd8739ae039.blockedBrowsers = $a601ff30f483e917$export$2e2bcd8739ae039.blacklistedBrowsers; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + // The browser supports the API, but may be blocked. + for(var _iterator = $a601ff30f483e917$export$2e2bcd8739ae039.blockedBrowsers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var regex = _step.value; + if (regex.test(navigator.userAgent)) { + capableBrowser = false; + continue; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + } else capableBrowser = false; + return capableBrowser; +}; +$a601ff30f483e917$export$2e2bcd8739ae039.dataURItoBlob = function(dataURI) { + // convert base64 to raw binary data held in a string + // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this + var byteString = atob(dataURI.split(",")[1]); + // separate out the mime component + var mimeString = dataURI.split(",")[0].split(":")[1].split(";")[0]; + // write the bytes of the string to an ArrayBuffer + var ab = new ArrayBuffer(byteString.length); + var ia = new Uint8Array(ab); + for(var i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--)ia[i] = byteString.charCodeAt(i); + // write the ArrayBuffer to a blob + return new Blob([ + ab + ], { + type: mimeString + }); +}; +// Returns an array without the rejected item +var $a601ff30f483e917$var$without = function(list, rejectedItem) { + return list.filter(function(item) { + return item !== rejectedItem; + }).map(function(item) { + return item; + }); +}; +// abc-def_ghi -> abcDefGhi +var $a601ff30f483e917$var$camelize = function(str) { + return str.replace(/[\-_](\w)/g, function(match) { + return match.charAt(1).toUpperCase(); + }); +}; +// Creates an element from string +$a601ff30f483e917$export$2e2bcd8739ae039.createElement = function(string) { + var div = document.createElement("div"); + div.innerHTML = string; + return div.childNodes[0]; +}; +// Tests if given element is inside (or simply is) the container +$a601ff30f483e917$export$2e2bcd8739ae039.elementInside = function(element, container) { + if (element === container) return true; + // Coffeescript doesn't support do/while loops + while(element = element.parentNode){ + if (element === container) return true; + } + return false; +}; +$a601ff30f483e917$export$2e2bcd8739ae039.getElement = function(el, name) { + var element; + if (typeof el === "string") element = document.querySelector(el); + else if (el.nodeType != null) element = el; + if (element == null) throw new Error("Invalid `".concat(name, "` option provided. Please provide a CSS selector or a plain HTML element.")); + return element; +}; +$a601ff30f483e917$export$2e2bcd8739ae039.getElements = function(els, name) { + var el, elements; + if (els instanceof Array) { + elements = []; + try { + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = els[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + el = _step.value; + elements.push(this.getElement(el, name)); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } catch (e) { + elements = null; + } + } else if (typeof els === "string") { + elements = []; + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = document.querySelectorAll(els)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + el = _step.value; + elements.push(el); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } else if (els.nodeType != null) elements = [ + els + ]; + if (elements == null || !elements.length) throw new Error("Invalid `".concat(name, "` option provided. Please provide a CSS selector, a plain HTML element or a list of those.")); + return elements; +}; +// Asks the user the question and calls accepted or rejected accordingly +// +// The default implementation just uses `window.confirm` and then calls the +// appropriate callback. +$a601ff30f483e917$export$2e2bcd8739ae039.confirm = function(question, accepted, rejected) { + if (window.confirm(question)) return accepted(); + else if (rejected != null) return rejected(); +}; +// Validates the mime type like this: +// +// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept +$a601ff30f483e917$export$2e2bcd8739ae039.isValidFile = function(file, acceptedFiles) { + if (!acceptedFiles) return true; + // If there are no accepted mime types, it's OK + acceptedFiles = acceptedFiles.split(","); + var mimeType = file.type; + var baseMimeType = mimeType.replace(/\/.*$/, ""); + var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; + try { + for(var _iterator = acceptedFiles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ + var validType = _step.value; + validType = validType.trim(); + if (validType.charAt(0) === ".") { + if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) return true; + } else if (/\/\*$/.test(validType)) { + // This is something like a image/* mime type + if (baseMimeType === validType.replace(/\/.*$/, "")) return true; + } else { + if (mimeType === validType) return true; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally{ + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally{ + if (_didIteratorError) { + throw _iteratorError; + } + } + } + return false; +}; +// Augment jQuery +if (typeof jQuery !== "undefined" && jQuery !== null) jQuery.fn.dropzone = function(options) { + return this.each(function() { + return new $a601ff30f483e917$export$2e2bcd8739ae039(this, options); + }); +}; +// Dropzone file status codes +$a601ff30f483e917$export$2e2bcd8739ae039.ADDED = "added"; +$a601ff30f483e917$export$2e2bcd8739ae039.QUEUED = "queued"; +// For backwards compatibility. Now, if a file is accepted, it's either queued +// or uploading. +$a601ff30f483e917$export$2e2bcd8739ae039.ACCEPTED = $a601ff30f483e917$export$2e2bcd8739ae039.QUEUED; +$a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING = "uploading"; +$a601ff30f483e917$export$2e2bcd8739ae039.PROCESSING = $a601ff30f483e917$export$2e2bcd8739ae039.UPLOADING; // alias +$a601ff30f483e917$export$2e2bcd8739ae039.CANCELED = "canceled"; +$a601ff30f483e917$export$2e2bcd8739ae039.ERROR = "error"; +$a601ff30f483e917$export$2e2bcd8739ae039.SUCCESS = "success"; +/* + + Bugfix for iOS 6 and 7 + Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios + based on the work of https://github.com/stomita/ios-imagefile-megapixel + + */ // Detecting vertical squash in loaded image. +// Fixes a bug which squash image vertically while drawing into canvas for some images. +// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel +var $a601ff30f483e917$var$detectVerticalSquash = function $a601ff30f483e917$var$detectVerticalSquash(img) { + var iw = img.naturalWidth; + var ih = img.naturalHeight; + var canvas = document.createElement("canvas"); + canvas.width = 1; + canvas.height = ih; + var ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + var ref = ctx.getImageData(1, 0, 1, ih), data = ref.data; + // search image edge pixel position in case it is squashed vertically. + var sy = 0; + var ey = ih; + var py = ih; + while(py > sy){ + var alpha = data[(py - 1) * 4 + 3]; + if (alpha === 0) ey = py; + else sy = py; + py = ey + sy >> 1; + } + var ratio = py / ih; + if (ratio === 0) return 1; + else return ratio; +}; +// A replacement for context.drawImage +// (args are for source and destination). +var $a601ff30f483e917$var$drawImageIOSFix = function $a601ff30f483e917$var$drawImageIOSFix(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) { + var vertSquashRatio = $a601ff30f483e917$var$detectVerticalSquash(img); + return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio); +}; +var $a601ff30f483e917$var$ExifRestore = // Based on MinifyJpeg +// Source: http://www.perry.cz/files/ExifRestorer.js +// http://elicon.blog57.fc2.com/blog-entry-206.html +/*#__PURE__*/ function() { + "use strict"; + function $a601ff30f483e917$var$ExifRestore() { + $6mU8w$swchelpers.classCallCheck(this, $a601ff30f483e917$var$ExifRestore); + } + $6mU8w$swchelpers.createClass($a601ff30f483e917$var$ExifRestore, null, [ + { + key: "initClass", + value: function initClass() { + this.KEY_STR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + } + }, + { + key: "encode64", + value: function encode64(input) { + var output = ""; + var chr1 = undefined; + var chr2 = undefined; + var chr3 = ""; + var enc1 = undefined; + var enc2 = undefined; + var enc3 = undefined; + var enc4 = ""; + var i = 0; + while(true){ + chr1 = input[i++]; + chr2 = input[i++]; + chr3 = input[i++]; + enc1 = chr1 >> 2; + enc2 = (chr1 & 3) << 4 | chr2 >> 4; + enc3 = (chr2 & 15) << 2 | chr3 >> 6; + enc4 = chr3 & 63; + if (isNaN(chr2)) enc3 = enc4 = 64; + else if (isNaN(chr3)) enc4 = 64; + output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4); + chr1 = chr2 = chr3 = ""; + enc1 = enc2 = enc3 = enc4 = ""; + if (!(i < input.length)) break; + } + return output; + } + }, + { + key: "restore", + value: function restore(origFileBase64, resizedFileBase64) { + if (!origFileBase64.match("data:image/jpeg;base64,")) return resizedFileBase64; + var rawImage = this.decode64(origFileBase64.replace("data:image/jpeg;base64,", "")); + var segments = this.slice2Segments(rawImage); + var image = this.exifManipulation(resizedFileBase64, segments); + return "data:image/jpeg;base64,".concat(this.encode64(image)); + } + }, + { + key: "exifManipulation", + value: function exifManipulation(resizedFileBase64, segments) { + var exifArray = this.getExifArray(segments); + var newImageArray = this.insertExif(resizedFileBase64, exifArray); + var aBuffer = new Uint8Array(newImageArray); + return aBuffer; + } + }, + { + key: "getExifArray", + value: function getExifArray(segments) { + var seg = undefined; + var x = 0; + while(x < segments.length){ + seg = segments[x]; + if (seg[0] === 255 & seg[1] === 225) return seg; + x++; + } + return []; + } + }, + { + key: "insertExif", + value: function insertExif(resizedFileBase64, exifArray) { + var imageData = resizedFileBase64.replace("data:image/jpeg;base64,", ""); + var buf = this.decode64(imageData); + var separatePoint = buf.indexOf(255, 3); + var mae = buf.slice(0, separatePoint); + var ato = buf.slice(separatePoint); + var array = mae; + array = array.concat(exifArray); + array = array.concat(ato); + return array; + } + }, + { + key: "slice2Segments", + value: function slice2Segments(rawImageArray) { + var head = 0; + var segments = []; + while(true){ + var length; + if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) break; + if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) head += 2; + else { + length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3]; + var endPoint = head + length + 2; + var seg = rawImageArray.slice(head, endPoint); + segments.push(seg); + head = endPoint; + } + if (head > rawImageArray.length) break; + } + return segments; + } + }, + { + key: "decode64", + value: function decode64(input) { + var output = ""; + var chr1 = undefined; + var chr2 = undefined; + var chr3 = ""; + var enc1 = undefined; + var enc2 = undefined; + var enc3 = undefined; + var enc4 = ""; + var i = 0; + var buf = []; + // remove all characters that are not A-Z, a-z, 0-9, +, /, or = + var base64test = /[^A-Za-z0-9\+\/\=]/g; + if (base64test.exec(input)) console.warn("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\nExpect errors in decoding."); + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + while(true){ + enc1 = this.KEY_STR.indexOf(input.charAt(i++)); + enc2 = this.KEY_STR.indexOf(input.charAt(i++)); + enc3 = this.KEY_STR.indexOf(input.charAt(i++)); + enc4 = this.KEY_STR.indexOf(input.charAt(i++)); + chr1 = enc1 << 2 | enc2 >> 4; + chr2 = (enc2 & 15) << 4 | enc3 >> 2; + chr3 = (enc3 & 3) << 6 | enc4; + buf.push(chr1); + if (enc3 !== 64) buf.push(chr2); + if (enc4 !== 64) buf.push(chr3); + chr1 = chr2 = chr3 = ""; + enc1 = enc2 = enc3 = enc4 = ""; + if (!(i < input.length)) break; + } + return buf; + } + } + ]); + return $a601ff30f483e917$var$ExifRestore; +}(); +$a601ff30f483e917$var$ExifRestore.initClass(); +/* + * contentloaded.js + * + * Author: Diego Perini (diego.perini at gmail.com) + * Summary: cross-browser wrapper for DOMContentLoaded + * Updated: 20101020 + * License: MIT + * Version: 1.2 + * + * URL: + * http://javascript.nwbox.com/ContentLoaded/ + * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE + */ // @win window reference +// @fn function reference +var $a601ff30f483e917$var$contentLoaded = function $a601ff30f483e917$var$contentLoaded(win, fn) { + var done = false; + var top = true; + var doc = win.document; + var root = doc.documentElement; + var add = doc.addEventListener ? "addEventListener" : "attachEvent"; + var rem = doc.addEventListener ? "removeEventListener" : "detachEvent"; + var pre = doc.addEventListener ? "" : "on"; + var init = function(e) { + if (e.type === "readystatechange" && doc.readyState !== "complete") return; + (e.type === "load" ? win : doc)[rem](pre + e.type, init, false); + if (!done && (done = true)) return fn.call(win, e.type || e); + }; + var poll = function() { + try { + root.doScroll("left"); + } catch (e) { + setTimeout(poll, 50); + return; + } + return init("poll"); + }; + if (doc.readyState !== "complete") { + if (doc.createEventObject && root.doScroll) { + try { + top = !win.frameElement; + } catch (error) { + } + if (top) poll(); + } + doc[add](pre + "DOMContentLoaded", init, false); + doc[add](pre + "readystatechange", init, false); + return win[add](pre + "load", init, false); + } +}; +function $a601ff30f483e917$var$__guard__(value, transform) { + return typeof value !== "undefined" && value !== null ? transform(value) : undefined; +} +function $a601ff30f483e917$var$__guardMethod__(obj, methodName, transform) { + if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") return transform(obj, methodName); + else return undefined; +} + + +//# sourceMappingURL=dropzone.js.map diff --git a/demo/dist/libs/dropzone/dist/dropzone.js.map b/demo/dist/libs/dropzone/dist/dropzone.js.map new file mode 100644 index 0000000000000000000000000000000000000000..918a5f107f07df2cda3ab4c9baaf3bd3dcac7224 GIT binary patch literal 183078 zcmeFa3wKmUk~R8Qs#&w9@gNI~ZJM^ad!{Ir3K;|DWeiQXaTdGvCa;AKgnnCm)gV&dA8jQ@>t07{7hHcep#h^39dCj(?kj&3AWJJ`DQ( zhbwz``u(kyNB#bzwY71-zhT8|*HHPrKd-&1UtaVFU))(4_WK_OEB$`|m%+*$)gK0H zsKCpp-ygDeV+EzdwF7|P5O}^nX3daKgOz*z{ylqDS*cjtz0)6Tt!(!Do7V7IzyFM2 zNA0rGgkAc5wN~%<0|I^{{PqVcyBP1yKs9*NKwaPxs}U%<(;h9W%eZC4;UCUut^uwXHJr9jwhD#9`rj-9@0$ zuSS|+B=_|~^5EwMDS(Visg2qb8?xt#aS$Wbny6axn+T5}#8cq?g6&_*m|m+{SNKp1-bFk2hgJm(ex#ozF48&d;Qu6 zJtqM)X+nJ|NUR?06y0(26D^{TS}EScT>!uJ<2y!-q~g@9t=-D;3^ii0_LWNYxaKeP zDlg^HyQZ}Qktfy} zZJw{7&8TuV>?fiI2C!NW{_w(=aVeo%3t z;Ds7ARF@`cYf#?7p>vUX{($`1y~CN}^&J|;?i~^}zzZsF4q5T#aOG4ls=-^1qbL25 zIwz8P!k@AFe64wBWEf5R{VAU44IH__(~5}HC^1WboR{p9h2kJ^9qv?x#D#1fywqTH z*>~;9T{Z~0A*#L@u6)o7+u#MyA5`(naAmF+R^SEC2QmooZ4c-iXez~v=tivu7)ibE zR_di{p)ZM{VJ%)(2+?g0;5==)GQFm`i1d)Yo1?%`VAtJVG+<82Q6JMUo4&2N$T5V6 z&uriwCN`k7C#3+#r+iiuyd+V=ORp`gg#po2pQCz44|%_=Bo+vawm9lsqr$rZQM?EQ z-ozsPxga~fY}07EC&na#Mxx~V0n7s$Oex(3#tf`=xeBTa9bK?mQP`Ov1^ zl8h-Wrq!|0^Zx6NHy*%Rc-tR-3qEruo)o&?+(BJ`eH4}?JZAWtO$KY5LVMW1KY}NE zaMz%X;uU&<3iuL*P$N?l$#Anje2Ui*yWM5CQ9N6z`iO*}{65AS(in&Avw=RNc(g)w znbLWwi!>Zvq@8Dv)0!X9iMoDvpB#vMA#VE=^tpVPkbeyXA;r4_uj&F0EG1WIBDpjF8bQ*bW0fXC%#m zjXvVwnIl29IUA~1@Le&{nZ0r(+AL|(^mz{Vk`ow7+6Vu74o!?b-#LDv=jU^x<{wET zhFCzIGgfL+P<1{hro}v>k2K;EsxC&nCvp#|eBYbO(ir{SYNUV3_u$3(9DKpJT=I=R z(u#9rmAr^v=WBXeNAN-;oz06x4@&Wbf)X#zHT&!r2x_p4n|*Yn2Rs|aZf|zpNJ}_) zzL3*Q0!4bJGwqS98-yIs)QF9Tx0BJ^}H=MSMcHcAkml z64gA1k*)PzIQ{eNAiYAc_WP32 z{W-K1g~YlZ9rrfa@o)nj&$a^Rq%FSYHqUU;b0+%>nwZ@&*j&MmusnOPS|!o%EA_ih z>dqXl&}PFa1o`<~UbaMl*cBW(KDQfFFJGnPZVSh+&t-}8(J&lyC?qh?q3Z^Qy5U2G z6M0Pp&*oyw)R67LXkUs8{4lf02m!?q`(`lvrZx-dE8)mT{N z5=srRgnD3QYOHpws8Va$Ln1~GBsg>K&n|po{sJRUOH7v4VoZU}hESDeI3+$;xjfD` zY{)DKR4wM$E|`fW$7ZLu>q|PRyI7Yf$%P9!jY<9$u?@cq`72BDh_mbCGP{oYUI2FE zNt0`r)HIfuoKF$~#zNeb__Lb2=E)H#3oYY3A3rH;FfFS98PT>1@u;M+w9=F5!UGjF zp#jn*G3J8?rRR;A(~(3EOce{CLioj_}uNQOxnmYF+EKO$p@_Y?w?pdnn zXJ0-8^GNHEci#<-qhw=nl!@Y?)R-b$B=3wB2%hbQ&fv)!d06^FAs%iU=^_F`n%FC8 z#xP7psZiD2=zJt)Ur}@fvxUN;@D|%L&`HjvZ;-blyrP4D_qpMbZ_UvGg!fE5RMygg z`&3!m_oOoaLLCNa3T#-hyID^#rz`% z<*V8SW!R_d8kES9L0IgmcMB&OH`!~XRZ&P65>UQyM}m_OHO$y^wqYX+=nk+L&pwH+ zdOzxql+jw)bOCyZJ+gJmO-M*1R4bIT)}hj;5uZ_iK(3#`wNmObC zc*2hD*_L{UIJU$hJh4ugS(cQrR+HeD=9Z25Wy}ZX03t21ztIIg%My+Dkld0RxaEuD z2A7@)JE#<@uuO&(BG1Fw?7+5nl=TVzHU~kMrX{5w2nS4_Lpvg%h+tGHp6Y=Yl|1BC z`?M&twXp3sP1#>u+%7IL=Q=Ev#Z|eZWQ(5i51Vuvk0>kM=zp+VTi)%d1x8BRQV|Kh zbfYC;A}jAzcqzeR6nLVnPPLJ$p?A0l;mwANVfY1tf5j7!ubrSGpYGeJQU{H%Cud-> z8JsYxv2RU^>X*o8t?L&(cvk0=WIJwdSZA%zw}mm#v2QCdIf@#hws8h3tAzxrp@0c| zX*CX&jeONvSS@{0XE1$;SWWElxqi&Keyg7AnVk1h7zUm++fU1~a~CYeRxbK$$~!0J zJG@JSyryXp*_>OL7OydJHNcDLL2VwgvMovW$ndRRSa)$i$|ho^$a=ybW`e4~X0UD{ zKS1Z95gVi$4)9AN0q1wbX7up*0#L2C>H*dNA$?(|h(0BP7_PnBZsJXi$l-D>41OGz zKo9(os{nPrS`5ZzhDPhdA1_SZIl~FBv)O+s>duljA~{(nhWpOw1a&$iSyNX_d-x-T z+CCuz6~X}-R!D*2n@^#@H>JRMX^jB}xb}dMk5tQz}xF5SC09k!Ns#eJ8U4_kI6y0WY!h#0SD@wqDZ0`tZQUAo3`n5~f# zLu5;gRg5hJShhYI@X&wZqbFNU=o~a0dk0NAsec?H4kbSbP?N-j|I22!Oh&P zJ^Kj~06Wg(lqIRA(Ylsi1gwY!`2pra9#LwK6|g*FF61%S!8jyL!ETjMQ^^oTo|_fo zgk@fUt+C;)QSk?l@9-Z>6g*;&$3B=I!F<8e*||s3A+J|5;Bm*=>@juzks`StD-1+o zi*;lymX1Ja9dj4utpKu6wnnlW_<#eCbg_xw>}ui`j#$Hu)Z~@9Lnp(IiKh;m^Br@ zeBmnD$Ux{IcGAgc!>3mNEBT`qj=cBj8uwkhMM!x*&`m7zA%8z?&L?BA=o`J z`z2-^o2lhQFa_UXhFH>|*WPgDWZ3WD)*?}KH6SdGrCvJ4HaxD66AKrjQJsfuVnQ#m z?^7HMQYX57k(b6De72KNBu?iq;bTZ0mP8ste>kGiT$d7*N|lmbbfKD<RWCL?)Je_cNZD_q<0anGt__2L_jRh@vszWSR6(pw?3K~86QM(Pepn@P%kB~Z zUmTz8hR{#=&_K_^2R1$eOEm=Oy5B|^EFU8CC43>g>PXtA>}^7~xGl|}ux(KwW0QK%!l2D`=?n;%?fog>jp|hL}qO`xmi17WY)o%HB7qquo@Ff z5lc8rJ=|Z|0YD3Q7GHz(f0R_&*ZBzR$cSNyzE8*`8Di^?IHX!Vi7VLzYZ~kW=)J3< z%9hTYSW@D6b!u*cxe0D+OP#7sAY7>^>2ga^)E@>bH&KjaG)Tt_DBM*Ayb`CFT~*-4 zEw-^-&@keOjI_ZW9l=`k1`~288$!t&3q4g6O&d>7Nfut?u&#v(I5!8pu!iG&iWl${ zF90&b@k=TjrrIca09n(XAizJmb&n+a2RNFs_Pbiw`lK_r-cT1 zK}Gwz1u85}+r4^~8KK(`WiIj{5M?Hoeu+J8D-IfkE3bDcW44ooGCSd9q%_tP0W;< zzzZtgNFe*e6=v+-NFaE@^R6l|f8IuqT~**EShrpH{?KM;^iTl#$hacvR3_vRXT#&1 zVQh~WXQ{pZBtJPI9Rch}W(;Gx@cPy*@y4AMT%BD9BQ9%+l)@PcTvRtKQDTtu0nyKp zw&$i-lA;$}2(OEHOoJKur1X6{G?M^ZrB`HM?u zOp#~;`EZ47FV>ZDd+7^xdxS_%!i&)8hI9xM&If434e5{$jV&?iJmZHLJT%m%w5DgU znCL|MhG6dod>Bp^=gj zv!sCL5y>-n^-w3jTMaOtQ$VvHm3LmCJ7x5_=2ZWcFE`)KZ{y z^JYoQrmBxt2OT7h81d44ybRB$o{K%#o-Q0NwB~rQ&~q>;Zt%C^rI;&04hctF6X)^`&g$xGVYwYGK*I&R-qc*M^vM3X^(w=ow{R{ZwD>-BF9$lBTg2Jq&P z-5aJZC1A-rRLQ3OwFxa<@>Ub-4$6jhF&!r=vm<-6Io3uQ90+98Y?rCQ6IM|xLwUhu zvyPwn6Bx+sdh>jOybAEq`KO0v)_DX!F~C8F#8h->07WzQ@7O-K)ymH&UZs*NF#_^wI)Jr9Wjdv zC-mHKYCAR+2)`<|$2l0>fR-E%l7_7zKkF@&+;sIB04J-xG6KUeOwzPPskOODR4}irxB4h{5p}(zx zQv~7)8`gBIx<$9Pnwgz;o{a#0^A|tU-U2_N0=K}6vjC20DDhl^J0djTt`q!=3b3CMN*?KzI+h0pmAVHbLfP9He)V! zV!q@$2FFdnCA_p+m%%I`Wvz%)X6YtRw)DRot(;=`n^gY+UPLe&*1pGeMbz>SIgRP! zjHZNTX_%PiE3YL1Vk-xE^<-GlM=Bxk#;LRutT7SrdQD*_<+F)Nr)zjL(yfiiHMa<1 zwHZ|SGVHxL{9?Lmb8z&YPy?Yc*8mx=CRpVDkZI;6FRn5b6w%$NYa&dy4UIDGvThzs=A8HGsc@WuQ>H^JaUdsPfhz{!EW z|8txGR^M4<0iO5{-^X$Sv=9iQ^w^0lIW3f9wjfyz!r1%^W4UE_mc?ShxBsIa9(=Hn$8WoInHm#HfU zN8ECW!NWPl>7|ss=a2z+tdX~>fi(>mj*Dh(%PyoFmXI6{8}~|TlELI|%ll*^SWvt{ z?y97|AhR1RteuR?1fi0i9I9lTg6?d{LNaoQ?->==6`tnc3m$HXvbHnD&>+hcx6f^& z0$YU`((hq{<4eAiSJ1L!75Xq$I|W4*Lk>!2u0Kh3&N6y(UMut;;6_we!$wrD`(*M! z?{xfogaw3;Gw_TZwWU3qsVs~_3iXVOXUxW3BT9AE1%Jk9I9$@uw+1*=v4s% z9I$!RUq1=6LRiZs?1m8#6Jw3EFFonJugf}U0)dI25NHwI%1^rN2%6H1XgU|ykB(VHCTO!FI9XxaT+q;33m2C&UQv`_M_yC0B4yvHntO#TG zB|)(Fky_&1Ym${MCGTh{K@FC)RHJA)5=`*C3#K^PY}pW5jxN(`wuEJM!Bn4YNvM)L2uD^0VZx>5+8Q%(i~DXAU)guF7dl=j zY~6PacfB_KMkC54$rp5fevOwxfbdM%@@=-Tvdg}{L5y0Q-1jz|KcfwvvEGo%3b+`l zKT^&t6E{<}TeYno3h6M~J#0I1i+9ZQ^_Dm@=7N2T>BX_;lDl>apnXuD2qTvQ{b_IZ zvBq}$PUR6Wcj8Q5|J3NkTSFJde65c$32|x#mbjp4Oxm{`Nj<6%owkUxskGOVxhNKV zF(%yjmLQ4uh`W=Sz}{9fmc7?&)~5Q1UE;<%teQHY4`voN>5HxnB#D|n;%Znz#dzk^ zIjk?b28$I(ZGy=;aH0h&uxjLhN`y7eiDC#79`4@jYz)$cOJIyC&P51tu1yFK=n@D% z8OR+2sl`xKu(C7Sco&u#e(+78ti8)eWk+f#yEdrr9G76?Y%jG9)}>BQ`h$BkJn59* z=95_f8=i&aAz+W3q$5(bMgz2OT4R30$kuq2! zzoeC3Etw^$Xgy`RsGkeNvJq^C4?K<1imng>l0_mGQ0x?mae*iZC&SkFCxw{)WY{Ir zEztwAuE|;voZ<`=UIYSfsA+GWkmt4^GgBXA5d9OxtifAYV7-db*iqr}W~;0VJ(Y>I z5^?mfbM&%kOmM2o`lWCZ7@mA*JH;kVB?U;0vn4rzYi`+q{L(^J%Y2=hhi^`rQuQt> zA`85ibAEZvP32LMd!zftUK{bYOq?@4RKwzY!;++^B`ij~(4Q%_ko_?acX4uJ$&F@G zF1xduM=$HUpzc-GNU@BV6#N@nxDyP-m?xqJ*%mtf6T8@px3m;`;N-NhwUpvOI^YXF zVV|8M{4HDYswYzP#<p0xaKdVnJ|gUE|^nH3v$vAC6Y`Ah`p4tC_o#%Chgt z`~AGJat+P!$uTi#BV{9@skDyI#B>BoNSjDLX*6PG`Xq8fy|Iu8F8e_%QRP0%=WVu( zOg9n1G@6|fs2nmb3tKu*mlf_A9-%DH==Z%WaJ$dUi##)K>LUuq-pXabYH$F=BM3)#Qg}}g_s`v6z6dCR~UscheAnE*pmTGe*bPT$!lg+9#HootV3>NaS z5g7Z#PSmQvKdDDo&%oEA15QPVzwiY2%^e6psD+D+%Q>vOlU4&J*Aqv@#e>3_?`=)h zVvIBkWsU(gR!1mzWmB&=R&Jwm*K7)J>W%riADbjlzh{O8k6PtC>-!;%YD@;z^3xTU zU-Sv}_D;|G$Zuw-+tBbaH$6wN#3|D|;*9JMAT$AEDcRR80bp95na9Gd1zJpSxA0WT zzh(MErly4B@eB!5PzrR6_3R&d;}!Abc{#)X&2<8)pJ z^C`d#PBk$Xd<-+Tv)Q!{$<@1HA!(6if63smY9jZh5{f6Lm`veHgruflVx6J|1o z{V3Vi79G$%)g%W4MH4KNxHp2Aa0#~FN1LV?VK=2A;s8@>wjZRTw!Jhq6 zFj3FL^jV)VQHpiKI0}%4u(u(XYxp*(OTn`Rk6tCc$pe3~&$zz3vx1#`#;gtk&H-Bq;s_pp5Er@m>cI|( zj6LZ$nn(6GR(84LutBT93v}j074J7z-l5_|6?g$!=kDN%ApJ?zqq8W@d91S&^#8;+oaJ)KCTbC>_eP4>C)F5SN>arW9e?)dE|J#d(&r9BIqrQ3AUNfVUW>UfS zQqMP=j3f3pS9US<8~uV8UeE-)W~{*VKn#K(AEQDm?3uDwcblf-SNZ3>LXA>a~gu5*Lyn zF2>$qk)Q-!1+hXUG(C3~EvJQPN=Ppmh?)TWCdw3Ifed2t*)f#-v5tt6Sb+g1@(eJ1 z96RSm4!Y^*vk)hBu?W@oslw{@gb~*ehuE@ZbJ`cx7ROW;t2j*?@H3r?eLGxv1CXooQR*aX70_%yIj1d7a2O%d;WwaK(Vv7#dV*@2! zRCfkuSnD$|(~|OmG)YN^2b{a_+viVOKV5g9<82x&Cc)r(p}Eo5*S4F8x#mT^&(IOS^k9(+9p;&5`u^=gxH#bKjK*F9CdccXbZoMBWn5l ztwmnixCdfJqav?BO{f!LC2S0LOcC_z&K^Zxr7vZ0&qttbY>EZXiPDc^=W}YV0!o}u zL<^oNl)ylr0^R4vPvHm@`?_qTpwSdwc~C1IDC=nZozKaMAAK}E0-#|1$ibhB;ZYBU z!@HFs8Vhn+95DKk5__&-)ptSJUUF8Ue|s1X-wKV2H2)M#+A!&z*}#zv;0b;Cl!Q*c znbzB(knc@O&&94_op!E*9??rGr9eh7q(p6Uu50J2^u=`iXfX(F=d59?=H)-u5R(12V$ zVd#@~!oZWfs-?7Wc5pk-pa$&Dj<<`FIQs3)_uHo6Yh^9vFQE**+^D=xQe6=jRN z-9X(#YIPBCngh1DSrDrqfKrsF-w4pjPE2=c7Q&+pC+r`0BF8SO2J(sWr{izIf!I5L zanPZQPo|GDeMzIx3I{M(2!@W0uO9=rzA*5Zz#qvuD z>q$fdMn#2`HBP0JC<<>_TkU{@;|U_k%--TB9Rp_TY?MwTrA0FIEv4S1kpc7}MD%n(gPq7OShQT#7F%tHLDGwOemaaYvFl7@t z<|53-3OE}A8g5Zgi1o5sn&j3klr?DfO7JZld8WOGDvJjnv<-IOv(f>DW-i3FN|8^;8?n$630t zPERFRz^f13a>41#a$mcEQT}-}G`%N(mUnuzL*<9;gjtchlf*9^IXB{9VIRlpcij)acl-p%a=kE~Px@;+3T54~8ppBRbbId@2mJWbU z`D*Js8%S6JH)Iwie6eZbTm4>0NcIiwT46-JaEI`>3l()bctO_iPsk(*yA;dC_C17M ziiQ5(PTMZ~x-weCL16T)cRmG*2{xD$o-ecCsYtLs)FkPEX}-tF0IUAWTY7&s#Jmfv z*5mj&F)SO6{B+OaCMEMO<@mY1*d`?pTb90<+DEZy$1@@dFzSOW5x2`NgtD#stxq|ft)h&+un66BognvqP~vTwP#K6jlusvA zMm7FPBC@!$ncOC5>|rO`WP@VL^0DPc;IrT-@4-)|rPbMfZ;A%ULdrsr8Eu3#V)@xt z2X(72`b#<0gDz+d-wWr~nT$w(5~6%A>==#~HM>gkV7lWahg~}ph_`T5&J_(tABC+B z4I*$Yz*2h*%rnic{)rg4&L3e>L28g7HA%=Bhk0YVcr|LZRG+Rt8bB36Il0B#L@m_L zH-7|1vNnL^GCQdlamgV)9 zkRAP5|0-e*PEQqDbxJeCn&Vr;ht*yY>tfZO)qVp~MOxTV(kovdV+^a@PCreAH2 zY5??m_#GyXc;0=9dI%o2BW91Fb z*333kgEz89*`6)Ko%Yq9jyymCVs3chh`7*YsT@GvOHeI%QhoYS+`R;XxQq1_&eY%5 zCJA1EU;D5BdjCrf7tm<$YsH@Y&HnurVLc(AZ9`&i$ zmuV0QMo)>4p42WYKwx~2O(ft?N3th}mhgEd4PV3%hXj;*?O&l2l>((f)Fv@XKx11b zmfy_EE_%v_o^{8V<*q)EwtWc+tYVD3lScDDpEk|rbSx1Smo->p)ad&cwJ0ns6}#9# zjA?=+sBYHh6QE%wK^~Z}70UQQZaAzZzX7M&vc*xsOmUPaE}W1`W$Va~LZ;_#ekF84 zvhIi#usTibg@-gm^^6X@TAeDjVN1CpxN%7_p|Y3KHtjEWumWj6v^4&{WtQ=w&r}($Q3E%3w2&-;(5F#Ib{t%qdS6N7X`3=2Uzj%4&+` zQjVWbfae#lLPPVD*kvZA;voHldan32`p)F@}_9eu)|%>Ljb;o)d}?t@zJ&P(!f%6ycbo z7FHiO1QdY|S#g6uCeGz3nD~NZzhuW3T6(x{;{CB@qY1K7a*aSVw$IEZpv9-pC1^!) zi3CxL#g-t#tZP{wqFAy#|5Szu%pcXuL1_Uv>=DsrvvKTh)*xn6vZJX9~SNF}Ar zE$cR8&4$uYHEaQwMj=efrkx&xh1Rqik(^0^tz83S0->0Uovs(oL`8!1E8FO5JA%5X zZM&`{HV(JK7GM`BcqbLcGbbwhIuY}>&In9WqED}7Hi$A4g-+~`a3GwGs(I*w-}n;f z7XK(5EX!OtOX4^#{(wCqxyGU5Xs)#^{Ecv)G2&#S$?7xsC56-?S!#7 zY8$g~Duduq{PiTgyjsJ^BS0YETVy)~swN*!D|O(DHdQcS94G8GHiV7WOcKG=Jzv=q z_I+P5ixF`<5aFQzG*2$5CM}ZqIe$D91FP<;7D@!E?$Cq;pHCRWzabJW z%SSg#e}gWVLMh46E2N6>UWEnYHbSU)$WR=L!ZzUoF+@8d0On)K2GXc^XMT23gLyHF62=cx6C}zrQViGRwo1X#54!k zf#*-ZRh2a6@F}&n@~KT>B!6%(d$sNXDU#Vh5Xt8D(V9;d$=o|Xk^x=UlnlDQv2qK^ zpliBlg%?z`KWqR+vhNyTw!&17gd#UCaflTac!78?wnZskh@ldjp2SN%$x!tqzosYC zaH<}p*T2~=Suh$6(P@mqd-@_g`_ z-2dLQTQuQ8WnST|-4DS85Gsg1E*tWQHRe$?eZe(n`gQo|3GEoHzGv0w>4jR#G;mbY z29EG}(ZAkPV;gp-Gm()3>cZE3R3_Jo)GBTe3J}&mPpf>&7``t6iA~^d-&#r-fboL4 zji4h6IV%kjyP(epF%Y}oyk7djR*ZPlXu^%RRBacs8dy}KqW-uEy9gP(hUFhqP5xI# zOT5j&suQQZI50(}^Cj5AOb2|X#90Dda=A`OxsJe%ovra4-P~!H?tfh$*^wI&LsDWa z)6@k1rkjzfsu83G4d6%be9|DHjYN_n4Yh6dXK*=0xI_W9_R9$ayXP+MM))SOL&j5` z$M-3ny587g6}@WjykbfO4Nm7S|6ym~YmEGH+Iw5&dECYa_d+#sfIhpt@INUSZFK&r+}Qp!lS@yYktdSaMsl40nDx$)^(DCT(z}$p^!UepU`WzQIr335f+xvb>ZD zR*6DdIHn;BeKc+6{TfE%v_k&LGXW5&i8-ZDv|>r@+Q7wDXxszahl1lB`pgLZZf3#2 zVX5Rrw%Qq*h^$L{0f+)DNkbsQwp_I&vdlAo?2$8tecpB9TnK7#E<}1Es`b=Rlfg>* z6*RG&F1Ge1cl`-GJSY|%l?e`?Xc!}y5Sq7L2XTY%m{{ zP)nq?FVK~_b2(8Q@%&DpWQi8}`QdiS&DJxR0W~Jb1?dSDwuh{&pXs~3HVJ4 zRy54iV}8utiH(cV9EBaKSv-E8#3u&`T@iyF2W(}h43f}7C)h|D*7mSN|Hw5bDZJs>t3H{BogIyj>EUkml-^c|Y>a*%uftMJ(9R=cUm}%LPAHX5@cuPV1m>N!~Le#$NMKIV_%W*Q&N$e&F ztu-Dx3972pQfNtN2?DDL9A5}B06j5Dm>F*qI-2;N%58ZRd@9O+tCYkvzBrX2d;^GU z@5CiNtWeX?qPgZB&Si{{n^6mus|8-Ge8ZQ%fvNh0FIvezr;sZb-Cw$)-~ohV$np$- zh!-uCkcmyy6J9>awGvz$6(Q-%5|tR_mIg$S<~IhR=oYbEHfK*ZNZ}AuiahZpkYD*#bY#WVAa@OyehuYZTNDbCB`B?=@_*o93yt3|$xxh_8&cK9B)l%U z1f@wtt%I8)rKm@Ts&EF)GocZp3r3aRrbp%^zzlAHuAjg@zZA$?=^tVylMdwfU0l1M zEI--i)WfZdTlx~DXZ8_v|M3v|Cag8Pbh2eObn-zTrUlGH;27L27>o!Wbf59#i&8Z) zI8}|N*Kpf1PL@6`=y>YCA>MM%rFjQJQz6E&r3b~)$c7{{1WanrCvK=WzjS;7K(s!N zZo)QZP|uW|#$D?V$WGr-b{a3JXggf=wh#4nPo(HkB7e?W_^23q*gEcFRxN6qtVZ0S z0{uyDNburDOZBa_CEyzJ>?2?N87ej#(z6p2TtvS zWnuNeMmyJKZc;5R@ikSSjZ?)nf}10&+Wr7fE1QTG|}Vtu(s7j#>i3Y4d8x=c|h zNlNI;Ts&2_$z>^{tsUsJeq6!6POzKV0B84w*eEoRVW^+6Xm{R zgPp-{b_#YU-uVQwe6xbWaBjn$3UlYSq3+zS5F#4RZ9N9Jt*>$0`_e6p8r)74I-{km z&L`knPK(nL6t=;hQSOe^h1obpB(b&)P4DenM4c^Fh?po`Fm19vAfftB&1FmUO8oOF zxy~|8VHR9@WScENiaBJ6Waps_Fo{qGT2n4-^V#n?h;dz`x_2=Kh*ohsn@SLiCwst= zF>Py$(pmBwqJrf7jVOfU{ZJf-7S=l5q}k;mE3`%BW$3J<{JE9KufW;C=eh?*^1eXa zpRz2UTD8ExhN9Y58EMd*m#6USE&`2yHPQq_)y3&k^~NK2t0V&bNjB>#+>d==xejBq zVYDg9Yj|>uV@JObM`cSsaaQxqsyrh6&m4A3@Ep_(GM#(jQDj+nI*o2PuADN|Kx{A9Eo11<(41WX?xMDZE!ovLh1ON6UKQcPnCn7D)~ zvfc~9tL@@~3ulj=xF@&$i5apB3&9r? z{y4W7+m{NOy;)XufwYZSc5xD+XZw_Kudr2b$?ZUk}&0v_pJ zaQpreF~T83jOf#yFw!txV~I93<}kt+zYJz9)SGs0W0y~260w4cKMOj}@f)9~R&)Ky z@tt3^FM;d;1PaJ&;U`|Ox5!?SzLY$esrTdd;Ml_z*{8afYB(1mBBB$#JSq}U$b_^C z)m><+i<811D$Rzezs-i)3c}VwI=N(mo#%drwkzgLw683n8Eq4J(Q0iWq z2xzSI1(a1P{h@N)8i}lfu%&2fDwn0L51$rQS}h?;1F$p+ER6oq{G@sX{y1)+#{*o8 z-mI1=$+hT?m`d<0*6MZ#s{eg27LyL{AC+iEiRNHEi*&?`Zj_ z+fqj*lfpr507TjaeJ(DO!sUzj1rnNmp>ZWIxtCAmoq?6*AVi0bcMaI;BCpf1VvMgO3ta5Gfu!nJN~+q&0P|GvZEeos=QF-S``aqV3!dBG z3j}<8E)W$50t&yh2cQQ6iWiV@*)^Z60RVmbL=slq8*!l6l7GbP3HSOSC4R^0oZCF> zTSWJ!2>f!ma;g_4YVanoV19kiN3!4q1`mSgPk*N;MVeIc2{}8Ev~J(=|HM~vaJg7K z)*n$QKI)IkQZ;>D#$_gI+Q;r`_jc@l$yY+p2A;#Tyr7UsU1)IzqmH1nDizLxqu1nS z#@|_%D{A#f^2>NqIQxv&!g0QYb2e-tvJ5tkdM4fpG4aXXtd%)iQsRw%;dLKBc7!Hx z^u6o>-V&Oq(`&*#8&el96rOSt?d}UqKeGPQjxw|p%58T-ZGu0^v8D_wr9w$j%8<3< zPvb*hsS6o`hhlr+ja)a5N-&*`ytC>whD4^p^~4IX1d(n$Bk)h`GLS~-q-kjVhR0yo z-sTFk48e^#9|MO@eGFW|09>5ZpwGIkmChs1fAHQ(q@L74EC6Q0#x958Mr9{v*$J2_ zo3Z|(!t5;CMR7y`5QwF4+CL;gNg*GQyvTSo%OnY5tv{-0)s`}2w8yoi$>Ji_g9aQ# zz^_-`avC@x!ygGg_=Twq40P59nKF*S>XLs@_~?^c zild4&_7+Q_n2Eb|4tQ==y+L5vHO={hEhT>3e;`}*T(6P3NXqW&g2l{v@dcV}Xl8AH z{R zAR^(&1l=e8$<9VNlDLGX_`OR=8X2;z&L<#UKL6G95ef6lnJeyAm~6e^zrJf<8-+kV1WbLTI4uZl}-5QAJ-1=T>4t!|9LOWn+#@iZ<;7 z0t?IUY?+9=ci|EkYizX;XpybgY-{yeZzEBb(g_yTzwYDxIiI6p`y2{~^Mfd|bIdlk zFzhw|rE~$u=2X8ru+J_ZmD)<|ni>OQNpb`~bxKNf7d@9JG2TbYnYJxtnX+B*f@hNjoqVYo*EOAJ=wfD?PA~2HhTU6CW>lo|4Ju-s+bh&}d1N#-e@RLuiTyzIC6IOro7Spmqgq;cI^+ zx8UdZw)KQ|zL=u@f;+W4+X!DsU6t`lIG9`Q~*&18S4FI~}s~sb9=c zM;|zqOT?qpQx>Pv(!X!4oZ!PEryC{?{ZyJS@N?->dfL&zOKR}~EzmAO#E&k<8X{Ao zUnvEJk15;$U%pa~&AzN~;oI{bZx~-S5ClGA&<;ag@>OZDWdpMfhQu~9%o_1Df16-t z3*AO^or;laqo<(LK6((dD@x_M{TtO?yAQ8amwI)QVU%D5>VB~}%hCbJZ*hdior>t_0ZqI<;%-vCXlxvwf5t68GZk%T zAwfh1d&YgCA2b6#<62$6a{o+61=n{-)lJPC2!z?1zorej$9V;eEM?Jog?eNu7_+Tt ziAK-pMeH{w{85Eq=MNnInY@nI^TXRHPPvI|YRXRfF1HqEzOGKDy1y=8qo87C;BWh1 zl4W)QM15s`(BD8{%rF3-Jkj_QKCZ2CdDlRk=;}+_hB;#hHL4xB-PLtk4x*274 zz5#KaeutNqf+O82cC^#4jBPf{9zrZU^g>(>mbi=WH*YPU9YtsM5S^U!u$Uk^%1Qs? zzkr}$!Oky<^NVGRUlQj^w0ue2UP$s2{V;8QN&E%!H%L_3807$X`{W9yMpNhmc~5*& zXAcM;$a~@i!bTPdC6|9@^hayQ7LIt6r>E)9| z=_RVMLOP=w{-&!|u!jg+d@W7?{e#J)2&EDa7fuhAYYDEgz&EHocQ;1?C()CU_gN<1um!+v!QZ+Lk@gkEwweIYMVhb{sqz{yGJmxfT8 zOoUA|SRlWzB`J{sUMqX;05*md<00+)g)HK9U*QC$$FT9<;z9+JQRpr{P@ zE~U`kX_q?5NxYNWg2FJk!Dp*kvqXK;7P`qWJ#dc z*hT|aEJVb%8)?UjNPy-%&aGCs4M|p-CWFvZYM&Gh!!;Abgv8vyu=^*Evbz*oBUC5z zga^z9!5ixdsBwop4O7`Fb$5{5W;>^k)??9UtVNHUP^o} z!EjN%5Y8tKCy;jc#oQySRp>{`f;6N$$dZ z(p9F${)efCq`sUNSfa#IQp7UNZ(=0RG_JU#!S(8kK4!ztZb*|t@(Igy=siJkl>2>;zqJ0O+=YT^$_*cOMF>ad{uA3)@$}YUmVi!AQrv-&UfMi-MCkYDDeT8 z{O*)5e-%8{HX)1?x5S+xbiYzCO>F2Mry2+esxC)IIxQB*JC0N&0!b#uxMAD$UpBVv zvxOrIbw##ToPrDU9|^|tvtAbF0JU4oQVeDb8t^K)FB3vkgx~FAAyw0V2{_gCVs{}0 zQ@l#Gbd19YsGv9|sz&;gcxc8*x|8S9m-+;VH^Q&7f+BpX6%B?z+pl6M?d=O7j#VN( zAds+=B^*?W1h<0I9XaNul{A&GC|lV-tMVeYZK>Dbx5snPri ziV;GJu9otU;*(aaS`+vKM#M#SbIw1?g$($rQpFsY9 zyM-W_`1xr4J|~;@d;sNFlmN8WZ9}KbNU~kaA-2C##W@|PjgqRI5Tyu$L8q%v6xc`f zAM)VA_jeI>^WVL`zrzCYgt+Q%C%E+CfaY5kvRB&=)_298i{IL!we*Ir_*A79TPRMc zN~_1ne`1WWfNjwwR1It!MFE-86!zhRsvCY0gl-WDDs+S|;fpzz%$cC3!f($S+0NUt z@(Oc5{cAaiW#tu~jrNVfbc~%FDnKX>r*?^Q%9LGEhtj%v!6+rq>3`-Cja&$V5ZijU zrPh3AD%k$%+1wxW&-j)hrGY!uGysI>_A414$3N4LtcC`AZn5c+>#Q~jCPfR|L21dV zRXfZBugDxw64J2BYLS&!gmACgA!Lcv~bcYLT8{6~q7X3scYg ze>hr)(@+$%2I`*Z@!=Z6?xS_ExC(Ey62dCX?6!UE1CVj-0}$pq1b|fK42J;b>wq-C z3mL~pebnGNcL#o?Pk7EU{kmw@?kQ7^T+1~8*i$)P8UUsQu(L8|W)A>t+p>Uvqk}T| zRkd9ll)*3Cp#@$lO45;tA%Nw#qk$wMV+_?k_Y4qNJyjrl{UxacuRUo*OpVi6y}^}r zfa9*BM=EM9gd{h`LwdrWO@{o)Yo&lI46+aJNBhtJW?>W18a^D3%xnS*VVYMNfJYWT zooZVM3ta!EEC|O-HLQ#>l+m*t=!^?%prm~y61|aOu6k<;crMdo%`e_0&LS?XguB?> zFHvCwV*O!r)~@0A)Fa2GhUy}(q(50EzDt@a6R8?c?O?QEVT@m|JQfS`J5p6sT2-a-o5c z#h>R;9Dboq$m05npW6_7qRn6p726d5Bbw!768?x~^|^hR>ezf;jO9O008bto4hT$p zASI8x+hZG(;Xr*@UE0tZo)e-SQMpf=9_Sd$eQrKJ;78={YkdTNqi&FuP9rE}*|Z3S z%SU)MRNZH!@IXsZe^eoQit_tPS$jPrQ4}XKQdc!)Ck3kdPV-Q|7=KbP3e{8$bRjUQ zmzpkp%W6Gk89VbX_z>#9tPkQKu;p8rH$9ain!*kCZ4wD2^xYDt5}la_b4KcbOK?&@ z*zxekYFuJ~ImN;jOve!5-4%&jXot85@pFhO#h-g@i4?;Hn%;*+4RAM(U1`nk$ized z;aRD5EVxvS_pM4M;!lc5O@OSai+&F5r8xA0>hhB6@`5=LW)sva)I}d4_H#*87fV9F zpt`)2y7(j7`?re0(-%?~ujd?$wuy^4gV&c-Jbf$9CbC^kU#~Y-ZiB#GJLicvQL8_d zTd323f+u@2QN(RU5qb3+P3-FTsVee! zW>8_5IFX%z`vM|UW-92V@l1yEQT%V;wnjNFTQ{1tvt?+4Y#Ew#La+FbL92+E)Z59b z8#+||1rkjV+YMY_0zzN=DaK&OJ5Ab%1o26j{yWYp3=1pZz8xdMhuY=*feAiU0v0f_ zS2`S8TP99%jw*#De*`pZU!dt7WesU+KuPoL&e={+Qd&9(s0V-Dl58$Y>?cN>4dnp% zX9P64K1f<<5o=>1M!57>_0`0RRla#76Qa&zTuy)(ed!s#mS_PR^j9ELv{j*vL#Hr; zXJcY#$w_B6S=aQ6&zV3$(fSPnB-&ylywzNmR)#iR zYXTfhgF3YjOT$9!+Z=QG|Kp978I~{e4Y~rn6vlC)^3S6smovhYh=`mS0-BV?h)2Qg zFaH64R4O~!wr;b2FWgMOD$}+JmCBSv%1lp$%(bf(j z`c4}oRecV1RC0;>dg-Ro%|$My2ciP^db>2r@)DtSCZ6>VqKQWFRRE#(u5KcazKDb_ z?+f>YE~d*j6-8i4L%)RE0-y*l;HOh$i*@lg0rQn~U;{XCt``=v!zlxV>_T+gbfjto z6yv-xixy*;;@ltP)4tRTOu@%$=IHWf0-OQ|&JAM|T@B*u)i{`Vk7QO?>;0=->O$D6 zPA=4uNlTZ3ZhIBItI!S~Cb^9Xa#wL1Ue2LN%oRmG-KWEh#Fg<+4aMS!3os2Nqp3v1 zUdiIyipcB+ZF%+|)xc#2EcOIVWa~+q78H7ThouZSCDioiVhF^qJOY(E{FlCfXWQK~ zmxgW#uFg-%KpIkS#EeADNKa&wF)9nyRN4k}YLXu+T`LN^F!O*UX+qRfTBLAt#JGK& z5Y-!#i-IO6L$!@Ah|vP6TFbo5KC-CYq=ytTjyhxL>mGq(1X&i&Jj12FX1rN{U4lj* zVTC+hrGlEbT8!4K$XjG|@kI|+=M6qkbL4mdnBBqubTou}7 zORrb3>C0R|wx)^!{Va@-7K2((VK%j`u$@JX@oD~{!p5LrjpQ{jBR)#$7;5Ouu+fR< zC*<&K)HBC1(ngTGSLsaQwh4qda+&dC#daYDSwQtv4f)x^*7PR@nd%fg*6g91J08vf z4361!i4=oAK2v(okZ$3nDKf(LjEaewccw9(#3wCnG()|OsQYpG9?GV_!oWL zuxGf=`%uYts@0;%m}4j+vlr{i97Bo>cIqM%bCcI;5F(#4vSlWsFC^HS9OjJM7e`=x z9{shsvb4K0IB!YE+m=cv;*3+|(zQ;Aw;(u$SuHRhJkQ z!p(-7PxPuTYAEr9+a1CvxU{547}Kqr?T$HNY|&+o=`fjK7Zl*72}9cfo5melHs*R% z@k{XNWw7+9LiF4sXgf0=^?<5#zVftv1h0uT+Uf%LmVnX`gTGNYvZtgO)s}5@3syr_ zr$`#F;+lJ6y0iS;O5?7fvlh7~R}l!*RXes)1Xi^WW#jgPcZQ`43DMR<3~4TG{djp-W;Ep(Z|-YG#Jy$1EK+(a560W>q+E+dQW9$nS^86g6twN(iQPW%AhBdb>)~~ z>)AQQolgPA)4<>%V(9FWmQ?vU$IJ($e}b+^fS|Rc=tsKt)4tw@7MM*dV4^>U;ei8w zU%ILnE>W*3%}jJ@VjuAerev7;gs}_dgXaohP~14P$x%2q2&tMjtU_lLVBl4~j7Ydu zg<%GA3%(T!vDKTR7zjC_s!!qsHa;WHaD!F-0+W_byy*Xggg}bJ{(Wv5Jn#cigLt(H ze8}4b)Vcsl0m;5klz)7`vGNZ2#}gf&zzZlj(N@I!(aJlJeljAqcnJ{=R&D@?IHeQ1 z3HRj1sPrA+qRZ5v#zImx0+>+gXVkEsl)4&nB4tCUN%l@H3XJM?CUDX!3JLyH{RYpO zGiy%G36V&!I%YON^C?KB2CTi&*n`kIr5A zCob88&HxTj)p%5}ixX~ekq|IHF*4Uip=Fr5kNp&;`EN?=J?sc(7QZyzFzjSPQt)Y> zL<*RQ?b^g_TJ}xT&zK>R^~k^_r?OL*#eEta1w{i9F}g^cigU#8-CM!;=`i7s`gbid zm}|sq9)VSf|rU5&7I4ddX0+Z=68=QqlW zvI9WyBTnn4H7U-+qD;GU_SKU2PNr^@=x~jGS3x&*9_g0rj;*DElOZg&*cw<|LxlyP zU_pv1-7V^s!@;qDtQJmsrA!sS;(Wr#)EDquAJzT8WO%Y9v0+$>6={gU8E%`f$%k}h zVkoP(i<{TkQs0UAm}(6Z2-ulv_?Rg5%XrEC#06zu+w2`v5K8ObQi$_=`&4Bt5@3zZ z-pU*TH$iHF^Onf5WS@LeZ!ADDQJvKpF1pnRtj5>8TwyVh#Z$c{<*UC~)Jebs180T! zSC1{cc^9Fr z1_n%cH{#C>@RN3*K^ds#2#KMM!0e?gTt07zBh+bDT|g5OYeh?A>p&C;L?Qw%mn?71 zjRFBbt`;N;7o1^aW(NO3v37qO84D*2$}J&6NI;wHQBHTLS)t=%6f`P&uIt2HWS-kN zwPY1%UpPXQ+e!MAqEKz2sIgng6+`7a)G}lBdi3Jm8^3xWnTe+Q;-IvL{L_QiX?^$RZCZasoz{k{3-;7ZssGfgUG5tgP_d^ka z1qt?pfEJLn#oppI4)ho1RZ8c*M9bNxJV2zB5P~6f8aA*pr8c)zkD6+maB@tQHJuu! z$!wV;W?93%`NFZNFQkzz&+c9NG;*=&de~d^=x4TF33BihdQn}=3ZK!kfNW$4!~b}O zE|p+HajJBpNdo>W*zKpkBto&c$;1X5uS_QTFQd?qd@T#|J{fEwRva%kR}ufn5_zD{??MQd7BPu# zvh>V$IyZRzjM-4VlSc)KM#@EvTH~Z13KdD8x}gz~AqqWdAEj13oJkU(Ui613)%bj_ zH@dQEvO_3CQgG(d-ZMfV!H0_r@TuPacg>Y4E!*XhZ7x|7LN>Odte1QgSUNm)uaCf{ z=BS~>%XvuWV6W+fF0}I&4j^5#6S@suWpp5r+cvF8$ueY+UI?y~5i4xOM(NtU+LqmK zz9pd1vHysH@Jba{CmvwIJAK8x8Q}jL%gI^4=}1PS7Itc zM=Q;$l$4%`DHEZM5HQ6+EnqbQ_Z&!1`oo5--tMf;9-5FiN)0AQ$%a!VMbQvpT^8yo z|A@J8ZCsj0BV192k3qabLJ7b=lI-zS_Ko)CrehSmGqxsx#uml}07&!IT^wnwBa_k) zjJa1c8;Jn>t8nEh91*EM>KvXGbn+}j{ZTy44pFZkxxpHg{+CIA`;L<>TpEDxGhFdC zSW>6)^_ow?AzwZTifZ#oS^^6G=rN4Ch7hnMRZodSixGmwG69j82Tp6CJ~kcJ)Gyg@bDOhqYK_ODcfq zpQpl8y*e$VaX7ou=;0wqt)oLRN24srzS;`IosBYnv6J#OLk*TAis}Y2jpPsqQ&{4^ zN1=|1hPGfqBHWSC(x2p1J_!z5+rRA|U@VWeW>9CGb=n05?5D0TX?+at#*kKh2V?;_OlR2lQ@a zJrW&t(I3F}!y;Mcl43Ga5K}aOxT7*oB%UnAk-0~?YgZE}O%tgdh!y2*TmTfGYQ)OU zy9$LFka*e3<(LX-ydaWZZHS$Kc&~q|TcZducA?M1Lay16JDrH|N&1zQEA!dO(PTQm z^37kb%#SA5w~uCT|2{jMuKqk{B}%3Td&kGqqb!)cJ>Hug&aL2ZwmtpNgW2}U{&ar* zKi-Z3YybMu$>H(d!SwT==hyf5wytlT9B#8ZivPH?J-I#Ex%u@U{&@3?TQ_eL(%%Xu zgW2Kn^zfJn?H#8r!(FB;Vw_a^(}`MkI8d~syvy%_J;SBJgc{CIr4H|gyi?i~-< z{OV^tmG^qrulI(4H{Uzl?H#|K_MDprb)|PO-aFhs?d{BtddJiG@tnYVXt+0DeS0)J zo*kdQovy}Ee~v*xwKcr{Z}#8bQ}pQJ|Kr~N-u$>X+v$z>_j}{_} zG%xEMYJM^yf{ih}tg}5-5^iJKlvWgW_m~}kE5}ViOuVqO2Z)|FRpem&3uQT<{xX?P zA=n1GQF$~SPhPj`-knTOrZHIQ^|zwVE%W`)BJoG;*n>K=ZHJ-%XNvG?XbGC{jQ8hL z_4v)KYy$Utd~`B7o*iAC?yvORe-)=QKY2Snx=Q=vAm9^0>~D=HZ&vWOb6k%Oz8}Ch zV3_GX$}7Ak`+Ji&^d3WNGGD-)zGiwjJzA_0W34@1U?0v%MKQqMPVXvx8yuCmRj~N; zpJC%5PU=<&a+g?I^|oh|6QaEeSsa}{L4}x6!wT}9XL7|4X2(5KkJLRn z%)3wTf9I6;;Ev-FW`_FB;UDQn6F$b_m1b&{T+u~vv{@i`m@j~s!MJ6-Z9Vr*~HZAU8V9vD+`KlI2*I0 zp$#Z3gPEUw*882wtM~7+o8C9QUweZtunoXt!|Ld<_9sb+(-Ga%hEBK$( zJ;#F(H)+7r-WHU2j(A`P^V)QKrNhAQoe+);obpqzSx-wSe^6EAVu!`UUYmo830(uj9mK$$wr_5y z0#>o)_;uT}Jec*KJ^rqTS>`*)R*~pSP#b`U$k1w1sMPGOnR^ z7W&-xSZjgE$?KCt&KPIW78D&~hC!eqa=z)c08{+~*oBzCwRbo^I=wT4i*9qi3HtJ= zRiKGh6I>T^F!no$AU=$bw&y)YKUnf??d|U!pDxke!OT*zUj8Ud}Hhpzv zp+3E7uNSPwGztdIr#T6qfnGhs6$|zNrlD62Jj)WK;=uyLN+an#zfZo zZNPoX`y+w&*VkK^LfZt(jD_r(LV%bQ#GY-=2^JiI5@%K)Yk~KQ3C>ceBC8!UpLoYQ z6eX>|pl3E!NxX2k@PP{=_FV01Wip5{K8uG7*ydACyPlafCO|3(@!&>aRx-fAg)uf= z&mIyKe@Bqb3^7Ln51CfJ%1CnldUmqE{TXM-leeBO&O}jJ;{#F*DoZtw7IO&zZXNCh+Nd^?1DdfI*tYKX3>KSm6Xnp9!KZpq1qvR#{VIrV&sf zn}_Mo5{O7CUnh*ux5vlhB}=7Xb3K);YRBL^ghH!G)G@-CD-muRE5ztu|26tG(nhUh z)~hS4+kgN30IqDj3&dQc%jg*+Tsz#hpeUgCN+h#7L89k4GI@Zd<#@4dJEh(9B} z{`b#gd|x-)R^ZB1-fB_>w2h#&6I_XUlzt#c{_AQAEK7c~CATYkBqNn^8Hm-EdZ%vF zfi(LU#zq8++&4Lf7|GL>C7-#_;xD}~F2bi4HdTVYSX&z_$XyIt!Xq;>vv$CMu9|E< zcLssm31ET3nA43+hUKlS>;?H+P-J_iYM3i2I|3}^zlJq5hE5dgu)3ij3%F0lZxQBk zCHk>gUvUt0b`9LTJWP+c7xUu_yz>3Aa_5T86kQ(9u!%U8`+s%ic)SIFuy?4`Fg^U< zbU(7>1kk1J3#vLsYGQl(i@D;@zc6J@P5}u;htp#&HG4m8+bRzZ=n#m!y7Cjk!^s%& zVQ)UeT;Q2W&m=H~Z% zb5D!Fj9*H$w-kQ($k$k*p=i}L1^}BJ=4xSBvb>+f6UQhRS zU(<_TqR)rDZDjTqyF^S;EuI?lQbRM1jq>4T(c4-^bv0?Ms8;JKvP%fH-gninVxckQ zMmpzq?t5WcpI|4Pv-8U0#9}*dzba&#W3B9oEyJ@+N!7Gqa}gc%d~r%M-Qgk!yBOHe zLo4oDsddW*7bOF}9LK`V#y|}h(|QrBZ?-&g+m<tZ{;knt#N zt&#DuBM=BWt9>T`K#Y9)dpKRDcacT<4-wGN1+E0b@c<$+M2dsyL9kr)!vF=L@h-x` zSlmu?Pfd|GJPx;A!{HQ}3wKRoNAgz@-cwoIDnuKoZ>h^a$SwZe`soj z4lU8-n^e5K`OtP6Y*}+m|jy?Ze_POUzs-k}rnO{S_IcLYS`+EqsUbeb@ zE5f=_tp~Dod-Z&NkH!+d(L8Xe6h%|sQ=S?+#Nh|bc*?3E^vAIikUr<$F6O{CyReGb zNA?rjV!ONC_aE=@6wyz?k1CM&Tn7y0DfWhDC&yPU@~$P;kOk)XmEMg|%i@!&V?tO> zaaYmTRP=02@C8p;KQ3bquE zF!?fjTM<}IcBXU8og+r@6>mcx&bq1g=Ce%&VlkuceW1+t^aD<6aWmic5eiy9vfFdm&lys971-%rX0A8^wiPuH?qg( zQkypC^we&k^r1VQrUzj2JUGEOwglg%N6Vl$bPw_?{9*5Pr7X3S95cwd%4ta(`ep*04-{2ovO7UtQVXJA8A$Rq^lH z_!~Sgx5U;F<8tV&OTrp$-@Ay1zH&coG&kj(KPo=kM>W?tf5!{ z8>VAS_OGr45sh(MO3?HDVrmDl>h*AH9-Xr|*uyPJ10-j;nD#_`FvPLFt5@4q%@k+N z!Q%7nOkQPt?%%($)JS#g^E{8Q!Abc0`*4Vs3Xkn}PjSbD z<142KGHt1gAxf9!pVNBX35bJ& zn>x6-fCzk90b6mAc=KO9$c0k>){TE#?zItQSStZ0?EF%r zFb`s$I>oVWRBhw!Xm*N4hAXuObXzYGmI`f6in&Cw?^T@`@F}I%r!E%8`5z=7x~i)U z0h|@ZwU;RtleVc1p#^3x`nGiPbj&3-6S}a#?8$VtljM@DPfNM2mov29(uGm9n=2Te zj-IdL9L*lihIZ5_Rr_$qPFJpAH$bplTxaA8f)|Vobp4>2OmK`!?VVFd`w8MS&~~G< z(ko1@*pKHXeUlb-;u9C)Sz4(f#a^{v%)XTz41+7?-8$h_5{8VKB1ycjA!JA2RSV2k zw}K!ihE|(Bdac%~DJ_d_b}$a4Uj5?6jo!ai(8#yXde^HG2i0C}bi)Ia_v|SeXZ`@n8!H2;%>r(82Em(W{3=W2k{lP=soQGfbjjeEtld?t^L|E-*Ts!`w6^eDXHnc8@YHJE%LHybgr%13M!)iu= zu%Exq?R<(NNA?35PVO>UWP61audW1IUBZyD6P=m^-J(jkRi-|f^;n4+-t7Zf2OtA^ zIoELPa&7m<*k^<8ZDFCvc!*@ias2HWmZQvB<3^A!HLhc&ct|%+23*&zJFpnyV6W|n z%b>vJW{3vG6{CpZw7&{Fz{Z}kDSj@1DIC)$9t(L0a7Q2Zum?9TXR-`?pL!^2223}i@G;XTfF^C!w`Ac2=WUo1;*s+M>(jxSOimjv9Id>q3ODAeD)h!q=#q_ zu;3qlA6xza7mu&5{C+V=`mJ~UFMn#_GC$cu>KQx5KmAE98ClE@laV22Tn`}+ z{peBQOzYfH&rW17cDHgs03SF`9-|4mltMme?0Xvd(V!gwz!xxuWk)aNXy_LlL7BUs zFvo>4yBPyd0n100zbuV|d?`dQ6b(M^w3SahOW+tb%#<|L&x#9?hLO*9l1N^s((5;F z53?F~=&8KHKxu=VowtN+hGdY=VBSN{bs*H^ii0?<5GQ(vy4E<5{lNtEyWR{~Lg z$n0~$B`gUD{T0V__TE!im^q=Zude*9a%|k^2%Ow6wwL$ius=9a@uhKRuR2XIzjON3 z4g_9xEI#|JES#&63vCO-2U(PAs)d#i*z4gWxv%^7b_W(41I(Lpd$^=o*t2`D_}7M3 zN_|T&JGAKn{LT*>K-77Y#5dC%2xUQK!5wGZVFGu`1!L9}Stwyo{MwLLEtTKki9rmM z0CPzv+frt(ieuS7!^2Wcb$QuSC^Qw1yKuBZDB-%YQ;*4p4C|vHOAZ1D`t$!EinN1Eb}r$+MXHZ=Nyu!}6u-zq z6PcYSuzH3&iZtozwJFWiU6_s{>|?%qW`sw3I+eU*al*$9kEfNyQK?cP`jo4vuN5wz_A4-!%#%9d0bmBgjl zKHt2}gbM<;skVTSi7iMwY&?I9zs;&26Xw zq{4c^<<_FOw{d#7yKYg_*o1qj;XV_q#NZZ|Z$>)O!WlU8-{tIEr&5mF!cr!)5zEyF zA_lGSKCHyLWY7<4T7#!b`@^!EI>e>L)?G^x<_wzKutHwD@RfhB%z020qm-n&VZi#Y*;Q!Qw34ao#3I?|!pIX#)Zc)|Po_(#S^v)8`Brq!C5`G(~D ztD{dwtD~u$OV@>ns_g4*zZ!Xm&77sMduTMw$of3*kPXnav&VH}o%hd)g#Xq&DXT^B z#Q;DC$?*&yF8(y!X)U}lU%8{#$zzwAz`og??mP0V%eDnXEs4uCtND}sPQQK$$4X^ul8f+4;nNDWCr!4c4F2sm77(7Vf&x`C+42;A z4@H}03;(-o%H6g1Bm4WIx9`<65?zzZ9e_*Hc-q$Wkb||uV7t{lZQYX!;#U9qXRuNTJQ%RQ={mc| zc5OJTQ(-IEL4KSj8A@oo(2apN*znO4G{?DNFtX~@nUG?+6#iOlKRYBujav;iy91lb zpp%acm*=hHrVZ|Zc*jAYGePdC*`L%G`acPGb@@|v7#-p5E0vZ;Hktb8Iww{SIB z)->NKN$kKgfxELQnn^u)BaThmA31dXesb-Xv8T9xi$Kjc4wXX@BG-&(p|VF1Cq04T z03`YiJ&!_T1^8E$?&lS~0>qlT=EQLGFa3b4isEc}km0_iqy;otO^b}s0R&F)UJ54!11t=CK1zU~ zq81jBpH@hbH*v3)GUMWANSjj-z41|pS_~>6?LX?YZVHdY-nb3ZYK5iAIyHBZp=FnJ zPv`Xm6^p^C?*Qfz;64xf8nuk`aw?%r`}<>|eQ0-FW-drH^C0;-65F`r4`t| zV~i?y>Nupe?f*78U@EEgc3}|6e9Iy$ZOSxy0EQ$mv76s%H86_T>1e105Ief0jOz15 zZiIM?>I{S2(5c^hiN5#dTH$G?-9^x#LUsIGLykbH$c9DPMlfw zN>q3BW#sv1%(c@;ON&8lnf4Im<&O|A|1tzZo)!DE>Va<+cT)YK)4iAcOK2(C;;L=F znK;GNut$wWz#sn}@(7+gJ)RS`-!}_l32!u=QH17Y;ZO-V?=W0hx)HF_E>6Gtize)^ z4=iW!JCY|=&XVAHDnW-DFo)#Pr1fGkui1o9W&mzS8f?fm;=p8v01Xne>l|0(pRb<(jfg zEK7?6(lyka<8<ceykLYMZT{w~a2U)Z?HGI{`iK{7(*;h+m|*q*;V zRDSs3>~yXW>y$GynZVtRWR>8PRnU}v_fh1!akY*b$%l5@h8!9^r`9sy-^%&i0lYcB z2o>Wr^7{)jF0bl9N40LGoRT&jEs~A`In}EEFaZrm+tTJ&V80um;MUPU-gzTqMxz|E zm->>9nMbqPH&ZJJlCpy0juMI&-X{WHGtiTjkUHP+u~ z)akLAt#`U?a;1yHqrMpv9xvRE91j#dCrPIDd}uF(+M!b$3pCtxh89MmW~r$9h%Bao zkrSPrPjgOba5ZGKcK-yY(feq5Kipj#Q3bf-yjduoLeYfPke{;=?FVO68!V7x*#Fd2 zAvW3Vp|Gs9oza|1HCfjE6(K*d)YdHW;r&E&h3%}^+t4~%g zm)tx8BUVZJ=IB~^hKAaVbNNyPmeCi-C|My8)7TV@?T73WHG57q^20-X5{Wb^I&;HB zzW9{W8YD@{-GqZlpJZq38c%e-4_}@YeGHn}z>4Z)KB#E{u%unKP^+1i#yIJ;kQY|I z2ClaBK$dbOq{>td{Ja~9PiVvTJi#{pZ)Ls9&+tG0$Nwb*xS1%$pH=Jg6~{EoRG-;*9Nm*A64b0b(Hwt?b=|Y#e^h=UI5j3~P~aezo$?t&N6by5 z>OaBT6u5=S5Oy0X*{-0= zs;nrk2692OHkR_Aodo+V^17GQDr_`J%3!BOiiSA|FAbc3j-axAg-X@2XHl0kqwuIn zEjmu-VNx^j(|4;bl=v-c*3*lRWatSwN*47h1SWqRH;lth7?8@e%v4V+5g3r+vV)$l zd7JiQv(+j~lb{O{Es^fTv2d4jF-Ay@=E-??4>;FZ6hpfkH0mlVk!Uq%{8rYcYC68M z)>hGS7SQ_gr@_a(bPx=D@{VF%SaIOhE2^hMUI zESR&FPX7XRVG{LL)?I6v9CMPC`B8;s-qYqgD_HZMM(*0FjZmlM$BGut$H!Fc?;d3~ zkYeR45Xsaxz-_VDS4DY*f=|BaP-=0#3gzLrT*3vV>(C88R|HB$ctmFV;vy%eK%aR`nt3L&u^f zTY@p+U}?y7na#6m z54rXDZw}eEg0Erc2^|X~A@}`SX9I0I22}9Z!UA9EHJ;n?uy&iM!39#9kjkVkD|6u+ zDXE3w3o;6)G_zKpNpD+x)F>bfsp(q}MnWlmmO4VbT0amBren1w*<#MI_`K4DZ7n9p zgto^Xxh_5r)>6IXK%Z`q;(IF}!39cI-Gd>P+US_?xXT&d^wpNu)p+2_X)80RHKfa{ zALUR++N;@bEX9%#u@S=v2=9({e1G=bXzdSd5jCV!L&J3A$m?}ojW0sanM%+Q1<|d# zIhR8A?p-)XIZFO?XwIWluZsAuwk@+Y7d6o{IF~mA?5YMJLb!5T%7)Py7qediHwlXx z$LypCHEY*zMSIGy?#HTqL3@{Ii@ObI*tIU2J{;zldA45^HGw05#12`|UfUH3ij162 zkHOXcO$0Fc&H~n670aTC``49~E%p!ZrNHDTT`Y9y(r2!s96gu zbQgd4JAP;qeQ6Y@yhplUOyB%~Q=P)I^5aUxobL-V(^zviIqav)hwjj^KWO4(8qFVa znVVHAS%_X4>jv6_lj94fjHWDWxDoHR)nL?BADAIFH*I#d(Q09B+op5#uiv_8qnItM zKy$0U_R2!iN!+r;NOH`cP1c*g+WY9u0T-;5IVblfGScDLX#l!g9nqP`AjML*6tNAe zX*83s9{H3mgH_nbkkKXz44$W)(oKQZ=Y1FVqL*rutkGJNj zOZ1|{i(2FkW;?&#;l)-h8)oI@p^y&yl~X}n2PlI3|C;o^v(scZN0;PjyQF~8-*C8H zzwz-WpOOb6jR9tOeaTnz^6gemVGHcwoWZ0m%i>F`4d1QF?25GRgpa2%Y-AarR_2$5yV5dSn5$U+=>sF>Ydh;(>6$bG z)9Y5BYs4mC&H|djX}TjUU82&YdcQn}-1y8Z;2e{9EYnqUsMSRZ8{A>}_lM z{n*ywb<6+GfRch2ICLgQwpj9p!XJK=yN3Ei%-B%G*8v*FsD}XEP?Dkw7W>WQM z+rC!MQTg)Z4WGsK4DygJf5JI_zPQ0Pv)z%RRidnAE*urt3*}+z1NldZdY5TJSRCnUj(lw1^-O+Rd73e@E*`B;y*-~{H%9Tc2Z>Az`HS2S+-{m)Ck{242%rs^zyX{!4Sn0$3v z)_}!o3DEZDjG=kI1ZaD6_LpY@&G!y;MRa%V)hb^$Uv;`VwQZ{kU_R%fT0OC>+d zP@*xszmURj$phw4$v~H<7i1+AHWLvNJDJT!2iu2SEAH2en}ozi5eH8bLlSAW31#zoGXR4VQ}U}G*i$+QMXmlYBTl)huv#136zIRL+_u!$mYcAxL^Y-j5sW2i3 zjw(sBpH8+8_Ol@ZJ5H!&ua zyReA9PMh2;1+65pmY9XB!P4#QP8|a50b`w8f8HHBMSeu94yff{#t7A5|5OQW^R%{F zjM^;>%>$2krN}L%gQvsw^}s#0upavq>sxNQF6P_cm-PEZ8ES&qd3}{;+z(C>(+JeY z&jdX&yee2I-1iNUyQNo8FU{a8f#xFRT{mVOD^oX;1cB!831A15^0Z6E!YCa6(b{pX zcIH_P^Mw&wf_UdH7s5ug4ro+?&EEZp_vxpX$187Ms@%CVnY4v{5^NLQ8u688Vc=PV zWXdJCj?$?`Q`C8BI&j};pHtQ?>7(*WCjQC?Pkx2Jh%7rKWc}9n>l^nrZfgh#eC5jY z#TBZS64n)va#vB7hlr%AYg#3i)GxN2@WtIYtW7n195E;zeQV;|JptigN8X6nJs|T< zQ0W5)D1ZP=MF0{s8wq=uIw6nkGSjXkNn;Au%yCerNs0dz)++>Zr@|h`0FL7N(xl1) zU9DH)zo>wcebIcc z9dAFM9oH-`a}29TT4Zi$1Js$ox1!|ur-(8!i{|@^nl9+)64kC2$PrpmZAK~*TV@pN zi%^vUvXl=jVY-QeFKyUf;M(A~)BX$sE<>5VuedVm{*zGDt{0+m&>?iyfacsL_4$Eo z_rLTqpj#any3?A}K#>p~U9;ht?Z2A*U^h*yxQ%#qG#-yRK~;sIVPtO-A>#C|V$Y}Q z%td|V4OK94|84kFt()`JCkXfAHW3c`l^BhA5eKo)Uz+gT2JkzTq7ZLbi=A@w>n+9A_lQVo_&?G1-jSy z0{*&k1=irTK#UWmbwZ5LWx5P#C65|o3N0zc_1iR!KypsM;iJEY_w)^x!!Z%B4h_3S zu#CxD?vx#7Rc^YlS=epzJrM%yj7CI$y7|Ttk&t}e)$ORX>5gSIxTC@ZqQW74Sy=+v zMFU`%V1gPgH}uZBa-M z37XMlx(c?r>in-`lWiXd#sjXnzZGd3(r6qf~fv z)X&FmkHE3fcu=a;U#o}yyrnwfuv||wd0C=Or2@C3>Jx6uSl)QWaIRV(yJf%O<0$Ui z|Iky7n@@U35y^cfE%EbduW_Xx_udrQ>NKjEQVvtwt9>%>h{FO_)!t7ccDh9wON^He z%Y`OMshjoBtEOnR|0X8If}1zwVPH@urHge?#M!;(1ZUZi^Z>!$S~$q*b5*w-&zA?* zB^1SCR~g87KOxOkdpfiTiO4XN@^B*uSD)qerQTH^jmF>{PgBhKwj$rc6O#X=O#7F* zgrP1vtlZKdoe=9H-(%|!)^s$N#52M#;QH*RK8(n;F!sUpp;YQtKol2tyxSif*e9y!4E4B|f8$kgw=KWhH z%6KPb$U3(c0cA%hmuy^Z*;2Kqtos$-e2g?_ItJi8ueMyiC>3+Rx9;}vP1eYuYXlKxu@q^xz%ZJO^__sRa6a9$ns6+0}(stR}hmN zwW#FlbSnGAXZ_R2I)0^lY2ABhF?m;K=2Y6FRFvDd=FdYp2@bi_jIV; zg8!Nm0POi1^Un8XTs6am$A{b$Fx}N(Nj5?|sL`tPef3)x_RF_5*78XhgNnYvkQ2Ez-p!kZ!&d z)zQ|Ub#cWft^B3Dkhn0af4o?e(fGk3<9~w@f(^u`dOzSEDHAgWSq^h6YCapb3Ttj0aqS#`W&1Y#(Yk|uU>@rv4~$NT5#idJXz1E2(qCWiwk%PRy?K#K?lfxzl+1kz5{!}p} zV_h|--jAYa*$Ywu64}w`sZJGmjX;~ zpmpxy-~iN=8zY$Ug$o@X=rw?!>c=&cxVK}l9&lRvX5q1IGZgYPKE5i9uz$_PteQT? z1^|-C@40onSGO{}&kf~p^j4TQEOsbfrzB05Bi7y5=6lM+L!&S+6gQ{#$Vn8CmN@42^oQra zLQG*a7MUzG{^$1LP5lTR(R@jIO#Y%1l?tu}9-RtaDdmoorjz19Y>O9Z>;w>OFUuCI z!(wqtIJQ?wuRnLqwp&&WUH9cF+(4G5j_a-cI_HYpiw%u+C-u52x34OR_;|*tHhptA zBfE{K3vGW|4W^jvuKtKDc=PVM)%hrv4Eb8#Rn9emZyj3CIcRzO_8aB%*LlSJN$|G} z=fjiLM}!W!q5vcp72h0e4a;O8HWWQIeY3g6BeW7PWJxscwQSyB4a%zN4Zi2BnLMD` zyh2{7M;WwJoi>U#PwJPyMDGr+KeyHmlp|w4Jluix?~Ee?Y7KuiI`$7skAd~&2pPn; z#3)Zh8iM5n-<#Q1-OLJe(aR5G)Eepd1*fub`%#cp)d~){-7EQ#&XlCZCpeQ(!+W~M zNXg7wcL+D!W^LT^gvaU@F6b3;X7x0WO zy|4Q=Y-{i=8^=KN>*UgalRmYLZEwBnZ|cM@Ox~~puh@y%_}LhNW>VeS)tt?H{cjNw zvaBO40ZtSp@)zc;4e>#D3#>so+BcPA*rpVz8ZdZA5d5>kRv}p)zhC^;;`q5A=mbEu z4lK4`c(iyX!*_Wdg%##q?^$>0(s)L!#ZXkAM~3(p^K^!)VXMAw;fPS(f(brZ`)KmHH)1X7IUFxWr(_) z!m76F9X+%mrI_8Y0(q7&kmQrfEo_l2Q-u?^s-kSAlx^@9D>iW5N_B3n7gz;3jVHo7 z$;`ajFKFP6XMg=sWmPC41Nw6n_6%`VW6`nJD?1$n_b zL`|rdttL5Ke?`%E!L1ZfnD>Ai#m}v) zk^4G29hJNhy)ObTe3oW4L#^D(0@UmKrw4N!E!$R@$Tlvv*0nW+EjN@6FWa8|(Oq5C zC^c>c z2CG3Rx+S zl{KUwEBAD1XO+_1U8Kc(_Ni?cIM=Ffbgs6&v{stH4}mz<++47x+V#M&gP&>p)BQ{c zDW6^Tui75;H${E!k$QE!PNcVEVcI%(*NJGI6x-gDB&^JarQ6`A!{TQt#8xPdw~m2m z-}{u!GAv$etJ~9Jgx9jUs5!i6y9meIvl&D z*NCW~DPr3DF_15+78k5rqkK2bta3-B-ddUT=d(8rD(y2*%snRkekNKkOg=N1}yRpcJ?lEsN?bp8KaAQ}MvG^^!>%Mm^O)j)#%e4_6px zju&6rRq?i$Wy_22nNs;ORXmX_;|{z^ADu6I=k@BORud;*FipLT$?Sung4Nb0^XMXk@(CYGX3=XK-` zP^oKFut^RWTmuFRCF`(6w#vBF)L2Z=QqmvIYS-2qonU3c6GTvm?qr~-;SH#3mqYv) z>f(~(qG-eXx9JhXPdlOy4TPjf6lADmg2HB=xhN&LH$zLlK5VogscBV{3E}!LnAm@a z6{>OM&swUKVelvFE{iK%DyD3f$*xNIOM!D*y`v!7ubrk}y|-P#G0RK#-*npdQwU5D z^ZjgOcivja=Jn(f_ztAD7#bG!b8w5ZBWow=i4#j1wbEnRj4!2s3B9h>v~7Kb!9D-NMvd$Rae4`tH_=i<~~1J zVr2zWkE-ja19Ax({T+KeG00_k)DpMj33m}%)-=ssCFDo4SPZ=CXa)WGmM+szh)R^g zbe&W{HqlZk7}rqc9gj=Dx7SNQu4rD` zL21%-0`~}v#@uYgeWI0A#p+z@iKXqR6yzT3B#UWEyk%DqjdPaUKClxAUdmP-)1Tvj zZ!VE}t%Qmq^@AAfBCsIVm+0h5!$!j(RbLIQ5NECr0-{m=Loh9QT`-zh%yq%g8j|_m zNN?JUQh}Kv2Z_8-@wp(fBnD5zwY_dR88s79IpP+Kl59&z~PgQ1oyJ?kX#OiGc zpZ9&}`J>Hl!JN#`Pj#h=Zzp_!g?6eg+zAonJkh6}Pdp1X(b*MpHDnw8u#<4A!buok z@a3w+TZ6Ph|9_nGqcN&*^5%yZbhj8mEt%vEj^)XDo0JouE4QlT*Z%wF58sdRO|sw4 zr^y;>`8$@V6)&==c&AtH#n2j~(0wDOoz9BmPQ(;4r^*XbFMBnU-yN)u!JwP z=h@c?`pS?OR&HRVazBEw8%#+xv*y>AqmQq3>IC>ui|Gl*+qSwl3D(KFJr93J7Th4p zgIXON7I}#_xs5Y*@z@N-&e}0xZ%EwS=4eE}QXv_%jTSAM0p4$pp0WRAh$hLSs9&R0 zkmuPsk(Er?!OlOdDf&1x9gc|ynQdC(6G59G2Zq=--uNDCu41=vsi3zptVa$CeDo0& z7M2ZlZ^|W29hy6?o#3}EI3cCU836CJ_~|<_rH;N^G~#Vvr~5g_R14sA&BcdyhC!|Z z%wX#nlXr$26#X+EeM_1l_W9`%*PB#n58>;{oC)}YQk|f%ql-hbSF%dS8Pmau?n`?Z zdS^pQ1N7C4bSG6=vvKpISmwagT=CK zQ!dJ(4vi_a?>LRUONj}|i0!7Ew8KCIeg4CPjqf*Z58Nq}>8`0x93F962Zw{%5glnd zL)U0-XYO1Ecs=tx$VlmNr$vn#-svg8=EIcFrm;`2uZE1~N`6WDc<_Qik)5d}D!V&7AZ3+XzCI%)(kprQiiVUvvv8NfDU{bEpJ?TH^e>}pZ^&Js{hL1( zy60*%dWAc8lT(eP{L*WAZ~8b5N`CNvWs^s)@X0y}4^$$f{nJCl?2&8`{%@N+yd$Z? zu*fWo#l61ATv?u1UGBz3t@H8d7D*YbSudu0r{w=g16ywvy`{G}Yar2B(nmyprMOjB zA4oRdY#*T0D8v{KgvbJV8j1&R^U;QfkMHW}@;jh^b4R9{m+-g4nbFNH%TS<7_Q8I) z?=Q8K=`aT1fA#d@n(I~wFx}yn!5VB!E|B~ z&^&>a31aq@Q$zV)7$Qs%1L&Md33ys!kesaBuePTo)w3ck4sd679C!c=l^dhK;7P{* z7N>yL&aK2=sT~zf@9u6H$+b8YaIjv;>6*OZ$|&>c$(o7w{YbP>Qv;?UXZ^vR>=3Ws zheT)h;+ZmC3nY3h*fD+=dnY4*H`}Ku*tXqoB|gSv7$u1?M^FeH7iAU&rt%ETMFE5! zk;>HwDgAl@Bcn`B97kj@)zHx1o*93`n>#v7Jo#SL{H-~nVXfx$STPo`a56Im)+j@^dj+_L>-Kxb2JNB85eDWx%V87RhcY5 zE`kk;D>BJUbOFo zv0_2Fz5wilhF`d+W5<#vTd@s!)#{Po&W+JU+hInyr3{E5Uik(VT-uubX8}Anm|an8 zyJ<76?rw~3#tzdr=G>FMkvTj%!4Q8dSIN1FIySw78nHCmJv=FQ()0RHShDL{C;JlM z+FeY~TL~3wEC203N0$@Ml|S-hZLEtDfMIO5$cfoS@n=|w4xM_H@-!DrK z0B~Dp>~0T57uCgA1DP=Th|QnDT^Qhg15q@%Y%8&TSW-lyvl1ImWj_4oEhY6eF-XXM zN&429<3qm%&j;mWKoqS4ye_%Sidi64AyZ;d#LB;0?+x0NQ%?%pHKK5O$Rdq!P_^}CXwT((3NJIY=pM2L10I1?xZ zB)h5~CR&GFIqla23=kBLe-?@UyA!-O{RXJj|J{vprUYhdWUM^Q-m$G137af0>svs_wlxnz6v&GGCtFGll2 ztUOfnRXR{bB?KYx`+|bX%u1o)7(vW*(|Hp_E?Kd5wvQyc(VSLRDAm=AMApUEu`;%q zWrU@9_R!8MmDo%3=AQVt_XSmhp7)=j3H(S*wjEvx1x-;40`CG^)s_woq)otKT|-@@ zLJ!k!Tk5lXjsERVy)B^8U0mI#Q_%Z-A77VPzu~CPVf|(lW3ncPqG(Mjp|C1&qSuUf zou?8lF}Db>lE+K3kyVu+VIkKHcMqwyTR7t^X~<^VwaD#ffga0Ivj&D(B$EY)`7!^L zH-tupqN}Sms+;xzDuL=^NKP|0)qN_;I!F>R?F+XE29!lhI?eV>@~Ht$1~aq#U90oE z#6F|r?z-D;2pWBXDDzd^;qk+`xv?XF@g^_;x`7nYhva1Ge)fs93pW7d;XAeF@ZY`_ z#NMW|nA``UzVbYt$BRbXFSdaW)WuAdAOfJea6?pIhpygTNyx~cAVNynK0H!B46bUWHVMtT3qK3ds+?(faK5;&2|O-o8$ zDYWrbgU9HSbjG===35k%HX(p|_~#L|#lNx-Z}KOV=N8@*8{^gLszxg!G~MQ?N_Q+S zbv{<~=hn%})PW4{h21K~nzdK51%N*P29p>L@HJ8Zf|v$M!74|n^I+3U+aZ+WAqzO%}q>Suc|r=!)cNBq1!dGYPbX#$h34nYI|`&LR3!6M;e3O~{vs;9eGJmCU&ht<_z1JXQ|}85ZeGjWNE_J;d^x{1t9WMt z1ET6F@}@z3@g_S98k9w|^JUq17@yISd{XClEp{l`xcfcaqX-r+ z3wR2a^e%@m?ZlOkzHyS8&IoQ(T%Y?xa%LabBj0JY>}VE zJheo`OY^(--xr<@6Gj^Wczu0_Cv-C3Ii4PYr#QZxX7BE7&8t)H&t^yFEsJ86b)+Pc zQaVs!LP}kV-Vf6vRI$+70u(4u%cHk|)NN#k`V%UE$aZMxA9yh`3Z~+(3J-Pg76~%% zTuT*1R;KB@szPb_j@lDC|LX`a9H zS9*=Gwk?5wJbIw}G%QO^57;=ZZ*H>E`EefkWVc5I!!Zbr(PO^js8vxEVj)k(;8G%J z+fZc?N5cRaQ2OCeDYT%Wgu`5!EKR0y`*g4!i3Ck6NGG|-R+jXwv>SDjg<>S%70Zm2 ze|N*5!oUHZ&s7~8O(YhXfmFb#oiWFzgrI#9=23^Q0N6qw%NVOOp=J(6MRm9he;Dx2 zt6Wuhd~!H?0y%w%`0Tx0X~59X5lj!lbHkgOjLn){i_wLGR?ckhouJu+#s8NwEH=Ra zyE+?d@pGeQHlHkTaI;t^OCz5?cIFa)JU*e(RRBE_a$87vfUb`lP~hSSre zNT+;ZgZMJv=a&u2|El~vj9|yRS-{fA1UWe7C^4-Ot(VjQo8Mep+vSwSzT5-jgW2D> zg<^X=JKkHH9IigzTtj5$Yf@rsA=+zpp6U;}Bzx5-&>(F(x8ZH8-m0q?cqJ;*^g5M^ z@O2>((Y`3UvAdw&HS=00LHPfN9uzo|Raa(;Vw|3E;^2q>5Oa3AhM1k-#j4j{0>0G; zxkIpphB*N1SO_!?pqJVu-De9C4K%L)tR@=%lkt^5uIUof+O26JeQx=a_ATnT15F`v zZSqxZ&fSnx0>TD{>yOebjlOHxfuwWB3t8BNPb z=k8Hm#bPsP=Se%C?n#4=e*KFMBR|ETTWmLfWZRq0l_|=?Y~J~4S_9jkj$a&>P*F#9 zhSR-(A26BSpt>I`)wU^Z3eh`0cYTrvSWCsbI8m;J$0p6}Qj_}uBTq=gtY=rzC@jC% zMEAmQ+FZA@&_VOsZ!=*cPcNdyPon{y-(juNiZO7R(^yAg&_PJI4-KECoQGJA9+XsS6)U2oV}iB#+yOEhLapN{pNJ9xs`JC znVANk^J0@+lAWj&$T9^9cYad<^aa;>*q!Ad&{o#@+V$&S-1y?!7hkL?XXDejGLvkK z?bjyJtCn%H$~~8>)0uW!5@qx6%Q$&GJN`{3POgW|t?2WU8Tr23Ykak8JxP789!&PO zkEU-X`v(6Nl2Od0xJ@|_QbW)ta;MpiwR6sg&R@zi?1w5{!9Zd05Iw*ec5gcyKMLSv zYbl}92YXrH7TRo-4T<+2BU<+Zn-|T>ml$xK8dE~*c=@m8Y3E(_ZzD5x@ z%iaHbW^OxwoAF;`wwpfLcH!ri#t>&UpT33*baCS$McuhYuwJulZ(nxbmV2OmQH~j( z;b`y{zUInBTW?UNN zyXLF1I(g?cWPevrw56N7BBtD-E8ICuWBzygGK~$mU{0}hNN@BTO?Dx?an|T)Hn);l z;vFlLPu_!8EWG95=vw6}uM{f<^+V9!oT;3Xx^=)=%z^(A< zM+VQ=UkAZ#i5FNV!PYV7l8tN{PfJ$3=|B<7ixa&ILYmOpI2eo!Q8z5?KrD;h7DgFu za`eCkmFy0rWyokjiusonJTA_48YQtGoaRa;{Q$BVlt+g z8vn8J^RvxI59{qpPcPp3X8rcYoo~Op`|tm8@Ba5cJowAQ%}0;_`r}VO|5qHeY&Y@N z{`%Yg!Qt%azaP&}PG7x#^Y(AouHX3hlTSbU{7+wev_@WEvXMA40N|zpOpVVz@gf*S zIz&MH&8lT1qar>H1^4p!I!{ZAfc08l-B|wWQ8Ls=^-0U?xjO_7^!WQ5frR%r z0>AHX)F9l*!kQ>j*grjkUR?(Zb zxUc<+iu_j@p7e&1Qa&%+97gVr5F8Wm`zq*Hvx6I>@h(M>P0b|jdtj7o^yPqrpTavx z5z$!liER((IhNg7bYnA~vg|r2?I&)<1Z*S$zqn5U{Uefd7uvnB#5)M z1Z`0g8ny`KD&y+%?^^?8{GicOUuoL<(A?xXZ@IPe*-9T^eZltBth~-wINe#O_2JOG z%OE*%^|S3EV#d{mw+Zxi2FNc0Rq@dP28Q8or^;j)Y)IYb&1@2;Q0#9w6`8Y7q07z? z9_uRKKY3I2yre^DBbH~bj2oY#Z2yG_Cy%bjqZ^;L;!p&FCLsbvdO3(z?qCbK2t-8Q zX;+xfONE?>$Y4w?iyho7ux#=4oFUrP^C$GFOAe|hHx-F3!z4k~FjE*FPz_lo0w0zG z;vnuS3tM1Btq-kee7pz21ogTl0Um&<|JPjMs=HaLYFzp%5r z@#$yGX7Igj_{7EfPpBp%BzeVOcF>H;#?#^aWU7gEBNMHuIwMy|JwtR;_(?0wEnRzebyBaGZ#=gz(Be$~+ z$~@s@6xG2oO-PpY0L{th*6M#H^t1XmydSGyTpfMHC46=}&R5Q()~^{wO4)^B)}H(~ zKH&qJKYjXY}Ly*1$D zagkfl%u6f6Iez-|@UM!i4K&s?dsDph(WR@SOKX>|D#m%~t4n;n;l+f_J*t2_dv;71 zbN1F^o-xBy`;lL`NK ze5Rexhkh0tj1`+BTR-2*8R*@uUu;1*_oQi+t)Fidd1hO`8+G=y*EFoXHh;dev@@Bs zuA4fo!bhj`m$n0~pNn0sSEcBF#whQqYHmMiM(n6FjbUM!Grlc0L1QHaK4P{piOxQX zp8vOQxR`A!Qf4T__@VE#FmQTjOotf$QMG&C&Jo4L$I0 zAKoL{&fwwR`jvB;o(ncUd`%%#LATZ!l2F12HD~zMdw172zTe!?ml=upH&PHte$;6K zRCHW?X^yskd%;a}r-ycewS6Tu90>Qx!}Fz`G8!lZei+=Vwkr0lCR|QbL*pl$H$Zf` zAId20?UZcF_v1{yDX)%al+ZADet8!;2BnGWZF>v;+TfPFlY2^hC!3FCRg2km9+HD^ zH__O20`?{xY=VTP>a4zeB^&Av_bLI(es>%-Ijg$>Ma7zJHZnZL=X_Jqnn`qSxpskVr;^_n15WE zv`}qI+Sl_pI%JRFa*#Og&7hriLO4RE>_*WWqi|h9*HK3=y4KHhZ5hF zqy?+4aPjIzwhWlyqYZ-U>=e8(f-3zei`FyNwx3Tq-$6-7#kiT*7MGr_TqXtguy)2f zr6ua#OgiM(MA8(|Z_e^5PRb=?N*=6{{&Eh4+%T2WDdV#{!A`%c1%m7XJ4tT+CbBU6 zfhUip!#LU;>`u7akn8z&-s*77K1!5LcCCA1(y6=x0TtND)WwKg1qi0GnZ+%ZIwj?6 zCNaA(OCs4_FGMxaVU3yvIcoVl%RI*7vTdHAbgiz0)C9x%IRMM#o*!*KtZFD49YNo&Vbqe<@%Q z$D}#kx=0cB771_Z^Og=bQ^= zKv@+W#;~j-9Tm+d{yA2Qbz|D4QY(}vO9}Sxc%9VX*?~Z@zGj zbC4arBw1G*noQl@7;(L6obE^*LCVaod2gQWkCW$X9C2K00BHZtE@dW7UWM)Kl|CAy z0va~or^O;#^NsJdDn=SksKm)}un_FFwsDZ7$?l97l`xC%oHW^2qAe{g0Taw`+99MI zY&|qJ?3}k$5sr1S0$UmMl?w6Y!3?AdU2HSa!1U(pgq%{Y;Mf@2YZNvuIYJs*-#R>u z#5{WK^ca2lhqcFk7iz|NpVU%izZ5ac0iA?Y8U6CsbYsvqm!|(s6bBMD3nta3qS6u0 z%xf)#Tshn=o62Zlk*KOq-JA9=trtaQ$+(VCBZQv|&Fccy-{6GXijBMIF*{Gmd6I=i zr)bN*rZE*%W*!g}1OyoVUTk0`Lp*nZbBfl*hegFf2$@=$Zt17_DA=-=irhA!(JD-k2gl?B zPF_EnuyNFRS<3-@dht2N9NCRZce*)VV;iVO{Pb3yccb0x(?cO7`uf2N>X_OVq-&~t zz;v%P*CGcYJmE6dDGKahM#<#B=z%5&c6QH7KFGYXCvjdb`tynhhodbozs120jv!3A z5sA_T-Xt3SJUi8j0S9vBV92p@antKz-szNGkp;laeA}}8Bs(z@U0EEO6Q~qF*y1b! zX5xVkniOJiu;qB41GRCGG2oCBM=$(_M>L~;SH!FXn<`Y=z8-UPHrir$dCK;6OEOn( z_M_;=*)s_s&oiF|xP5Ox6xJ?c-Fo%$`1+0UwXH;@O~Kp9qe3zw;4RGL$IzkdtYx2z za6f$)my)))5Oy&*^ET_7?oL?f?h)VTEzhp4tv}FhiN5AHKVZmdT>V_3|78401H9G- zfdpo4YlOrT8Rf7@c8-4UUN;*zOUZwRnd(l0CDi*4m)e1X`7vkahg}Gr*tXH zCTzvUFq<5H2Q5LVjYFk;D?zyPF=V%!Y2F0%uOzbFMEG%^`tS9 zZY*H($CvCfC0#0WWnAmkKW$vYqntK@S1o;ol|T(ns=%IGU-aa(#R+7`q#SyWPlPzz zavGhOpz_gZE2}v+vMOPD&4ww`kfR)zq%poWsV&BDy=&AKU#@4ggBn|iwU7-e%NUo( zqrkSW@JjQR9y$khkIB}-dE2tAr_kSzs;SF3Ht|fYGOiP3<7OH}XjcgtqYugj|C&|X zH8!Cs38Rx^aw`J|=qlCQNG7q$Gx}t9p!&c9EYwpMrmX-srm4Am$?3THdxG!g54dzG zxVY-WJHzN^pOmg#lms!geAwx7jt2GQBenRj9zgdpOdxVw*#q{@3ZhXRirzSE zKi$;@Rz6p4VB^e+qMFYq(o}_uIaiM~Y#-u4o#!RIU4>*5cP2wCnag+qhLo7N$|uV% znIVqUOIoag(>^@DCU$k;&L9x8G@uXgqB)PtgD-yz5G&)YX4%ietKw`qoaibmT{KhKH7cB#u}h zA3{^Y^`Vc35rI<5eR+UI@pv<)W8=Q15GG|8a2Fr59^uN$ zRnjfH#N2&z!izQ4W`H%J7B)~9FQzL*UlV7h2>iR~6RL=iZUTp({ZngRxsrPG%9R9_ zKJyl|t5Q_z$|-`Z&W>3N<6+Jhrp)O&Un;p*t29*A-P9qQe*UG^4!Nqag)>Vd*QoeF z%&`>*GC5Wp7XXWUDd?NKBs)y+lZ>V$7gAc)l@Kao@Us{J$aPTfc*>#5LxUY$MK>^j z>>Y{&Vnri)cHprrXAN4G7~nE=I@oJD)IU%5l)NnnqGqqNwN^|hm8yTo;$uheR)Ur+ z5T;#|mZ|LAe9OI(^s9@u@qHmu9VF=?$;MK_){>ntQbIUhd{}kjg{--68a!E_8#X0vy3W9ZYaq@Eqv=i}!GIbZz{n1$6&C z>cC+L*^oij6O4aY5d?Co7I3vOpa_H^rJF%oU(pw}GeUv@%fY_C{dTe&Hm#()?BGKz ze9KQ)$Oj7EY&8VRb`P^tN~|Hu+O|bsqu-{_r)KaeY?yyWUz3v^!XVKH-H|77s3WH; zeRLRwD5xm8zuYPAAJiVv|(LeSGI3b|lgF9^fjE#N98lb{8Y%>p2#UeE+UTzRI%l{0<*I47a8GCxVviA8 zf?)Hc!@5wus_ZFJKmcjRsc)X>>u^DZozJ$M@$F?;kfWbgqse4<^+%jjH+y&esFNQB zGv8`H0m|qVW%#Y=POh9CNb&qB16!`Ar*XOcB1cJyj#G zT0IxrhR6k)Q;6LiszZ}7WLuVsph>rUl`ib5m%XOLHe66v6)5ZL*_xrcKqG8y(~vr< z>`|C}mvR)=WpV8s27JD_dZpkUO}A`ee1Dr5SYq7ghVrG^8om{idAU1Psbd!7y5EBf zrhA7NX=xAH0RHGZ`}~d+)RKW7HGJKxKEzbETs#LDHM!JDygK7uN{K6~l zSbjtDg3QKJpg6W5WHdL&_i+IoP;xWMTJBmfOY5|H4D2b^iLpfjBZJj`bL$+fHulCh z)2_I3wH3Id-4|EKNAulas%VcU)dY%)Wxd)m+K3g|^JxKdMdaLPyajq~aa8>XQ!`Hz zDZi|oI|O=msiEXS+g%bTI!?E9Lw$&^|Q9b zjK>%Nov#^${FChtBV~iMxnQKhAwaJCMuJ&$5kiBPtp!#Y{)hE5W@9=NQ;AbTB`^~n2wmr3*rje;Jxak;QXSJ%qV`xjw@ETFDt zOLy;+$)H~y_h)%w>-4It8ger_KH-?%px=GKu>- zk`WDl3B0)fCexyPY7_CY-CahC6k!Rhi>_}@&>HrZgIV1@NVNe3tgH$9)5G6HDf862 zeu~M5>AUk(Hdu&c}oFWU)SlLy; z&Fq3)@@y~QHxDXTOOt1-9}!6H3QPfM`4VT5f8|Fks<)JxJ+%CSdrWSrlk#@;R?{bw zO@qAfYan7i`k(*f|Fo6aTss;yxT&bl43Naa4vGciI2{*RcyCLJZ^LtV%zI&La$!v` zEa}+G9>a@S+cOou;qSfVrhn<(w=8?wX|1_1vg#L~dz}44_sR~xF za12JJRUGAwg(0iSi%}kOFK%% zyF`VXJzX+7YVJz0H`q0sn|fJ>e_Kg{s8!1ABa+(#6NyY*S~X zZ_56+T0@Sr`ES!Bn`IZH=H%OXIm3L6&ue!FQ~Bj|Ey3U2rO;Ztsa*r9wrG>%f2e1l zuL!Kn)fw~NP09ZOqmCU-MM6d>Jq9n<_t>-<0pro=R@9P|Hp5z^Y;|049zfSGpfg>A znd7P4!qu=Ovwv^Q=FL4vS0E}swoiAbGiq${1BLkXqCu+P>9}(H+9|w5vRiWqPo~|b zgfm9ob636tc2Iq-W=lH0RXvUAS&4XB+8!dHag5|QL#dKap8J;8ILJq<26rx+rYDLw z(}N^@x#eJE9cC($^C75}gsSr`jY^5C1GzvR@qmOA)>R8}gqJKRW8fM1?j}@CvE5S@ z$hVFhYM9$a7c$S)LZw_!_g=<0-bm%e4XbJ57;P#hmtYae3w>+YV)2(lp{OczGs@!_ zI#VH6O;d)TFsTEVrf(ddF{|$8hM3Hhx;KU;Wpes85jJTv4AA@9gDTY-n>)H7;~BNd zT$TC3fs5)?nY#U{25il+0JQL+_74c#TIkimihktxF#wU3xZ~B75CyYUthKmJY@&Cf z&9d;INU7W=TY!_xGLu96;J%-u?)FgD2KIo8&fbT9C}w#{w7eU4a_OuNlY&hr+pq zF8M25f%a5m2Wx1dUEIuzT8WTH%417xM8WQq@dAWkg%^}eP-qw|XX@C}O;Gcipe{qf zv9SGi5KGL|u%OTIahi?772VILD(Dz)w|7Fd-v0hOzCt;+-@QwhUp!6p2A@P~ntGQ1 zOUB46vlr?;n(nL19lt3KLjyxSn$5nMhT9L8xWl6cuF=Z71|Y?)$D{k(Z=A0I=jNyf z9ZiP#qnSB7tI1s99qjh7ZH&9*rf3CL07j{G0p%eI<5{Uoz7O4L_;RHSD|j!93>pB$ zs*rv{GIEsaWRB>D1UgiAI$vkO77>=C+j~=LpW0)h?JmsVVSE3%)WW9a^%$i{*AM*% z7TYnSr@>ilb@wMt27?&DlownI>%+%>SyCW!kp&QH}Lj_F96|f1g)nf%&>m zKtQ!t+JbBt&Ru7Kp{t;ZUKW`jTT>rV=V+f^^e3hL5|;XKTwq0)9b;JgHg7PJc`Rok z2HUuNE--JQ*QLAcUL^ft+Zga4_%@B?i1_n>)`TfPYzp+8xzi?seOP_tDsd5X{>vH; z4{qQ=I%$2k=iwDsWN^=M;e6KL1FN7Ns@z}@#yk~hITT%d4Q>o?XHd-c$f@a!t;3|q zSWFCK_LlE#THQD(sW?iE`z^&S?i6-i*oPUVCbZ2rEZ@VK@Mj1LAq_pj&9Vh7q-t7c zh%Ij^oo8-b0ktd!zAsB$aMZ(JryLknSs>090MA3U zoQRX$rEf(`Yt^5NCbEfgeyl;z(4&**VuwfHzy+f{`} zvIv{9`=!%N*egC>^nT!)gY5P<*mmuFH8Ur+G3+CAA$>*FF3*jH(LtozG6Ku##I5YM z5LRWv=Isb0LuRf zC7CQF0>HA1-V`mR)>6ZyyP;)Hqu1PgkpKu{Ik%-u$Z~Lmm4o6K?UQnZ<()yqvN0O% z{!KTqQ>H;JZCf<Q>3nWqO29cVgg+oZw+RrTeGdRS_$(~= z(J4CC&njL0&9&`Lw?|I|+y}&BIBK|dhfgxl2--@6cg=qmF5gjGj9qfGah4qr32taqiW~psn>4gRX0RXQ7xGT zs|HEuQ_8Pv2%nrbqGB4cm+;ssFrUQZa5dpY$W*u?TAWFQO~Ph5Z&(=|D3c%G3zdwY zOOML)%D)yu)UszfRW&b@&rEV8DeOO#hiFK04VwXvV!(B`!H|lWGlq=|0Z1@+qt+z; z4sX%+K8NGOE^)*(Nx(W0l=2YgAB>;b18pA$w=)M^(X13qFXzUbT6Fs3Z+N=QA@i*= zmqTti7~soGdMtpq@mCbLhZ%@VR!xNz0_`aQZ8*Tx7i(tBZQJ%!EyU>*-~#ekkT^#9 zNSM>+FSEu?$uR%B8=orytG(Ym)W?R0aY9F%Di2>ry=k0dgj_H-{O)(wwk%Mz3KCX} z??;7B4ScgC?HHq7mX|x^agKwq1{CvwJHT^#BbnuSH9GlBt}xrn(XICib+`Orce*+l zsf+t!+FG7^U(_+wi+^bM^`!)|9_Q>3)+0vi zLe5GL$Uqj;@IG{~QauA?w`Fs=T8E-)j7Q%uN)(zzQ9W$tpO40JASeQ)P}2p!bgXGc zg&e-?G>SqB5n-i>K=rQOcV;Qnj`Q$kEW74WF1Y0*)g~V@jw7mIEEdJ32)7rALwW`8 zV7{(Ib-TrVNvo1jmnf%5!IuIq>F@0IGVMF`hXG~xh%*#EORbUGU%Z~~p1cfK-^+>O zgj$_%UUDK>L~TyJ!uL9s3Mn!eh@& zv?Mj}YJN|{mz5JG`L<%>B%Trg_x-x*0|Syn>E;JgeIxHbpA>vh>skB?I)s%mQ@5!W z8PCtk>+cM^@xIXjodE~BkB+Vg+lGb3E^@2|HI**{*0qH`8m!$f0joHTLXgM3%YGQe z(VLULzkTv@d@wzvSQ%KrCD0-vb$c1UwDu>p`FDmCwfFADWr#si+ef1+NaD_0NpW@t z6Oa5Or{ISPp@gW=EKvdy5Ho15k&VCI2I9!g?@beI^ToJSOwva)F!04sW)WtYBFD@Nx$Y3%`PewHTA(VLY zuTr)bWXrzm&8@*{|ANu2$A`Zi>Zn#{?w9`fuKoS{rLB~Ua7NfaK1$;HC+1>G*_9=W zPrflOxQx=v0@nHB=kiHlqkiM0%#WIp;GEKvCp*AQy|A&boVA%@#lw#9zHDA$Mfek+ z4J$EfgDtI6J2=)Yv%%lzCMVTi9!qfdsTSJ0aCA)=vw&>7DVbu>+{kt}@HSRBgS0y@ zo8@Tl+jnhT$ptkn6jKI+?FL@1agCNJR-P_%ek;?5 zk~n_+c9YL_6k_Gl9~l2qvD3YY?ZSir|I+{0?CHqZ%rZf$wq|)Sk)oN;nU6lwZI1Nl zW_+px1t|7Zs?joX4@mQPg<6vq)vQ#Qic}9B2aZYmSuT;$I#VkPR&pB#_dcplVI&{! zz;>rEUW`XSkks`0n4l3vqWJ--NV4$ETVSKOf6KZP7b)gfU%n>W&cZ%DPj3dfbc$8I zTZr#Ks$70%#E2n+7&VCVe1b1^I-{;fFq>|rwtbsr9SIrr$*N@JoXe!SMHvuMPU}_+`-szeX#8P`qDb{Z;W$e5Jkx?a&rRbO*d0 zi0Mq!X7$V!jozMzZ$_i7FENaC>ck!A{yFj6m)t|Zqk09x&8BqpMZ0ZQDEIbXM`)z- z_s)rfd53xa{^i>C*PiAfT#xEZyF3{DzQ{1mr0TZ~mgKQ|9TU*6CGa|HB^p=wk z&5?BLYA}DTVaABRv9}gjU8{lNW9NL8OyHvSgxFRrg9 z5xvza0##b{240VenjnDROT#aQw9ft@?9}(JBr)ICI(c?#*TQ6C;X|+gur9sVPtE8U zT$m&^iu4le$PzC)1+FmGdq#;_=vIpK@$tUtz0!xFkSGib7VnBY746c+WqCiWCx=Zf z;V@4WroAPuww29%+gVj9?Tdeicgxh4vTtco^!vVDs{)*MYNwICg{JsY(d2=y(hvft zqy&*MOCJ&A(_JC?Cbh>9PgTqn!_FK;4c;1EbUnLFk$SHrWj4obXNR*A`g|FeMAX>0 z#4ZCYBX zS;K!HW?c>GOM@Z?UdnbFrf2uXCwBZ`pL|;O{>rATQu!s zMms8quQ(sOINz!SJBTkma9Tdc0evvp)mgzf5W2`U`Z(I-K{=O3Zpd{`S*QcF3Z$@L zYmT+%Rmh?NHEtS>7p&jb)M%}p6tJ@Jc1Tmf$|IV~>61Im*e~z-N^EU74;Q_fjJW8^c4OG)Z&@xZP{e{j zDpt1s{l5%`wBR5#c!*l#V<>##B=Sj>p$EAmzqZha2>aMl4j%-#qZMZhVkdg}ji_W6 zK>aDA2^4$M#p5ss%MppG!IJG~6~rf=TX;ypnHuu3boj_L!8q|CPE5L_r&t|8xk2Sh z<>2%5g?y-;AecP7tPrTH_05NO`1RX_gd{l{x1+Z$U^%#r*+M#FDP(1zRNts#a%};Q zxmP1;rx=fx$Zx6mnOCHx^rA^UH58|ixj#?sa4vy|0Iz3(>FM0te5i^HC3a3t8G}?c z*-=>W_I~Pv(#A3|gz!?$~*HF_v^n6Pjk}_zMBvFO4`UL7 z3xSac^qU1tVyaPX${;d7^rChZZIZs-sTFnBtQ|$yg$dleI(u1pXg=*bU?i4%ql}w7 z1H^5{`7jR1sVrfEd_9C;&Q}SNd7i0i1ts4_rMmW&xkIzx_66cN*|i??sqb2Q_gO_$ z=m#&u0(Q8S0=008e)X2R9OCK4FFyP1^Ups2^wZBjzJC2rAAi9Kq<_8m%hii=o6RrY he8QhNqg4~@;?0k*TFKyxH_L5AT>m-d0L{hU|6kUIB2EAR literal 0 HcmV?d00001 diff --git a/demo/dist/libs/dropzone/dist/dropzone.mjs b/demo/dist/libs/dropzone/dist/dropzone.mjs new file mode 100644 index 000000000..bb3ab73ce --- /dev/null +++ b/demo/dist/libs/dropzone/dist/dropzone.mjs @@ -0,0 +1,2111 @@ +import $ewBKy$justextend from "just-extend"; + +function $parcel$interopDefault(a) { + return a && a.__esModule ? a.default : a; +} + +class $4040acfd8584338d$export$2e2bcd8739ae039 { + // Add an event listener for given event + on(event, fn) { + this._callbacks = this._callbacks || { + }; + // Create namespace for this event + if (!this._callbacks[event]) this._callbacks[event] = []; + this._callbacks[event].push(fn); + return this; + } + emit(event, ...args) { + this._callbacks = this._callbacks || { + }; + let callbacks = this._callbacks[event]; + if (callbacks) for (let callback of callbacks)callback.apply(this, args); + // trigger a corresponding DOM event + if (this.element) this.element.dispatchEvent(this.makeEvent("dropzone:" + event, { + args: args + })); + return this; + } + makeEvent(eventName, detail) { + let params = { + bubbles: true, + cancelable: true, + detail: detail + }; + if (typeof window.CustomEvent === "function") return new CustomEvent(eventName, params); + else { + // IE 11 support + // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent + var evt = document.createEvent("CustomEvent"); + evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail); + return evt; + } + } + // Remove event listener for given event. If fn is not provided, all event + // listeners for that event will be removed. If neither is provided, all + // event listeners will be removed. + off(event, fn) { + if (!this._callbacks || arguments.length === 0) { + this._callbacks = { + }; + return this; + } + // specific event + let callbacks = this._callbacks[event]; + if (!callbacks) return this; + // remove all handlers + if (arguments.length === 1) { + delete this._callbacks[event]; + return this; + } + // remove specific handler + for(let i = 0; i < callbacks.length; i++){ + let callback = callbacks[i]; + if (callback === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; + } +} + + + +var $fd6031f88dce2e32$exports = {}; +$fd6031f88dce2e32$exports = "
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n"; + + +let $4ca367182776f80b$var$defaultOptions = { + /** + * Has to be specified on elements other than form (or when the form doesn't + * have an `action` attribute). + * + * You can also provide a function that will be called with `files` and + * `dataBlocks` and must return the url as string. + */ url: null, + /** + * Can be changed to `"put"` if necessary. You can also provide a function + * that will be called with `files` and must return the method (since `v3.12.0`). + */ method: "post", + /** + * Will be set on the XHRequest. + */ withCredentials: false, + /** + * The timeout for the XHR requests in milliseconds (since `v4.4.0`). + * If set to null or 0, no timeout is going to be set. + */ timeout: null, + /** + * How many file uploads to process in parallel (See the + * Enqueuing file uploads documentation section for more info) + */ parallelUploads: 2, + /** + * Whether to send multiple files in one request. If + * this it set to true, then the fallback file input element will + * have the `multiple` attribute as well. This option will + * also trigger additional events (like `processingmultiple`). See the events + * documentation section for more information. + */ uploadMultiple: false, + /** + * Whether you want files to be uploaded in chunks to your server. This can't be + * used in combination with `uploadMultiple`. + * + * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload. + */ chunking: false, + /** + * If `chunking` is enabled, this defines whether **every** file should be chunked, + * even if the file size is below chunkSize. This means, that the additional chunk + * form data will be submitted and the `chunksUploaded` callback will be invoked. + */ forceChunking: false, + /** + * If `chunking` is `true`, then this defines the chunk size in bytes. + */ chunkSize: 2097152, + /** + * If `true`, the individual chunks of a file are being uploaded simultaneously. + */ parallelChunkUploads: false, + /** + * Whether a chunk should be retried if it fails. + */ retryChunks: false, + /** + * If `retryChunks` is true, how many times should it be retried. + */ retryChunksLimit: 3, + /** + * The maximum filesize (in MiB) that is allowed to be uploaded. + */ maxFilesize: 256, + /** + * The name of the file param that gets transferred. + * **NOTE**: If you have the option `uploadMultiple` set to `true`, then + * Dropzone will append `[]` to the name. + */ paramName: "file", + /** + * Whether thumbnails for images should be generated + */ createImageThumbnails: true, + /** + * In MB. When the filename exceeds this limit, the thumbnail will not be generated. + */ maxThumbnailFilesize: 10, + /** + * If `null`, the ratio of the image will be used to calculate it. + */ thumbnailWidth: 120, + /** + * The same as `thumbnailWidth`. If both are null, images will not be resized. + */ thumbnailHeight: 120, + /** + * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided. + * Can be either `contain` or `crop`. + */ thumbnailMethod: "crop", + /** + * If set, images will be resized to these dimensions before being **uploaded**. + * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect + * ratio of the file will be preserved. + * + * The `options.transformFile` function uses these options, so if the `transformFile` function + * is overridden, these options don't do anything. + */ resizeWidth: null, + /** + * See `resizeWidth`. + */ resizeHeight: null, + /** + * The mime type of the resized image (before it gets uploaded to the server). + * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`. + * See `resizeWidth` for more information. + */ resizeMimeType: null, + /** + * The quality of the resized images. See `resizeWidth`. + */ resizeQuality: 0.8, + /** + * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided. + * Can be either `contain` or `crop`. + */ resizeMethod: "contain", + /** + * The base that is used to calculate the **displayed** filesize. You can + * change this to 1024 if you would rather display kibibytes, mebibytes, + * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte` + * not `1 kilobyte`. You can change this to `1024` if you don't care about + * validity. + */ filesizeBase: 1000, + /** + * If not `null` defines how many files this Dropzone handles. If it exceeds, + * the event `maxfilesexceeded` will be called. The dropzone element gets the + * class `dz-max-files-reached` accordingly so you can provide visual + * feedback. + */ maxFiles: null, + /** + * An optional object to send additional headers to the server. Eg: + * `{ "My-Awesome-Header": "header value" }` + */ headers: null, + /** + * Should the default headers be set or not? + * Accept: application/json <- for requesting json response + * Cache-Control: no-cache <- Request shouldnt be cached + * X-Requested-With: XMLHttpRequest <- We sent the request via XMLHttpRequest + */ defaultHeaders: true, + /** + * If `true`, the dropzone element itself will be clickable, if `false` + * nothing will be clickable. + * + * You can also pass an HTML element, a CSS selector (for multiple elements) + * or an array of those. In that case, all of those elements will trigger an + * upload when clicked. + */ clickable: true, + /** + * Whether hidden files in directories should be ignored. + */ ignoreHiddenFiles: true, + /** + * The default implementation of `accept` checks the file's mime type or + * extension against this list. This is a comma separated list of mime + * types or file extensions. + * + * Eg.: `image/*,application/pdf,.psd` + * + * If the Dropzone is `clickable` this option will also be used as + * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept) + * parameter on the hidden file input as well. + */ acceptedFiles: null, + /** + * **Deprecated!** + * Use acceptedFiles instead. + */ acceptedMimeTypes: null, + /** + * If false, files will be added to the queue but the queue will not be + * processed automatically. + * This can be useful if you need some additional user input before sending + * files (or if you want want all files sent at once). + * If you're ready to send the file simply call `myDropzone.processQueue()`. + * + * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation + * section for more information. + */ autoProcessQueue: true, + /** + * If false, files added to the dropzone will not be queued by default. + * You'll have to call `enqueueFile(file)` manually. + */ autoQueue: true, + /** + * If `true`, this will add a link to every file preview to remove or cancel (if + * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation` + * and `dictRemoveFile` options are used for the wording. + */ addRemoveLinks: false, + /** + * Defines where to display the file previews – if `null` the + * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS + * selector. The element should have the `dropzone-previews` class so + * the previews are displayed properly. + */ previewsContainer: null, + /** + * Set this to `true` if you don't want previews to be shown. + */ disablePreviews: false, + /** + * This is the element the hidden input field (which is used when clicking on the + * dropzone to trigger file selection) will be appended to. This might + * be important in case you use frameworks to switch the content of your page. + * + * Can be a selector string, or an element directly. + */ hiddenInputContainer: "body", + /** + * If null, no capture type will be specified + * If camera, mobile devices will skip the file selection and choose camera + * If microphone, mobile devices will skip the file selection and choose the microphone + * If camcorder, mobile devices will skip the file selection and choose the camera in video mode + * On apple devices multiple must be set to false. AcceptedFiles may need to + * be set to an appropriate mime type (e.g. "image/*", "audio/*", or "video/*"). + */ capture: null, + /** + * **Deprecated**. Use `renameFile` instead. + */ renameFilename: null, + /** + * A function that is invoked before the file is uploaded to the server and renames the file. + * This function gets the `File` as argument and can use the `file.name`. The actual name of the + * file that gets used during the upload can be accessed through `file.upload.filename`. + */ renameFile: null, + /** + * If `true` the fallback will be forced. This is very useful to test your server + * implementations first and make sure that everything works as + * expected without dropzone if you experience problems, and to test + * how your fallbacks will look. + */ forceFallback: false, + /** + * The text used before any files are dropped. + */ dictDefaultMessage: "Drop files here to upload", + /** + * The text that replaces the default message text it the browser is not supported. + */ dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.", + /** + * The text that will be added before the fallback form. + * If you provide a fallback element yourself, or if this option is `null` this will + * be ignored. + */ dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.", + /** + * If the filesize is too big. + * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values. + */ dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.", + /** + * If the file doesn't match the file type. + */ dictInvalidFileType: "You can't upload files of this type.", + /** + * If the server response was invalid. + * `{{statusCode}}` will be replaced with the servers status code. + */ dictResponseError: "Server responded with {{statusCode}} code.", + /** + * If `addRemoveLinks` is true, the text to be used for the cancel upload link. + */ dictCancelUpload: "Cancel upload", + /** + * The text that is displayed if an upload was manually canceled + */ dictUploadCanceled: "Upload canceled.", + /** + * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload. + */ dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?", + /** + * If `addRemoveLinks` is true, the text to be used to remove a file. + */ dictRemoveFile: "Remove file", + /** + * If this is not null, then the user will be prompted before removing a file. + */ dictRemoveFileConfirmation: null, + /** + * Displayed if `maxFiles` is st and exceeded. + * The string `{{maxFiles}}` will be replaced by the configuration value. + */ dictMaxFilesExceeded: "You can not upload any more files.", + /** + * Allows you to translate the different units. Starting with `tb` for terabytes and going down to + * `b` for bytes. + */ dictFileSizeUnits: { + tb: "TB", + gb: "GB", + mb: "MB", + kb: "KB", + b: "b" + }, + /** + * Called when dropzone initialized + * You can add event listeners here + */ init () { + }, + /** + * Can be an **object** of additional parameters to transfer to the server, **or** a `Function` + * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case + * of a function, this needs to return a map. + * + * The default implementation does nothing for normal uploads, but adds relevant information for + * chunked uploads. + * + * This is the same as adding hidden input fields in the form element. + */ params (files, xhr, chunk) { + if (chunk) return { + dzuuid: chunk.file.upload.uuid, + dzchunkindex: chunk.index, + dztotalfilesize: chunk.file.size, + dzchunksize: this.options.chunkSize, + dztotalchunkcount: chunk.file.upload.totalChunkCount, + dzchunkbyteoffset: chunk.index * this.options.chunkSize + }; + }, + /** + * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File) + * and a `done` function as parameters. + * + * If the done function is invoked without arguments, the file is "accepted" and will + * be processed. If you pass an error message, the file is rejected, and the error + * message will be displayed. + * This function will not be called if the file is too big or doesn't match the mime types. + */ accept (file, done) { + return done(); + }, + /** + * The callback that will be invoked when all chunks have been uploaded for a file. + * It gets the file for which the chunks have been uploaded as the first parameter, + * and the `done` function as second. `done()` needs to be invoked when everything + * needed to finish the upload process is done. + */ chunksUploaded: function(file, done) { + done(); + }, + /** + * Sends the file as binary blob in body instead of form data. + * If this is set, the `params` option will be ignored. + * It's an error to set this to `true` along with `uploadMultiple` since + * multiple files cannot be in a single binary body. + */ binaryBody: false, + /** + * Gets called when the browser is not supported. + * The default implementation shows the fallback input field and adds + * a text. + */ fallback () { + // This code should pass in IE7... :( + let messageElement; + this.element.className = `${this.element.className} dz-browser-not-supported`; + for (let child of this.element.getElementsByTagName("div"))if (/(^| )dz-message($| )/.test(child.className)) { + messageElement = child; + child.className = "dz-message"; // Removes the 'dz-default' class + break; + } + if (!messageElement) { + messageElement = $3ed269f2f0fb224b$export$2e2bcd8739ae039.createElement('
    '); + this.element.appendChild(messageElement); + } + let span = messageElement.getElementsByTagName("span")[0]; + if (span) { + if (span.textContent != null) span.textContent = this.options.dictFallbackMessage; + else if (span.innerText != null) span.innerText = this.options.dictFallbackMessage; + } + return this.element.appendChild(this.getFallbackForm()); + }, + /** + * Gets called to calculate the thumbnail dimensions. + * + * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing: + * + * - `srcWidth` & `srcHeight` (required) + * - `trgWidth` & `trgHeight` (required) + * - `srcX` & `srcY` (optional, default `0`) + * - `trgX` & `trgY` (optional, default `0`) + * + * Those values are going to be used by `ctx.drawImage()`. + */ resize (file, width, height, resizeMethod) { + let info = { + srcX: 0, + srcY: 0, + srcWidth: file.width, + srcHeight: file.height + }; + let srcRatio = file.width / file.height; + // Automatically calculate dimensions if not specified + if (width == null && height == null) { + width = info.srcWidth; + height = info.srcHeight; + } else if (width == null) width = height * srcRatio; + else if (height == null) height = width / srcRatio; + // Make sure images aren't upscaled + width = Math.min(width, info.srcWidth); + height = Math.min(height, info.srcHeight); + let trgRatio = width / height; + if (info.srcWidth > width || info.srcHeight > height) { + // Image is bigger and needs rescaling + if (resizeMethod === "crop") { + if (srcRatio > trgRatio) { + info.srcHeight = file.height; + info.srcWidth = info.srcHeight * trgRatio; + } else { + info.srcWidth = file.width; + info.srcHeight = info.srcWidth / trgRatio; + } + } else if (resizeMethod === "contain") { + // Method 'contain' + if (srcRatio > trgRatio) height = width / srcRatio; + else width = height * srcRatio; + } else throw new Error(`Unknown resizeMethod '${resizeMethod}'`); + } + info.srcX = (file.width - info.srcWidth) / 2; + info.srcY = (file.height - info.srcHeight) / 2; + info.trgWidth = width; + info.trgHeight = height; + return info; + }, + /** + * Can be used to transform the file (for example, resize an image if necessary). + * + * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes + * images according to those dimensions. + * + * Gets the `file` as the first parameter, and a `done()` function as the second, that needs + * to be invoked with the file when the transformation is done. + */ transformFile (file, done) { + if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done); + else return done(file); + }, + /** + * A string that contains the template used for each dropped + * file. Change it to fulfill your needs but make sure to properly + * provide all elements. + * + * If you want to use an actual HTML element instead of providing a String + * as a config option, you could create a div with the id `tpl`, + * put the template inside it and provide the element like this: + * + * document + * .querySelector('#tpl') + * .innerHTML + * + */ previewTemplate: (/*@__PURE__*/$parcel$interopDefault($fd6031f88dce2e32$exports)), + /* + Those functions register themselves to the events on init and handle all + the user interface specific stuff. Overwriting them won't break the upload + but can break the way it's displayed. + You can overwrite them if you don't like the default behavior. If you just + want to add an additional event handler, register it on the dropzone object + and don't overwrite those options. + */ // Those are self explanatory and simply concern the DragnDrop. + drop (e) { + return this.element.classList.remove("dz-drag-hover"); + }, + dragstart (e) { + }, + dragend (e) { + return this.element.classList.remove("dz-drag-hover"); + }, + dragenter (e) { + return this.element.classList.add("dz-drag-hover"); + }, + dragover (e) { + return this.element.classList.add("dz-drag-hover"); + }, + dragleave (e) { + return this.element.classList.remove("dz-drag-hover"); + }, + paste (e) { + }, + // Called whenever there are no files left in the dropzone anymore, and the + // dropzone should be displayed as if in the initial state. + reset () { + return this.element.classList.remove("dz-started"); + }, + // Called when a file is added to the queue + // Receives `file` + addedfile (file) { + if (this.element === this.previewsContainer) this.element.classList.add("dz-started"); + if (this.previewsContainer && !this.options.disablePreviews) { + file.previewElement = $3ed269f2f0fb224b$export$2e2bcd8739ae039.createElement(this.options.previewTemplate.trim()); + file.previewTemplate = file.previewElement; // Backwards compatibility + this.previewsContainer.appendChild(file.previewElement); + for (var node of file.previewElement.querySelectorAll("[data-dz-name]"))node.textContent = file.name; + for (node of file.previewElement.querySelectorAll("[data-dz-size]"))node.innerHTML = this.filesize(file.size); + if (this.options.addRemoveLinks) { + file._removeLink = $3ed269f2f0fb224b$export$2e2bcd8739ae039.createElement(`
    ${this.options.dictRemoveFile}`); + file.previewElement.appendChild(file._removeLink); + } + let removeFileEvent = (e)=>{ + e.preventDefault(); + e.stopPropagation(); + if (file.status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING) return $3ed269f2f0fb224b$export$2e2bcd8739ae039.confirm(this.options.dictCancelUploadConfirmation, ()=>this.removeFile(file) + ); + else { + if (this.options.dictRemoveFileConfirmation) return $3ed269f2f0fb224b$export$2e2bcd8739ae039.confirm(this.options.dictRemoveFileConfirmation, ()=>this.removeFile(file) + ); + else return this.removeFile(file); + } + }; + for (let removeLink of file.previewElement.querySelectorAll("[data-dz-remove]"))removeLink.addEventListener("click", removeFileEvent); + } + }, + // Called whenever a file is removed. + removedfile (file) { + if (file.previewElement != null && file.previewElement.parentNode != null) file.previewElement.parentNode.removeChild(file.previewElement); + return this._updateMaxFilesReachedClass(); + }, + // Called when a thumbnail has been generated + // Receives `file` and `dataUrl` + thumbnail (file, dataUrl) { + if (file.previewElement) { + file.previewElement.classList.remove("dz-file-preview"); + for (let thumbnailElement of file.previewElement.querySelectorAll("[data-dz-thumbnail]")){ + thumbnailElement.alt = file.name; + thumbnailElement.src = dataUrl; + } + return setTimeout(()=>file.previewElement.classList.add("dz-image-preview") + , 1); + } + }, + // Called whenever an error occurs + // Receives `file` and `message` + error (file, message) { + if (file.previewElement) { + file.previewElement.classList.add("dz-error"); + if (typeof message !== "string" && message.error) message = message.error; + for (let node of file.previewElement.querySelectorAll("[data-dz-errormessage]"))node.textContent = message; + } + }, + errormultiple () { + }, + // Called when a file gets processed. Since there is a cue, not all added + // files are processed immediately. + // Receives `file` + processing (file) { + if (file.previewElement) { + file.previewElement.classList.add("dz-processing"); + if (file._removeLink) return file._removeLink.innerHTML = this.options.dictCancelUpload; + } + }, + processingmultiple () { + }, + // Called whenever the upload progress gets updated. + // Receives `file`, `progress` (percentage 0-100) and `bytesSent`. + // To get the total number of bytes of the file, use `file.size` + uploadprogress (file, progress, bytesSent) { + if (file.previewElement) for (let node of file.previewElement.querySelectorAll("[data-dz-uploadprogress]"))node.nodeName === "PROGRESS" ? node.value = progress : node.style.width = `${progress}%`; + }, + // Called whenever the total upload progress gets updated. + // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent + totaluploadprogress () { + }, + // Called just before the file is sent. Gets the `xhr` object as second + // parameter, so you can modify it (for example to add a CSRF token) and a + // `formData` object to add additional information. + sending () { + }, + sendingmultiple () { + }, + // When the complete upload is finished and successful + // Receives `file` + success (file) { + if (file.previewElement) return file.previewElement.classList.add("dz-success"); + }, + successmultiple () { + }, + // When the upload is canceled. + canceled (file) { + return this.emit("error", file, this.options.dictUploadCanceled); + }, + canceledmultiple () { + }, + // When the upload is finished, either with success or an error. + // Receives `file` + complete (file) { + if (file._removeLink) file._removeLink.innerHTML = this.options.dictRemoveFile; + if (file.previewElement) return file.previewElement.classList.add("dz-complete"); + }, + completemultiple () { + }, + maxfilesexceeded () { + }, + maxfilesreached () { + }, + queuecomplete () { + }, + addedfiles () { + } +}; +var $4ca367182776f80b$export$2e2bcd8739ae039 = $4ca367182776f80b$var$defaultOptions; + + +class $3ed269f2f0fb224b$export$2e2bcd8739ae039 extends $4040acfd8584338d$export$2e2bcd8739ae039 { + static initClass() { + // Exposing the emitter class, mainly for tests + this.prototype.Emitter = $4040acfd8584338d$export$2e2bcd8739ae039; + /* + This is a list of all available events you can register on a dropzone object. + + You can register an event handler like this: + + dropzone.on("dragEnter", function() { }); + + */ this.prototype.events = [ + "drop", + "dragstart", + "dragend", + "dragenter", + "dragover", + "dragleave", + "addedfile", + "addedfiles", + "removedfile", + "thumbnail", + "error", + "errormultiple", + "processing", + "processingmultiple", + "uploadprogress", + "totaluploadprogress", + "sending", + "sendingmultiple", + "success", + "successmultiple", + "canceled", + "canceledmultiple", + "complete", + "completemultiple", + "reset", + "maxfilesexceeded", + "maxfilesreached", + "queuecomplete", + ]; + this.prototype._thumbnailQueue = []; + this.prototype._processingThumbnail = false; + } + // Returns all files that have been accepted + getAcceptedFiles() { + return this.files.filter((file)=>file.accepted + ).map((file)=>file + ); + } + // Returns all files that have been rejected + // Not sure when that's going to be useful, but added for completeness. + getRejectedFiles() { + return this.files.filter((file)=>!file.accepted + ).map((file)=>file + ); + } + getFilesWithStatus(status) { + return this.files.filter((file)=>file.status === status + ).map((file)=>file + ); + } + // Returns all files that are in the queue + getQueuedFiles() { + return this.getFilesWithStatus($3ed269f2f0fb224b$export$2e2bcd8739ae039.QUEUED); + } + getUploadingFiles() { + return this.getFilesWithStatus($3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING); + } + getAddedFiles() { + return this.getFilesWithStatus($3ed269f2f0fb224b$export$2e2bcd8739ae039.ADDED); + } + // Files that are either queued or uploading + getActiveFiles() { + return this.files.filter((file)=>file.status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING || file.status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.QUEUED + ).map((file)=>file + ); + } + // The function that gets called when Dropzone is initialized. You + // can (and should) setup event listeners inside this function. + init() { + // In case it isn't set already + if (this.element.tagName === "form") this.element.setAttribute("enctype", "multipart/form-data"); + if (this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message")) this.element.appendChild($3ed269f2f0fb224b$export$2e2bcd8739ae039.createElement(`
    `)); + if (this.clickableElements.length) { + let setupHiddenFileInput = ()=>{ + if (this.hiddenFileInput) this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput); + this.hiddenFileInput = document.createElement("input"); + this.hiddenFileInput.setAttribute("type", "file"); + if (this.options.maxFiles === null || this.options.maxFiles > 1) this.hiddenFileInput.setAttribute("multiple", "multiple"); + this.hiddenFileInput.className = "dz-hidden-input"; + if (this.options.acceptedFiles !== null) this.hiddenFileInput.setAttribute("accept", this.options.acceptedFiles); + if (this.options.capture !== null) this.hiddenFileInput.setAttribute("capture", this.options.capture); + // Making sure that no one can "tab" into this field. + this.hiddenFileInput.setAttribute("tabindex", "-1"); + // Not setting `display="none"` because some browsers don't accept clicks + // on elements that aren't displayed. + this.hiddenFileInput.style.visibility = "hidden"; + this.hiddenFileInput.style.position = "absolute"; + this.hiddenFileInput.style.top = "0"; + this.hiddenFileInput.style.left = "0"; + this.hiddenFileInput.style.height = "0"; + this.hiddenFileInput.style.width = "0"; + $3ed269f2f0fb224b$export$2e2bcd8739ae039.getElement(this.options.hiddenInputContainer, "hiddenInputContainer").appendChild(this.hiddenFileInput); + this.hiddenFileInput.addEventListener("change", ()=>{ + let { files: files } = this.hiddenFileInput; + if (files.length) for (let file of files)this.addFile(file); + this.emit("addedfiles", files); + setupHiddenFileInput(); + }); + }; + setupHiddenFileInput(); + } + this.URL = window.URL !== null ? window.URL : window.webkitURL; + // Setup all event listeners on the Dropzone object itself. + // They're not in @setupEventListeners() because they shouldn't be removed + // again when the dropzone gets disabled. + for (let eventName of this.events)this.on(eventName, this.options[eventName]); + this.on("uploadprogress", ()=>this.updateTotalUploadProgress() + ); + this.on("removedfile", ()=>this.updateTotalUploadProgress() + ); + this.on("canceled", (file)=>this.emit("complete", file) + ); + // Emit a `queuecomplete` event if all files finished uploading. + this.on("complete", (file)=>{ + if (this.getAddedFiles().length === 0 && this.getUploadingFiles().length === 0 && this.getQueuedFiles().length === 0) // This needs to be deferred so that `queuecomplete` really triggers after `complete` + return setTimeout(()=>this.emit("queuecomplete") + , 0); + }); + const containsFiles = function(e) { + if (e.dataTransfer.types) // Because e.dataTransfer.types is an Object in + // IE, we need to iterate like this instead of + // using e.dataTransfer.types.some() + for(var i = 0; i < e.dataTransfer.types.length; i++){ + if (e.dataTransfer.types[i] === "Files") return true; + } + return false; + }; + let noPropagation = function(e) { + // If there are no files, we don't want to stop + // propagation so we don't interfere with other + // drag and drop behaviour. + if (!containsFiles(e)) return; + e.stopPropagation(); + if (e.preventDefault) return e.preventDefault(); + else return e.returnValue = false; + }; + // Create the listeners + this.listeners = [ + { + element: this.element, + events: { + dragstart: (e)=>{ + return this.emit("dragstart", e); + }, + dragenter: (e)=>{ + noPropagation(e); + return this.emit("dragenter", e); + }, + dragover: (e)=>{ + // Makes it possible to drag files from chrome's download bar + // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar + // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception) + let efct; + try { + efct = e.dataTransfer.effectAllowed; + } catch (error) { + } + e.dataTransfer.dropEffect = "move" === efct || "linkMove" === efct ? "move" : "copy"; + noPropagation(e); + return this.emit("dragover", e); + }, + dragleave: (e)=>{ + return this.emit("dragleave", e); + }, + drop: (e)=>{ + noPropagation(e); + return this.drop(e); + }, + dragend: (e)=>{ + return this.emit("dragend", e); + } + } + }, + ]; + this.clickableElements.forEach((clickableElement)=>{ + return this.listeners.push({ + element: clickableElement, + events: { + click: (evt)=>{ + // Only the actual dropzone or the message element should trigger file selection + if (clickableElement !== this.element || evt.target === this.element || $3ed269f2f0fb224b$export$2e2bcd8739ae039.elementInside(evt.target, this.element.querySelector(".dz-message"))) this.hiddenFileInput.click(); // Forward the click + return true; + } + } + }); + }); + this.enable(); + return this.options.init.call(this); + } + // Not fully tested yet + destroy() { + this.disable(); + this.removeAllFiles(true); + if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) { + this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput); + this.hiddenFileInput = null; + } + delete this.element.dropzone; + return $3ed269f2f0fb224b$export$2e2bcd8739ae039.instances.splice($3ed269f2f0fb224b$export$2e2bcd8739ae039.instances.indexOf(this), 1); + } + updateTotalUploadProgress() { + let totalUploadProgress; + let totalBytesSent = 0; + let totalBytes = 0; + let activeFiles = this.getActiveFiles(); + if (activeFiles.length) { + for (let file of this.getActiveFiles()){ + totalBytesSent += file.upload.bytesSent; + totalBytes += file.upload.total; + } + totalUploadProgress = 100 * totalBytesSent / totalBytes; + } else totalUploadProgress = 100; + return this.emit("totaluploadprogress", totalUploadProgress, totalBytes, totalBytesSent); + } + // @options.paramName can be a function taking one parameter rather than a string. + // A parameter name for a file is obtained simply by calling this with an index number. + _getParamName(n) { + if (typeof this.options.paramName === "function") return this.options.paramName(n); + else return `${this.options.paramName}${this.options.uploadMultiple ? `[${n}]` : ""}`; + } + // If @options.renameFile is a function, + // the function will be used to rename the file.name before appending it to the formData + _renameFile(file) { + if (typeof this.options.renameFile !== "function") return file.name; + return this.options.renameFile(file); + } + // Returns a form that can be used as fallback if the browser does not support DragnDrop + // + // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided. + // This code has to pass in IE7 :( + getFallbackForm() { + let existingFallback, form; + if (existingFallback = this.getExistingFallback()) return existingFallback; + let fieldsString = '
    '; + if (this.options.dictFallbackText) fieldsString += `

    ${this.options.dictFallbackText}

    `; + fieldsString += `
    `; + let fields = $3ed269f2f0fb224b$export$2e2bcd8739ae039.createElement(fieldsString); + if (this.element.tagName !== "FORM") { + form = $3ed269f2f0fb224b$export$2e2bcd8739ae039.createElement(`
    `); + form.appendChild(fields); + } else { + // Make sure that the enctype and method attributes are set properly + this.element.setAttribute("enctype", "multipart/form-data"); + this.element.setAttribute("method", this.options.method); + } + return form != null ? form : fields; + } + // Returns the fallback elements if they exist already + // + // This code has to pass in IE7 :( + getExistingFallback() { + let getFallback = function(elements) { + for (let el of elements){ + if (/(^| )fallback($| )/.test(el.className)) return el; + } + }; + for (let tagName of [ + "div", + "form" + ]){ + var fallback; + if (fallback = getFallback(this.element.getElementsByTagName(tagName))) return fallback; + } + } + // Activates all listeners stored in @listeners + setupEventListeners() { + return this.listeners.map((elementListeners)=>(()=>{ + let result = []; + for(let event in elementListeners.events){ + let listener = elementListeners.events[event]; + result.push(elementListeners.element.addEventListener(event, listener, false)); + } + return result; + })() + ); + } + // Deactivates all listeners stored in @listeners + removeEventListeners() { + return this.listeners.map((elementListeners)=>(()=>{ + let result = []; + for(let event in elementListeners.events){ + let listener = elementListeners.events[event]; + result.push(elementListeners.element.removeEventListener(event, listener, false)); + } + return result; + })() + ); + } + // Removes all event listeners and cancels all files in the queue or being processed. + disable() { + this.clickableElements.forEach((element)=>element.classList.remove("dz-clickable") + ); + this.removeEventListeners(); + this.disabled = true; + return this.files.map((file)=>this.cancelUpload(file) + ); + } + enable() { + delete this.disabled; + this.clickableElements.forEach((element)=>element.classList.add("dz-clickable") + ); + return this.setupEventListeners(); + } + // Returns a nicely formatted filesize + filesize(size) { + let selectedSize = 0; + let selectedUnit = "b"; + if (size > 0) { + let units = [ + "tb", + "gb", + "mb", + "kb", + "b" + ]; + for(let i = 0; i < units.length; i++){ + let unit = units[i]; + let cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10; + if (size >= cutoff) { + selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i); + selectedUnit = unit; + break; + } + } + selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits + } + return `${selectedSize} ${this.options.dictFileSizeUnits[selectedUnit]}`; + } + // Adds or removes the `dz-max-files-reached` class from the form. + _updateMaxFilesReachedClass() { + if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { + if (this.getAcceptedFiles().length === this.options.maxFiles) this.emit("maxfilesreached", this.files); + return this.element.classList.add("dz-max-files-reached"); + } else return this.element.classList.remove("dz-max-files-reached"); + } + drop(e) { + if (!e.dataTransfer) return; + this.emit("drop", e); + // Convert the FileList to an Array + // This is necessary for IE11 + let files = []; + for(let i = 0; i < e.dataTransfer.files.length; i++)files[i] = e.dataTransfer.files[i]; + // Even if it's a folder, files.length will contain the folders. + if (files.length) { + let { items: items } = e.dataTransfer; + if (items && items.length && items[0].webkitGetAsEntry != null) // The browser supports dropping of folders, so handle items instead of files + this._addFilesFromItems(items); + else this.handleFiles(files); + } + this.emit("addedfiles", files); + } + paste(e) { + if ($3ed269f2f0fb224b$var$__guard__(e != null ? e.clipboardData : undefined, (x)=>x.items + ) == null) return; + this.emit("paste", e); + let { items: items } = e.clipboardData; + if (items.length) return this._addFilesFromItems(items); + } + handleFiles(files) { + for (let file of files)this.addFile(file); + } + // When a folder is dropped (or files are pasted), items must be handled + // instead of files. + _addFilesFromItems(items) { + return (()=>{ + let result = []; + for (let item of items){ + var entry; + if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) { + if (entry.isFile) result.push(this.addFile(item.getAsFile())); + else if (entry.isDirectory) // Append all files from that directory to files + result.push(this._addFilesFromDirectory(entry, entry.name)); + else result.push(undefined); + } else if (item.getAsFile != null) { + if (item.kind == null || item.kind === "file") result.push(this.addFile(item.getAsFile())); + else result.push(undefined); + } else result.push(undefined); + } + return result; + })(); + } + // Goes through the directory, and adds each file it finds recursively + _addFilesFromDirectory(directory, path) { + let dirReader = directory.createReader(); + let errorHandler = (error)=>$3ed269f2f0fb224b$var$__guardMethod__(console, "log", (o)=>o.log(error) + ) + ; + var readEntries = ()=>{ + return dirReader.readEntries((entries)=>{ + if (entries.length > 0) { + for (let entry of entries){ + if (entry.isFile) entry.file((file)=>{ + if (this.options.ignoreHiddenFiles && file.name.substring(0, 1) === ".") return; + file.fullPath = `${path}/${file.name}`; + return this.addFile(file); + }); + else if (entry.isDirectory) this._addFilesFromDirectory(entry, `${path}/${entry.name}`); + } + // Recursively call readEntries() again, since browser only handle + // the first 100 entries. + // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries + readEntries(); + } + return null; + }, errorHandler); + }; + return readEntries(); + } + // If `done()` is called without argument the file is accepted + // If you call it with an error message, the file is rejected + // (This allows for asynchronous validation) + // + // This function checks the filesize, and if the file.type passes the + // `acceptedFiles` check. + accept(file, done) { + if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1048576) done(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(file.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)); + else if (!$3ed269f2f0fb224b$export$2e2bcd8739ae039.isValidFile(file, this.options.acceptedFiles)) done(this.options.dictInvalidFileType); + else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { + done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)); + this.emit("maxfilesexceeded", file); + } else this.options.accept.call(this, file, done); + } + addFile(file) { + file.upload = { + uuid: $3ed269f2f0fb224b$export$2e2bcd8739ae039.uuidv4(), + progress: 0, + // Setting the total upload size to file.size for the beginning + // It's actual different than the size to be transmitted. + total: file.size, + bytesSent: 0, + filename: this._renameFile(file) + }; + this.files.push(file); + file.status = $3ed269f2f0fb224b$export$2e2bcd8739ae039.ADDED; + this.emit("addedfile", file); + this._enqueueThumbnail(file); + this.accept(file, (error)=>{ + if (error) { + file.accepted = false; + this._errorProcessing([ + file + ], error); // Will set the file.status + } else { + file.accepted = true; + if (this.options.autoQueue) this.enqueueFile(file); + // Will set .accepted = true + } + this._updateMaxFilesReachedClass(); + }); + } + // Wrapper for enqueueFile + enqueueFiles(files) { + for (let file of files)this.enqueueFile(file); + return null; + } + enqueueFile(file) { + if (file.status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.ADDED && file.accepted === true) { + file.status = $3ed269f2f0fb224b$export$2e2bcd8739ae039.QUEUED; + if (this.options.autoProcessQueue) return setTimeout(()=>this.processQueue() + , 0); // Deferring the call + } else throw new Error("This file can't be queued because it has already been processed or was rejected."); + } + _enqueueThumbnail(file) { + if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1048576) { + this._thumbnailQueue.push(file); + return setTimeout(()=>this._processThumbnailQueue() + , 0); // Deferring the call + } + } + _processThumbnailQueue() { + if (this._processingThumbnail || this._thumbnailQueue.length === 0) return; + this._processingThumbnail = true; + let file = this._thumbnailQueue.shift(); + return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, (dataUrl)=>{ + this.emit("thumbnail", file, dataUrl); + this._processingThumbnail = false; + return this._processThumbnailQueue(); + }); + } + // Can be called by the user to remove a file + removeFile(file) { + if (file.status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING) this.cancelUpload(file); + this.files = $3ed269f2f0fb224b$var$without(this.files, file); + this.emit("removedfile", file); + if (this.files.length === 0) return this.emit("reset"); + } + // Removes all files that aren't currently processed from the list + removeAllFiles(cancelIfNecessary) { + // Create a copy of files since removeFile() changes the @files array. + if (cancelIfNecessary == null) cancelIfNecessary = false; + for (let file of this.files.slice())if (file.status !== $3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING || cancelIfNecessary) this.removeFile(file); + return null; + } + // Resizes an image before it gets sent to the server. This function is the default behavior of + // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with + // the resized blob. + resizeImage(file, width, height, resizeMethod, callback) { + return this.createThumbnail(file, width, height, resizeMethod, true, (dataUrl, canvas)=>{ + if (canvas == null) // The image has not been resized + return callback(file); + else { + let { resizeMimeType: resizeMimeType } = this.options; + if (resizeMimeType == null) resizeMimeType = file.type; + let resizedDataURL = canvas.toDataURL(resizeMimeType, this.options.resizeQuality); + if (resizeMimeType === "image/jpeg" || resizeMimeType === "image/jpg") // Now add the original EXIF information + resizedDataURL = $3ed269f2f0fb224b$var$ExifRestore.restore(file.dataURL, resizedDataURL); + return callback($3ed269f2f0fb224b$export$2e2bcd8739ae039.dataURItoBlob(resizedDataURL)); + } + }); + } + createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) { + let fileReader = new FileReader(); + fileReader.onload = ()=>{ + file.dataURL = fileReader.result; + // Don't bother creating a thumbnail for SVG images since they're vector + if (file.type === "image/svg+xml") { + if (callback != null) callback(fileReader.result); + return; + } + this.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback); + }; + fileReader.readAsDataURL(file); + } + // `mockFile` needs to have these attributes: + // + // { name: 'name', size: 12345, imageUrl: '' } + // + // `callback` will be invoked when the image has been downloaded and displayed. + // `crossOrigin` will be added to the `img` tag when accessing the file. + displayExistingFile(mockFile, imageUrl, callback, crossOrigin, resizeThumbnail = true) { + this.emit("addedfile", mockFile); + this.emit("complete", mockFile); + if (!resizeThumbnail) { + this.emit("thumbnail", mockFile, imageUrl); + if (callback) callback(); + } else { + let onDone = (thumbnail)=>{ + this.emit("thumbnail", mockFile, thumbnail); + if (callback) callback(); + }; + mockFile.dataURL = imageUrl; + this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, this.options.fixOrientation, onDone, crossOrigin); + } + } + createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) { + // Not using `new Image` here because of a bug in latest Chrome versions. + // See https://github.com/enyo/dropzone/pull/226 + let img = document.createElement("img"); + if (crossOrigin) img.crossOrigin = crossOrigin; + // fixOrientation is not needed anymore with browsers handling imageOrientation + fixOrientation = getComputedStyle(document.body)["imageOrientation"] == "from-image" ? false : fixOrientation; + img.onload = ()=>{ + let loadExif = (callback)=>callback(1) + ; + if (typeof EXIF !== "undefined" && EXIF !== null && fixOrientation) loadExif = (callback)=>EXIF.getData(img, function() { + return callback(EXIF.getTag(this, "Orientation")); + }) + ; + return loadExif((orientation)=>{ + file.width = img.width; + file.height = img.height; + let resizeInfo = this.options.resize.call(this, file, width, height, resizeMethod); + let canvas = document.createElement("canvas"); + let ctx = canvas.getContext("2d"); + canvas.width = resizeInfo.trgWidth; + canvas.height = resizeInfo.trgHeight; + if (orientation > 4) { + canvas.width = resizeInfo.trgHeight; + canvas.height = resizeInfo.trgWidth; + } + switch(orientation){ + case 2: + // horizontal flip + ctx.translate(canvas.width, 0); + ctx.scale(-1, 1); + break; + case 3: + // 180° rotate left + ctx.translate(canvas.width, canvas.height); + ctx.rotate(Math.PI); + break; + case 4: + // vertical flip + ctx.translate(0, canvas.height); + ctx.scale(1, -1); + break; + case 5: + // vertical flip + 90 rotate right + ctx.rotate(0.5 * Math.PI); + ctx.scale(1, -1); + break; + case 6: + // 90° rotate right + ctx.rotate(0.5 * Math.PI); + ctx.translate(0, -canvas.width); + break; + case 7: + // horizontal flip + 90 rotate right + ctx.rotate(0.5 * Math.PI); + ctx.translate(canvas.height, -canvas.width); + ctx.scale(-1, 1); + break; + case 8: + // 90° rotate left + ctx.rotate(-0.5 * Math.PI); + ctx.translate(-canvas.height, 0); + break; + } + // This is a bugfix for iOS' scaling bug. + $3ed269f2f0fb224b$var$drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight); + let thumbnail = canvas.toDataURL("image/png"); + if (callback != null) return callback(thumbnail, canvas); + }); + }; + if (callback != null) img.onerror = callback; + return img.src = file.dataURL; + } + // Goes through the queue and processes files if there aren't too many already. + processQueue() { + let { parallelUploads: parallelUploads } = this.options; + let processingLength = this.getUploadingFiles().length; + let i = processingLength; + // There are already at least as many files uploading than should be + if (processingLength >= parallelUploads) return; + let queuedFiles = this.getQueuedFiles(); + if (!(queuedFiles.length > 0)) return; + if (this.options.uploadMultiple) // The files should be uploaded in one request + return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength)); + else while(i < parallelUploads){ + if (!queuedFiles.length) return; + // Nothing left to process + this.processFile(queuedFiles.shift()); + i++; + } + } + // Wrapper for `processFiles` + processFile(file) { + return this.processFiles([ + file + ]); + } + // Loads the file, then calls finishedLoading() + processFiles(files) { + for (let file of files){ + file.processing = true; // Backwards compatibility + file.status = $3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING; + this.emit("processing", file); + } + if (this.options.uploadMultiple) this.emit("processingmultiple", files); + return this.uploadFiles(files); + } + _getFilesWithXhr(xhr) { + let files; + return files = this.files.filter((file)=>file.xhr === xhr + ).map((file)=>file + ); + } + // Cancels the file upload and sets the status to CANCELED + // **if** the file is actually being uploaded. + // If it's still in the queue, the file is being removed from it and the status + // set to CANCELED. + cancelUpload(file) { + if (file.status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING) { + let groupedFiles = this._getFilesWithXhr(file.xhr); + for (let groupedFile of groupedFiles)groupedFile.status = $3ed269f2f0fb224b$export$2e2bcd8739ae039.CANCELED; + if (typeof file.xhr !== "undefined") file.xhr.abort(); + for (let groupedFile1 of groupedFiles)this.emit("canceled", groupedFile1); + if (this.options.uploadMultiple) this.emit("canceledmultiple", groupedFiles); + } else if (file.status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.ADDED || file.status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.QUEUED) { + file.status = $3ed269f2f0fb224b$export$2e2bcd8739ae039.CANCELED; + this.emit("canceled", file); + if (this.options.uploadMultiple) this.emit("canceledmultiple", [ + file + ]); + } + if (this.options.autoProcessQueue) return this.processQueue(); + } + resolveOption(option, ...args) { + if (typeof option === "function") return option.apply(this, args); + return option; + } + uploadFile(file) { + return this.uploadFiles([ + file + ]); + } + uploadFiles(files) { + this._transformFiles(files, (transformedFiles)=>{ + if (this.options.chunking) { + // Chunking is not allowed to be used with `uploadMultiple` so we know + // that there is only __one__file. + let transformedFile = transformedFiles[0]; + files[0].upload.chunked = this.options.chunking && (this.options.forceChunking || transformedFile.size > this.options.chunkSize); + files[0].upload.totalChunkCount = Math.ceil(transformedFile.size / this.options.chunkSize); + } + if (files[0].upload.chunked) { + // This file should be sent in chunks! + // If the chunking option is set, we **know** that there can only be **one** file, since + // uploadMultiple is not allowed with this option. + let file = files[0]; + let transformedFile = transformedFiles[0]; + let startedChunkCount = 0; + file.upload.chunks = []; + let handleNextChunk = ()=>{ + let chunkIndex = 0; + // Find the next item in file.upload.chunks that is not defined yet. + while(file.upload.chunks[chunkIndex] !== undefined)chunkIndex++; + // This means, that all chunks have already been started. + if (chunkIndex >= file.upload.totalChunkCount) return; + startedChunkCount++; + let start = chunkIndex * this.options.chunkSize; + let end = Math.min(start + this.options.chunkSize, transformedFile.size); + let dataBlock = { + name: this._getParamName(0), + data: transformedFile.webkitSlice ? transformedFile.webkitSlice(start, end) : transformedFile.slice(start, end), + filename: file.upload.filename, + chunkIndex: chunkIndex + }; + file.upload.chunks[chunkIndex] = { + file: file, + index: chunkIndex, + dataBlock: dataBlock, + status: $3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING, + progress: 0, + retries: 0 + }; + this._uploadData(files, [ + dataBlock + ]); + }; + file.upload.finishedChunkUpload = (chunk, response)=>{ + let allFinished = true; + chunk.status = $3ed269f2f0fb224b$export$2e2bcd8739ae039.SUCCESS; + // Clear the data from the chunk + chunk.dataBlock = null; + chunk.response = chunk.xhr.responseText; + chunk.responseHeaders = chunk.xhr.getAllResponseHeaders(); + // Leaving this reference to xhr will cause memory leaks. + chunk.xhr = null; + for(let i = 0; i < file.upload.totalChunkCount; i++){ + if (file.upload.chunks[i] === undefined) return handleNextChunk(); + if (file.upload.chunks[i].status !== $3ed269f2f0fb224b$export$2e2bcd8739ae039.SUCCESS) allFinished = false; + } + if (allFinished) this.options.chunksUploaded(file, ()=>{ + this._finished(files, response, null); + }); + }; + if (this.options.parallelChunkUploads) for(let i = 0; i < file.upload.totalChunkCount; i++)handleNextChunk(); + else handleNextChunk(); + } else { + let dataBlocks = []; + for(let i = 0; i < files.length; i++)dataBlocks[i] = { + name: this._getParamName(i), + data: transformedFiles[i], + filename: files[i].upload.filename + }; + this._uploadData(files, dataBlocks); + } + }); + } + /// Returns the right chunk for given file and xhr + _getChunk(file, xhr) { + for(let i = 0; i < file.upload.totalChunkCount; i++){ + if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) return file.upload.chunks[i]; + } + } + // This function actually uploads the file(s) to the server. + // + // If dataBlocks contains the actual data to upload (meaning, that this could + // either be transformed files, or individual chunks for chunked upload) then + // they will be used for the actual data to upload. + _uploadData(files, dataBlocks) { + let xhr = new XMLHttpRequest(); + // Put the xhr object in the file objects to be able to reference it later. + for (let file of files)file.xhr = xhr; + if (files[0].upload.chunked) // Put the xhr object in the right chunk object, so it can be associated + // later, and found with _getChunk. + files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr; + let method = this.resolveOption(this.options.method, files, dataBlocks); + let url = this.resolveOption(this.options.url, files, dataBlocks); + xhr.open(method, url, true); + // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8 + let timeout = this.resolveOption(this.options.timeout, files); + if (timeout) xhr.timeout = this.resolveOption(this.options.timeout, files); + // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179 + xhr.withCredentials = !!this.options.withCredentials; + xhr.onload = (e)=>{ + this._finishedUploading(files, xhr, e); + }; + xhr.ontimeout = ()=>{ + this._handleUploadError(files, xhr, `Request timedout after ${this.options.timeout / 1000} seconds`); + }; + xhr.onerror = ()=>{ + this._handleUploadError(files, xhr); + }; + // Some browsers do not have the .upload property + let progressObj = xhr.upload != null ? xhr.upload : xhr; + progressObj.onprogress = (e)=>this._updateFilesUploadProgress(files, xhr, e) + ; + let headers = this.options.defaultHeaders ? { + Accept: "application/json", + "Cache-Control": "no-cache", + "X-Requested-With": "XMLHttpRequest" + } : { + }; + if (this.options.binaryBody) headers["Content-Type"] = files[0].type; + if (this.options.headers) $ewBKy$justextend(headers, this.options.headers); + for(let headerName in headers){ + let headerValue = headers[headerName]; + if (headerValue) xhr.setRequestHeader(headerName, headerValue); + } + if (this.options.binaryBody) { + // Since the file is going to be sent as binary body, it doesn't make + // any sense to generate `FormData` for it. + for (let file of files)this.emit("sending", file, xhr); + if (this.options.uploadMultiple) this.emit("sendingmultiple", files, xhr); + this.submitRequest(xhr, null, files); + } else { + let formData = new FormData(); + // Adding all @options parameters + if (this.options.params) { + let additionalParams = this.options.params; + if (typeof additionalParams === "function") additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null); + for(let key in additionalParams){ + let value = additionalParams[key]; + if (Array.isArray(value)) // The additional parameter contains an array, + // so lets iterate over it to attach each value + // individually. + for(let i = 0; i < value.length; i++)formData.append(key, value[i]); + else formData.append(key, value); + } + } + // Let the user add additional data if necessary + for (let file of files)this.emit("sending", file, xhr, formData); + if (this.options.uploadMultiple) this.emit("sendingmultiple", files, xhr, formData); + this._addFormElementData(formData); + // Finally add the files + // Has to be last because some servers (eg: S3) expect the file to be the last parameter + for(let i = 0; i < dataBlocks.length; i++){ + let dataBlock = dataBlocks[i]; + formData.append(dataBlock.name, dataBlock.data, dataBlock.filename); + } + this.submitRequest(xhr, formData, files); + } + } + // Transforms all files with this.options.transformFile and invokes done with the transformed files when done. + _transformFiles(files, done) { + let transformedFiles = []; + // Clumsy way of handling asynchronous calls, until I get to add a proper Future library. + let doneCounter = 0; + for(let i = 0; i < files.length; i++)this.options.transformFile.call(this, files[i], (transformedFile)=>{ + transformedFiles[i] = transformedFile; + if (++doneCounter === files.length) done(transformedFiles); + }); + } + // Takes care of adding other input elements of the form to the AJAX request + _addFormElementData(formData) { + // Take care of other input elements + if (this.element.tagName === "FORM") for (let input of this.element.querySelectorAll("input, textarea, select, button")){ + let inputName = input.getAttribute("name"); + let inputType = input.getAttribute("type"); + if (inputType) inputType = inputType.toLowerCase(); + // If the input doesn't have a name, we can't use it. + if (typeof inputName === "undefined" || inputName === null) continue; + if (input.tagName === "SELECT" && input.hasAttribute("multiple")) { + // Possibly multiple values + for (let option of input.options)if (option.selected) formData.append(inputName, option.value); + } else if (!inputType || inputType !== "checkbox" && inputType !== "radio" || input.checked) formData.append(inputName, input.value); + } + } + // Invoked when there is new progress information about given files. + // If e is not provided, it is assumed that the upload is finished. + _updateFilesUploadProgress(files, xhr, e) { + if (!files[0].upload.chunked) // Handle file uploads without chunking + for (let file of files){ + if (file.upload.total && file.upload.bytesSent && file.upload.bytesSent == file.upload.total) continue; + if (e) { + file.upload.progress = 100 * e.loaded / e.total; + file.upload.total = e.total; + file.upload.bytesSent = e.loaded; + } else { + // No event, so we're at 100% + file.upload.progress = 100; + file.upload.bytesSent = file.upload.total; + } + this.emit("uploadprogress", file, file.upload.progress, file.upload.bytesSent); + } + else { + // Handle chunked file uploads + // Chunked upload is not compatible with uploading multiple files in one + // request, so we know there's only one file. + let file = files[0]; + // Since this is a chunked upload, we need to update the appropriate chunk + // progress. + let chunk = this._getChunk(file, xhr); + if (e) { + chunk.progress = 100 * e.loaded / e.total; + chunk.total = e.total; + chunk.bytesSent = e.loaded; + } else { + // No event, so we're at 100% + chunk.progress = 100; + chunk.bytesSent = chunk.total; + } + // Now tally the *file* upload progress from its individual chunks + file.upload.progress = 0; + file.upload.total = 0; + file.upload.bytesSent = 0; + for(let i = 0; i < file.upload.totalChunkCount; i++)if (file.upload.chunks[i] && typeof file.upload.chunks[i].progress !== "undefined") { + file.upload.progress += file.upload.chunks[i].progress; + file.upload.total += file.upload.chunks[i].total; + file.upload.bytesSent += file.upload.chunks[i].bytesSent; + } + // Since the process is a percentage, we need to divide by the amount of + // chunks we've used. + file.upload.progress = file.upload.progress / file.upload.totalChunkCount; + this.emit("uploadprogress", file, file.upload.progress, file.upload.bytesSent); + } + } + _finishedUploading(files, xhr, e) { + let response; + if (files[0].status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.CANCELED) return; + if (xhr.readyState !== 4) return; + if (xhr.responseType !== "arraybuffer" && xhr.responseType !== "blob") { + response = xhr.responseText; + if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) try { + response = JSON.parse(response); + } catch (error) { + e = error; + response = "Invalid JSON response from server."; + } + } + this._updateFilesUploadProgress(files, xhr); + if (!(200 <= xhr.status && xhr.status < 300)) this._handleUploadError(files, xhr, response); + else if (files[0].upload.chunked) files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr), response); + else this._finished(files, response, e); + } + _handleUploadError(files, xhr, response) { + if (files[0].status === $3ed269f2f0fb224b$export$2e2bcd8739ae039.CANCELED) return; + if (files[0].upload.chunked && this.options.retryChunks) { + let chunk = this._getChunk(files[0], xhr); + if ((chunk.retries++) < this.options.retryChunksLimit) { + this._uploadData(files, [ + chunk.dataBlock + ]); + return; + } else console.warn("Retried this chunk too often. Giving up."); + } + this._errorProcessing(files, response || this.options.dictResponseError.replace("{{statusCode}}", xhr.status), xhr); + } + submitRequest(xhr, formData, files) { + if (xhr.readyState != 1) { + console.warn("Cannot send this request because the XMLHttpRequest.readyState is not OPENED."); + return; + } + if (this.options.binaryBody) { + if (files[0].upload.chunked) { + const chunk = this._getChunk(files[0], xhr); + xhr.send(chunk.dataBlock.data); + } else xhr.send(files[0]); + } else xhr.send(formData); + } + // Called internally when processing is finished. + // Individual callbacks have to be called in the appropriate sections. + _finished(files, responseText, e) { + for (let file of files){ + file.status = $3ed269f2f0fb224b$export$2e2bcd8739ae039.SUCCESS; + this.emit("success", file, responseText, e); + this.emit("complete", file); + } + if (this.options.uploadMultiple) { + this.emit("successmultiple", files, responseText, e); + this.emit("completemultiple", files); + } + if (this.options.autoProcessQueue) return this.processQueue(); + } + // Called internally when processing is finished. + // Individual callbacks have to be called in the appropriate sections. + _errorProcessing(files, message, xhr) { + for (let file of files){ + file.status = $3ed269f2f0fb224b$export$2e2bcd8739ae039.ERROR; + this.emit("error", file, message, xhr); + this.emit("complete", file); + } + if (this.options.uploadMultiple) { + this.emit("errormultiple", files, message, xhr); + this.emit("completemultiple", files); + } + if (this.options.autoProcessQueue) return this.processQueue(); + } + static uuidv4() { + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) { + let r = Math.random() * 16 | 0, v = c === "x" ? r : r & 3 | 8; + return v.toString(16); + }); + } + constructor(el, options){ + super(); + let fallback, left; + this.element = el; + this.clickableElements = []; + this.listeners = []; + this.files = []; // All files + if (typeof this.element === "string") this.element = document.querySelector(this.element); + // Not checking if instance of HTMLElement or Element since IE9 is extremely weird. + if (!this.element || this.element.nodeType == null) throw new Error("Invalid dropzone element."); + if (this.element.dropzone) throw new Error("Dropzone already attached."); + // Now add this dropzone to the instances. + $3ed269f2f0fb224b$export$2e2bcd8739ae039.instances.push(this); + // Put the dropzone inside the element itself. + this.element.dropzone = this; + let elementOptions = (left = $3ed269f2f0fb224b$export$2e2bcd8739ae039.optionsForElement(this.element)) != null ? left : { + }; + this.options = $ewBKy$justextend(true, { + }, $4ca367182776f80b$export$2e2bcd8739ae039, elementOptions, options != null ? options : { + }); + this.options.previewTemplate = this.options.previewTemplate.replace(/\n*/g, ""); + // If the browser failed, just call the fallback and leave + if (this.options.forceFallback || !$3ed269f2f0fb224b$export$2e2bcd8739ae039.isBrowserSupported()) return this.options.fallback.call(this); + // @options.url = @element.getAttribute "action" unless @options.url? + if (this.options.url == null) this.options.url = this.element.getAttribute("action"); + if (!this.options.url) throw new Error("No URL provided."); + if (this.options.acceptedFiles && this.options.acceptedMimeTypes) throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated."); + if (this.options.uploadMultiple && this.options.chunking) throw new Error("You cannot set both: uploadMultiple and chunking."); + if (this.options.binaryBody && this.options.uploadMultiple) throw new Error("You cannot set both: binaryBody and uploadMultiple."); + // Backwards compatibility + if (this.options.acceptedMimeTypes) { + this.options.acceptedFiles = this.options.acceptedMimeTypes; + delete this.options.acceptedMimeTypes; + } + // Backwards compatibility + if (this.options.renameFilename != null) this.options.renameFile = (file)=>this.options.renameFilename.call(this, file.name, file) + ; + if (typeof this.options.method === "string") this.options.method = this.options.method.toUpperCase(); + if ((fallback = this.getExistingFallback()) && fallback.parentNode) // Remove the fallback + fallback.parentNode.removeChild(fallback); + // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false + if (this.options.previewsContainer !== false) { + if (this.options.previewsContainer) this.previewsContainer = $3ed269f2f0fb224b$export$2e2bcd8739ae039.getElement(this.options.previewsContainer, "previewsContainer"); + else this.previewsContainer = this.element; + } + if (this.options.clickable) { + if (this.options.clickable === true) this.clickableElements = [ + this.element + ]; + else this.clickableElements = $3ed269f2f0fb224b$export$2e2bcd8739ae039.getElements(this.options.clickable, "clickable"); + } + this.init(); + } +} +$3ed269f2f0fb224b$export$2e2bcd8739ae039.initClass(); +// This is a map of options for your different dropzones. Add configurations +// to this object for your different dropzone elemens. +// +// Example: +// +// Dropzone.options.myDropzoneElementId = { maxFilesize: 1 }; +// +// And in html: +// +//
    +$3ed269f2f0fb224b$export$2e2bcd8739ae039.options = { +}; +// Returns the options for an element or undefined if none available. +$3ed269f2f0fb224b$export$2e2bcd8739ae039.optionsForElement = function(element) { + // Get the `Dropzone.options.elementId` for this element if it exists + if (element.getAttribute("id")) return $3ed269f2f0fb224b$export$2e2bcd8739ae039.options[$3ed269f2f0fb224b$var$camelize(element.getAttribute("id"))]; + else return undefined; +}; +// Holds a list of all dropzone instances +$3ed269f2f0fb224b$export$2e2bcd8739ae039.instances = []; +// Returns the dropzone for given element if any +$3ed269f2f0fb224b$export$2e2bcd8739ae039.forElement = function(element) { + if (typeof element === "string") element = document.querySelector(element); + if ((element != null ? element.dropzone : undefined) == null) throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone."); + return element.dropzone; +}; +// Looks for all .dropzone elements and creates a dropzone for them +$3ed269f2f0fb224b$export$2e2bcd8739ae039.discover = function() { + let dropzones; + if (document.querySelectorAll) dropzones = document.querySelectorAll(".dropzone"); + else { + dropzones = []; + // IE :( + let checkElements = (elements)=>(()=>{ + let result = []; + for (let el of elements)if (/(^| )dropzone($| )/.test(el.className)) result.push(dropzones.push(el)); + else result.push(undefined); + return result; + })() + ; + checkElements(document.getElementsByTagName("div")); + checkElements(document.getElementsByTagName("form")); + } + return (()=>{ + let result = []; + for (let dropzone of dropzones)// Create a dropzone unless auto discover has been disabled for specific element + if ($3ed269f2f0fb224b$export$2e2bcd8739ae039.optionsForElement(dropzone) !== false) result.push(new $3ed269f2f0fb224b$export$2e2bcd8739ae039(dropzone)); + else result.push(undefined); + return result; + })(); +}; +// Some browsers support drag and drog functionality, but not correctly. +// +// So I created a blocklist of userAgents. Yes, yes. Browser sniffing, I know. +// But what to do when browsers *theoretically* support an API, but crash +// when using it. +// +// This is a list of regular expressions tested against navigator.userAgent +// +// ** It should only be used on browser that *do* support the API, but +// incorrectly ** +$3ed269f2f0fb224b$export$2e2bcd8739ae039.blockedBrowsers = [ + // The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API. + /opera.*(Macintosh|Windows Phone).*version\/12/i, +]; +// Checks if the browser is supported +$3ed269f2f0fb224b$export$2e2bcd8739ae039.isBrowserSupported = function() { + let capableBrowser = true; + if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) { + if (!("classList" in document.createElement("a"))) capableBrowser = false; + else { + if ($3ed269f2f0fb224b$export$2e2bcd8739ae039.blacklistedBrowsers !== undefined) // Since this has been renamed, this makes sure we don't break older + // configuration. + $3ed269f2f0fb224b$export$2e2bcd8739ae039.blockedBrowsers = $3ed269f2f0fb224b$export$2e2bcd8739ae039.blacklistedBrowsers; + // The browser supports the API, but may be blocked. + for (let regex of $3ed269f2f0fb224b$export$2e2bcd8739ae039.blockedBrowsers)if (regex.test(navigator.userAgent)) { + capableBrowser = false; + continue; + } + } + } else capableBrowser = false; + return capableBrowser; +}; +$3ed269f2f0fb224b$export$2e2bcd8739ae039.dataURItoBlob = function(dataURI) { + // convert base64 to raw binary data held in a string + // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this + let byteString = atob(dataURI.split(",")[1]); + // separate out the mime component + let mimeString = dataURI.split(",")[0].split(":")[1].split(";")[0]; + // write the bytes of the string to an ArrayBuffer + let ab = new ArrayBuffer(byteString.length); + let ia = new Uint8Array(ab); + for(let i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--)ia[i] = byteString.charCodeAt(i); + // write the ArrayBuffer to a blob + return new Blob([ + ab + ], { + type: mimeString + }); +}; +// Returns an array without the rejected item +const $3ed269f2f0fb224b$var$without = (list, rejectedItem)=>list.filter((item)=>item !== rejectedItem + ).map((item)=>item + ) +; +// abc-def_ghi -> abcDefGhi +const $3ed269f2f0fb224b$var$camelize = (str)=>str.replace(/[\-_](\w)/g, (match)=>match.charAt(1).toUpperCase() + ) +; +// Creates an element from string +$3ed269f2f0fb224b$export$2e2bcd8739ae039.createElement = function(string) { + let div = document.createElement("div"); + div.innerHTML = string; + return div.childNodes[0]; +}; +// Tests if given element is inside (or simply is) the container +$3ed269f2f0fb224b$export$2e2bcd8739ae039.elementInside = function(element, container) { + if (element === container) return true; + // Coffeescript doesn't support do/while loops + while(element = element.parentNode){ + if (element === container) return true; + } + return false; +}; +$3ed269f2f0fb224b$export$2e2bcd8739ae039.getElement = function(el, name) { + let element; + if (typeof el === "string") element = document.querySelector(el); + else if (el.nodeType != null) element = el; + if (element == null) throw new Error(`Invalid \`${name}\` option provided. Please provide a CSS selector or a plain HTML element.`); + return element; +}; +$3ed269f2f0fb224b$export$2e2bcd8739ae039.getElements = function(els, name) { + let el, elements; + if (els instanceof Array) { + elements = []; + try { + for (el of els)elements.push(this.getElement(el, name)); + } catch (e) { + elements = null; + } + } else if (typeof els === "string") { + elements = []; + for (el of document.querySelectorAll(els))elements.push(el); + } else if (els.nodeType != null) elements = [ + els + ]; + if (elements == null || !elements.length) throw new Error(`Invalid \`${name}\` option provided. Please provide a CSS selector, a plain HTML element or a list of those.`); + return elements; +}; +// Asks the user the question and calls accepted or rejected accordingly +// +// The default implementation just uses `window.confirm` and then calls the +// appropriate callback. +$3ed269f2f0fb224b$export$2e2bcd8739ae039.confirm = function(question, accepted, rejected) { + if (window.confirm(question)) return accepted(); + else if (rejected != null) return rejected(); +}; +// Validates the mime type like this: +// +// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept +$3ed269f2f0fb224b$export$2e2bcd8739ae039.isValidFile = function(file, acceptedFiles) { + if (!acceptedFiles) return true; + // If there are no accepted mime types, it's OK + acceptedFiles = acceptedFiles.split(","); + let mimeType = file.type; + let baseMimeType = mimeType.replace(/\/.*$/, ""); + for (let validType of acceptedFiles){ + validType = validType.trim(); + if (validType.charAt(0) === ".") { + if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) return true; + } else if (/\/\*$/.test(validType)) { + // This is something like a image/* mime type + if (baseMimeType === validType.replace(/\/.*$/, "")) return true; + } else { + if (mimeType === validType) return true; + } + } + return false; +}; +// Augment jQuery +if (typeof jQuery !== "undefined" && jQuery !== null) jQuery.fn.dropzone = function(options) { + return this.each(function() { + return new $3ed269f2f0fb224b$export$2e2bcd8739ae039(this, options); + }); +}; +// Dropzone file status codes +$3ed269f2f0fb224b$export$2e2bcd8739ae039.ADDED = "added"; +$3ed269f2f0fb224b$export$2e2bcd8739ae039.QUEUED = "queued"; +// For backwards compatibility. Now, if a file is accepted, it's either queued +// or uploading. +$3ed269f2f0fb224b$export$2e2bcd8739ae039.ACCEPTED = $3ed269f2f0fb224b$export$2e2bcd8739ae039.QUEUED; +$3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING = "uploading"; +$3ed269f2f0fb224b$export$2e2bcd8739ae039.PROCESSING = $3ed269f2f0fb224b$export$2e2bcd8739ae039.UPLOADING; // alias +$3ed269f2f0fb224b$export$2e2bcd8739ae039.CANCELED = "canceled"; +$3ed269f2f0fb224b$export$2e2bcd8739ae039.ERROR = "error"; +$3ed269f2f0fb224b$export$2e2bcd8739ae039.SUCCESS = "success"; +/* + + Bugfix for iOS 6 and 7 + Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios + based on the work of https://github.com/stomita/ios-imagefile-megapixel + + */ // Detecting vertical squash in loaded image. +// Fixes a bug which squash image vertically while drawing into canvas for some images. +// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel +let $3ed269f2f0fb224b$var$detectVerticalSquash = function(img) { + let iw = img.naturalWidth; + let ih = img.naturalHeight; + let canvas = document.createElement("canvas"); + canvas.width = 1; + canvas.height = ih; + let ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + let { data: data } = ctx.getImageData(1, 0, 1, ih); + // search image edge pixel position in case it is squashed vertically. + let sy = 0; + let ey = ih; + let py = ih; + while(py > sy){ + let alpha = data[(py - 1) * 4 + 3]; + if (alpha === 0) ey = py; + else sy = py; + py = ey + sy >> 1; + } + let ratio = py / ih; + if (ratio === 0) return 1; + else return ratio; +}; +// A replacement for context.drawImage +// (args are for source and destination). +var $3ed269f2f0fb224b$var$drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) { + let vertSquashRatio = $3ed269f2f0fb224b$var$detectVerticalSquash(img); + return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio); +}; +// Based on MinifyJpeg +// Source: http://www.perry.cz/files/ExifRestorer.js +// http://elicon.blog57.fc2.com/blog-entry-206.html +class $3ed269f2f0fb224b$var$ExifRestore { + static initClass() { + this.KEY_STR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + } + static encode64(input) { + let output = ""; + let chr1 = undefined; + let chr2 = undefined; + let chr3 = ""; + let enc1 = undefined; + let enc2 = undefined; + let enc3 = undefined; + let enc4 = ""; + let i = 0; + while(true){ + chr1 = input[i++]; + chr2 = input[i++]; + chr3 = input[i++]; + enc1 = chr1 >> 2; + enc2 = (chr1 & 3) << 4 | chr2 >> 4; + enc3 = (chr2 & 15) << 2 | chr3 >> 6; + enc4 = chr3 & 63; + if (isNaN(chr2)) enc3 = enc4 = 64; + else if (isNaN(chr3)) enc4 = 64; + output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4); + chr1 = chr2 = chr3 = ""; + enc1 = enc2 = enc3 = enc4 = ""; + if (!(i < input.length)) break; + } + return output; + } + static restore(origFileBase64, resizedFileBase64) { + if (!origFileBase64.match("data:image/jpeg;base64,")) return resizedFileBase64; + let rawImage = this.decode64(origFileBase64.replace("data:image/jpeg;base64,", "")); + let segments = this.slice2Segments(rawImage); + let image = this.exifManipulation(resizedFileBase64, segments); + return `data:image/jpeg;base64,${this.encode64(image)}`; + } + static exifManipulation(resizedFileBase64, segments) { + let exifArray = this.getExifArray(segments); + let newImageArray = this.insertExif(resizedFileBase64, exifArray); + let aBuffer = new Uint8Array(newImageArray); + return aBuffer; + } + static getExifArray(segments) { + let seg = undefined; + let x = 0; + while(x < segments.length){ + seg = segments[x]; + if (seg[0] === 255 & seg[1] === 225) return seg; + x++; + } + return []; + } + static insertExif(resizedFileBase64, exifArray) { + let imageData = resizedFileBase64.replace("data:image/jpeg;base64,", ""); + let buf = this.decode64(imageData); + let separatePoint = buf.indexOf(255, 3); + let mae = buf.slice(0, separatePoint); + let ato = buf.slice(separatePoint); + let array = mae; + array = array.concat(exifArray); + array = array.concat(ato); + return array; + } + static slice2Segments(rawImageArray) { + let head = 0; + let segments = []; + while(true){ + var length; + if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) break; + if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) head += 2; + else { + length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3]; + let endPoint = head + length + 2; + let seg = rawImageArray.slice(head, endPoint); + segments.push(seg); + head = endPoint; + } + if (head > rawImageArray.length) break; + } + return segments; + } + static decode64(input) { + let output = ""; + let chr1 = undefined; + let chr2 = undefined; + let chr3 = ""; + let enc1 = undefined; + let enc2 = undefined; + let enc3 = undefined; + let enc4 = ""; + let i = 0; + let buf = []; + // remove all characters that are not A-Z, a-z, 0-9, +, /, or = + let base64test = /[^A-Za-z0-9\+\/\=]/g; + if (base64test.exec(input)) console.warn("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\nExpect errors in decoding."); + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + while(true){ + enc1 = this.KEY_STR.indexOf(input.charAt(i++)); + enc2 = this.KEY_STR.indexOf(input.charAt(i++)); + enc3 = this.KEY_STR.indexOf(input.charAt(i++)); + enc4 = this.KEY_STR.indexOf(input.charAt(i++)); + chr1 = enc1 << 2 | enc2 >> 4; + chr2 = (enc2 & 15) << 4 | enc3 >> 2; + chr3 = (enc3 & 3) << 6 | enc4; + buf.push(chr1); + if (enc3 !== 64) buf.push(chr2); + if (enc4 !== 64) buf.push(chr3); + chr1 = chr2 = chr3 = ""; + enc1 = enc2 = enc3 = enc4 = ""; + if (!(i < input.length)) break; + } + return buf; + } +} +$3ed269f2f0fb224b$var$ExifRestore.initClass(); +/* + * contentloaded.js + * + * Author: Diego Perini (diego.perini at gmail.com) + * Summary: cross-browser wrapper for DOMContentLoaded + * Updated: 20101020 + * License: MIT + * Version: 1.2 + * + * URL: + * http://javascript.nwbox.com/ContentLoaded/ + * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE + */ // @win window reference +// @fn function reference +let $3ed269f2f0fb224b$var$contentLoaded = function(win, fn) { + let done = false; + let top = true; + let doc = win.document; + let root = doc.documentElement; + let add = doc.addEventListener ? "addEventListener" : "attachEvent"; + let rem = doc.addEventListener ? "removeEventListener" : "detachEvent"; + let pre = doc.addEventListener ? "" : "on"; + var init = function(e) { + if (e.type === "readystatechange" && doc.readyState !== "complete") return; + (e.type === "load" ? win : doc)[rem](pre + e.type, init, false); + if (!done && (done = true)) return fn.call(win, e.type || e); + }; + var poll = function() { + try { + root.doScroll("left"); + } catch (e) { + setTimeout(poll, 50); + return; + } + return init("poll"); + }; + if (doc.readyState !== "complete") { + if (doc.createEventObject && root.doScroll) { + try { + top = !win.frameElement; + } catch (error) { + } + if (top) poll(); + } + doc[add](pre + "DOMContentLoaded", init, false); + doc[add](pre + "readystatechange", init, false); + return win[add](pre + "load", init, false); + } +}; +function $3ed269f2f0fb224b$var$__guard__(value, transform) { + return typeof value !== "undefined" && value !== null ? transform(value) : undefined; +} +function $3ed269f2f0fb224b$var$__guardMethod__(obj, methodName, transform) { + if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") return transform(obj, methodName); + else return undefined; +} + + +export {$3ed269f2f0fb224b$export$2e2bcd8739ae039 as default, $3ed269f2f0fb224b$export$2e2bcd8739ae039 as Dropzone}; +//# sourceMappingURL=dropzone.mjs.map diff --git a/demo/dist/libs/dropzone/dist/dropzone.mjs.map b/demo/dist/libs/dropzone/dist/dropzone.mjs.map new file mode 100644 index 0000000000000000000000000000000000000000..69f9869b0c7bb8e8d297d7ac6011cb1af76af4b8 GIT binary patch literal 171877 zcmeFajdmPGvM%~6JwAJF#8}A27!QL7_Q-Ne)`0o(4+h3_aZ75+jU~0MmTUx@weCaQ zCp=GbzVC~OjLholmh8>hcddIaGpk)ynHm2P85x;X`t8cm=;h1F@xkoMr&n(4zxx~8 zukNhA*;rry`u6tv#)o%ShwJNaHdfcy*MHeqo#FYL4L0Bg4Z~GD*jW8yefel-DR`*%yf)VTM>ddjPh2({>A8xE30NINTHsD4``d}qR zTOjjJ7gaVFq=9evmnFT0FNg4!l>GJ1>izZg`^F!eDV!aHxV=8STcMYf^dm5hlwQtZ z?qjW>pA(aMi?xUA>koTnTo}jT;fV`SL}S2MH z+?!e?hi})nAWs0BN`EgmR$pMiRQkh>u;{07wfZ%z4hNLR! z(dWr3`fOF^$Z@xSpoyl)oj4moYPL@AUZBH7;-Z4#OY5RvNMH&OOG-`6<<@9$_App9 zfUe=HT%w49{c6yJLS2hH(mH%TtRyESl1*Mcp%`RkXn4H(1U|e`u~$e!3p#3W%hc`B z`o^&%{9%3LE8;u2!vOI7&gw3&LFERn@%+Y+&p#Tjp6iAUxJewk(oY&p;sx>%hkU$I z4H>VmkE!LK@2omq8;>gb(?pVGmm!DbLtX*+aKCy+N+86IAH_F4^7!T3Ng#(r za8bul;*aylw{|FinNXhIS)JbD4FTW=4Q}a|lfp+`=FGGu%p{J+*6m1y9jI81UU8O8y)Ww#b-Vw48rsc9o@?aDXsVK?f!tj^lf$2@)BZmU{67UV;pz(Xzz&m?rgIn3QG(e}vAs>O{3bD7#-Sl!YiC z66K>rxwY<3fDu>1SVx_}d5LMIUow}rQva=$Kpns7cWK;-|TpUSWz@A^YJwqHf?l3MOpTEEjjxg+q!k$kPjl-GmBmrsh5ojUQhq5|^VJ)a6S~=*BCZ*sg>Di=tm$2jbY9v1ZEk zkvd`>^_4x#er&J;l&*3F+2G0xMZ}!v1zH^yNYD(-#Uq>{Kf=;hr7gEU;COOh0>6DQ?&HBW*9~+?O_Q$*p=?;S+jRkn1wCvvWRhFhsu5h~ zpR*b=M5IesNjx$H!RQ0z5lNu%^94|DyrxnhV*_0|Nt&dxp@M^k`14(HWF$y@c!&gK z!I&TDT$+L=l9MKd^>Tfcj-dL=&%WM;SW7Krc+UtF0lURI$b@`CB~dSIaM$Epb2()L zFkPqt4{xzAC-y$EWIdGNsit4E+4=IVGfUu;|=nhR}m#8sO5|H&-NCYf8 zf`#BDM4=g}e43-@$lbt_Gsh&k8jbBF)orjBK*{9B0La5l_D)+A5u#hI!kn!Rm60To zW^)c!YiF_~_iJMD^tX%V(#Hy0B+LsEGnJAF232!+B=LDNjaKw8Z*Fctz( zrE=_uKFWT?J=*WzMk?Q?TZvy+;!+qer}XRxir18pm}5^YHS=l0%xB37TSdo57K}~! z1?N{603t89iL!~E2|iIK8C{gO5llC>D`#q?^ib5nq#z6|25D<|l%E~lv6ebrZINI| z>q%*qq5;LoAzUe+O05#A+CdkMJoHuDmYzvHGfb;9r$K~Mb{1@5XIQLCmI^{C3|-}q zh9nu;PyCcyx<2+0%e`H7z$6dZPx>ggw0}%m<=!^A#Wram7Q~-yPHoD-FggN*=w`?H z1oRTgu5t&+&`FUrg;iHBw&EW+Jzsx1zu$-W&=0k2hcovG^(o?jeUH}u*9N_ zR#*68MWaesHtv>behvwsmId*~ew?f5CFZ+~Y`seOuM-2m>2Cg-+EUYrB&Vt1__(BK z;8>2oK&;0(B8t3K0FSygDGutT%rOoFlG6;j+MJy3(Ams zmVMaL@1s&6MK49kz zfR%^&B0wTa#}EbiBQP9dp6j(%J;e`pR=MJPS>qSZ4l{&Du2Jt&i*P0qU0n(jPC;d7 z>Ar(WaYCT7AFqIY3(67V#IBC1`CamN;toA7LZ0X^e^;Gq!dG}OU zlhahpyO(cZ`Icd?YIojC!XW%95U-}A9@O|l9^R4aZZj`Mip9aot#veQiJVL2oKfRl z=yCv{3pJyZX_qb(ueRon6`7zrU8!o6JH!E0=;v%wgEBgqvLvL@!kfr<=bg|?s|diz z%z2z7v34BwYfhj;Rg;H7@}4HFvTx07m=GR%cH> zz~O-!;Qyas?136^(>JZjo*S9yEXKSGk;p2(zz~}JSk0iqvFIw9!7UEvVGJ_&45Dc> zuJMI}E*8No6~J)n1WPp@4kRLZ{-&mI1a+YnX#J!dd1avkr?M%RxxN$zsf4TqS2mtp zNZnts1erj0i)AmE&5=~>Vnyvn3oVy@gs%B^kBmc`c4WL?n+j(gyPnr3L?rF%r$ctC z{W982Z9z7VDJCpm6LyM8M2I?c{FeT=UG3&L*{rmxqrmElB3B*=*j&o1MFOyAI(Bgq`br?XSbtGu;pX zZgAZ#qoKiS9{uU2>-Wawd1VTR@2_cq&$xvz?)iQ$h zzcudz?uL zm<(S*BWF?qZg9Qutoo6Nz`AV$B924^Ze&dh4CF`KUtZ8^aj#qHhm}~Rzuyss4pi1w zBFjapu+!@+l|h8B_+W`#&AM7JJ8-o+tTvhNUV^EsT0|iuyM;;YDhodwxCv|SqkXS9 za!p*C6)5y1OV1#I+Tqis&0~oWyN+bbY{3|iIK|eeo?fgv%Qm+b!aA10J+_TBD=7|*q2Ow(-VyUg4ruF*SXP9s-4er-Euwj ziK5-U_Ca>By?B4~`7d`K=zY6yEq1ck*SGQ74%SjRE676NIyPHgRZfcicE!Mpmd*s0)xM(W>W^4+wg??T!<{F^t(+0 zGkvl7vY$R+>7Vuf2*N?t{kJC^Q?5%EgnPEd2NuL67PUi?NJ9D|n@bW0FPBSFt?JAx z$dqrvN>x3=mr$c5Qj!oU9aS#6{B4k%zP&KtKsk6HUFF?lB%{9-1X10J5T@ z5gl5H6%Aw|ap|E*RhFWwOyt^rtmh1|@N1u1$ViDdBK=x5ARO`Nj1itj+j%g}PIn-R z^f8eF6-F7AVCRoucls4OrU3qO33B*ev>D%Hv5kbXj|G`r0LO$b30*|FB$SkcB2-TM zpu2$RU|@>r-^PQgWAaFd#Jz>`%5te`OoJQ1m*6(fa97NJiJDhJeJtaDrKKeleuSmv ztGjI3xQzN!-YOdov3CJRx81kU2Ve zOzubx^zT(kQ(_Su{rCtLz7u!~g3pL%tEmcQPq6dDD%kNO!|1tzvvVdsnFK_JK8opO zn+FFNya(ph=+IdYh*teb|Ab+jh+q-W*V=ievXV8uUkW6`YMT@ zD~H5vc?JT`wGP3JkVxpd5^W0;8yu}^f{(`K5Z$IcQ}RwaYirq@g8>1%4SZkLze*yI zel#7^E?HhMZluh8!7vD9!7$biQMy(u_^y{dIRaF8kmIx4B*ac%cdIoJakG2fa5jgE z%rPy4^8QY!l_xCilutHdl`}F$-*x zKHQ|aD#if8*Of#YNsY0O6Pp1LR21!S>8Dr7_G&U0>4z=C%cjms_;r=+?qp?GgNNb5tlf_mdzvwmTNBu(&?d(VDz&3u=I4H zm=`wOP$?G2O6khjqXm_?5yv7y)*$Zmqi3X?9pN3>GG_XXhnV5|gtklbhB-6^j~vZr zzP?bO<#e-CCryJw?!p?{MCsB3#xpU3c+F-Yv~*Nce9c9ldo|cyR~e9P#Mq`tjE41hgJ)sRegvnJ9Suyt#T+ zH)_FMGDi~i^g;DdqQ)_mSmd?uj(0 zb00u_!{%+DXcb;GJb}v8IFX<>*#)YogChchC1mPtVMTT;nZ!@!gF3!>Aa{Dcx%vsl z9&F0=aVJ2Cvg=W77Nn#|R9KRdA{Pk@I$|!URxxhJOx`=gfz#ijN)hU+G5rzA;z7Wq zXw3SFdIr;)fTxP)zyprTHLE??aiCMpX+dj~oebzj^{Mc@YE)15IpHwZ@DS-R?b;zaLqx;EwJ63m$+ZR-8c4RM3cT$1AIU~oI03O=bF{BA!t}KC z!`|iunKBWp&_=T(Vyl=mX<~=r7ftbeA71w1V`woS@0OHZV9|_ZH=9$|-pn(C*_7RRo%*hX0fUa#LP815Io)M&kZFw<*AzrGDs5XbMZu6n_5b8O%S4QFb2y}9}d4QFb=O%u_)7(xM) zk>;#ZAH`{tGGoO&4CYkNboB{bZi%L^@Kv10Zw>C(V9?3he( zSrH$0XMN)baVNQ`s1$Kb-Qant8(E&(2v>%+8L2W7+r)KO!$Lurhs z>Ocev4Iltk6TG|q=(d_n5h^Ssq8XgKyvQ&MJ%GcB=TvP4;&U_HeA zU)N5~5GVJND*^%)L(KGI3rcpjVtVhEzR&}Xzd(TrIH{2|ML`P5gCK;6NG`-w%~zEH z2vVxF^w}?c>V!=JLns}x@C7whfe4GI1e#Lp8|6pQxunGDqk!ch2(j={Od-OR9$CW@ zT{1`E(iNXEDI6jS6t-$#Bq}Oghs8E{SSDW?u#{_}3KFu3s{k<3Sy|k;vI~E7DrD4i zl*88lPt%E;t2DJ#Cvjp5`f1|h#X9M3FECtgUa)4Z4^_y3WFWdi_(60_t4fWfKEV!7 zW5Roz^C4yiR6gdUbi*`uKI15q2NG6xlzb$q^jEdww%$d`*-8MJ$K{(@uv5WqjPXG) zJ`X|dmgYN2rXZtVnPjky+{dHY14)jGafG{><|_>IZ+@T)ZX`U(M3Ru2cuOh!maSSP zlR^etn_5rP%x}8e=bAAa2x3Ut&gABV#9**f#Vu(lu`uAM8mm(ZHnm)Mxy4z?Yq)&d zCgWlqSH)DploS~;X(^I%kqTR@WisTKAd<%%ElJYjngxE^kH&OJ$!F;!5^qC=OH!TL zptzf7wje7t>8IsE1u@KusWNpEBf9!8&?DG*kFA9r7%3MO4g70fP=2Y#!L8asnn9{> znuvQ5seYm~B%OKv zuk|1Pv$q}7Wavc;Hj)#a2o$&e!y&0Bx(N2)B^c>ByLRYyPWg#9w$Sxd<)~d$L*_ur zo)cw#h?i=;xZ!@Lv>zp)t6kmB3gkbrOLG4R!A#u|Y2nh*Wpf zr!a&?KMB7@PpgHjTfRAo^&e9zm=#<&xH+;XETX-Guk%b`M3?)9+Vun7ThzU!#qeK- zI+}V*i(%ZTkA~MLQi)BQ+Knscf=BHz5iI*TmR7aU!|GE{n9@;t(GW$VOd z(#CedRhXEaXf>xw_Bw(d@z}1O$vLwXSGE&n0K@<~dsc;$D%ee+CTRf+9mJ1E1cgn4 zAqFm?XHrOcK@Ll-32u_HV2O?(MJ$y?kObPQ$S?%CF~tjQN+xCL+Gx|k40r6v6%nch zi4edR{;8YpBnRz7WL-OJiHwa!aPJ5I;1hKQCb1;-q6A%hae5JNmZI4nYwSP}guVOB zM5uh@ve~7Yb1S@xj%^-EOvI#)yem4y%gtQJ)-zdJy_kWA_G>#~wn{J)rh(r^@saEJ zK1-4*aPE_#9cbN(z{n!v!ChrMxa%{rMC+eqD*`e+Nxm!sB=A61A0&|odGL*L0danz z1yP)sKiS_P{!JV4J~YE3gNB- z1Fa>*A&3D{W`JLGDnB#DYHamQAt!x4o%?>ZIwY_ZqOK@nf(6m(AnK@FT}chf3K4^v z<$4_cfq3+9m^&WqaU@Wg(a?_*G^c3$Lnc!62Ia+;CL#|6E@~PZm?llZWZ#}d?pZr zt*fM$=YSCT)Pynpud8_44r6GxyaYS%AY#al{_t< zr3GmSS}_C(C?0((H5#24Ocz zBtZ8p60=>Z9bviTQ@nswJ8@!?Qmlm9$CszBD`+FEb4m=1uReFW%ISs7 zfBw+5xpT2VPjIt#0|Yw5%mfOlDWp7oLLk9d1#z!8oAU~T@y!AXz!c5d&QCDGj2C>@ zv}4~AkwA7VozIxx=1b9tEGhOJLI}jXQ_(0SQoULg9dblv4(!Nv9ldOLJ5 z>`2@`(Q8(2hnS%R5zSGb#3CIDf5*~|lI$pBQb#>Y1|h=cHPl|;;X`^giZU9hp9G#- zcALaZhDB5{AUjY7?DcCl%3F3JhGM2N&R5b8tN=L5HRG<{y=JjQ(pSuN!6P)JTKt&_ zRwvW8aEeM|l#siQ+=>}Gat0UV%6wA-WI=NQl{0BQ#M>RA#OOO$&&_Qq)#+G(dc#gRjxdhZ3e6 z1_a|d4YQH*$wFJ^+*10F6s7s>WP1wGsFAHuFU6UfIU#jj#jKbf8V)illT^;hO^Ppj zk*fJkEYHW2DK!^61`VjysH1+$x*qN>I?Q1Gu>>c(uv|y?8mFtIUPF_Q z6oRf`y9?@NDWk5Q1+4JJR5HQ01_iBcLFcWncIQnHeO2q}Yn!XLu%5oEv$MECL-*|} zNY`Gj>Ms%ZO~GPQf)N?Il4a_ulS)GeI1tg&Yu+}t$lb;khrRKo4S|BbvRnjL?*17Z zk_Kof!$gyM33F-;V9X2q{)SW?1I0$sx&A7WA4OtPRv*$TM(GFPL6z+TSP)K4Dkv$X zD~m34hcdey&MT&tbeOcr?3pt5@)UOm)eNTl*LYm$21p4LJ=bkaSoIHF zA;O>qC>}E2@`Irm(>=XS{;&^{WKA|0pYc;4FI;7{7R4S<1rx17QuOFBI3QQ^X4lQngWQ7y# z1B>0Du#Q=!p7=J-?ed1H5;=vZ56bzLW|EQ0C%ue)5Hb}}W|01wnG#}eJ7=#2JStoV zSirwfwa-3ml3lKN#$3-M`CbwIC3}!lPRZ#M5`Bpb9yE&pO$-3KMvS zvx?#chFnWjs*$zf$I~4b6WPz^yh2BR`!nQe9_yR^LJe-*ETBuQF>-WXwFuKAsQ#w( z@2mo1P=-h*nu|MgOdUJbAXJK3Fn$l?w9+P*Tuu*1YuSyXt>Q^P9fE+{2_hN(2T4R< zdY&kUH8;2$b9SH$zW1~HhvvaaoUSV15**CsD=U%1S$uYafoA}`n;TVSF^)n1h)UIh zX*TefCqkfLHf@%qz&jy82)X+mAUwCv0Cjgc(SS|P43N6gj|3|I(z9`^+7!0MQk_9U zy$7vl0>dk2NALy=={hga!+FIR@`oRrQ_D$!j7$hY0Lq(GybSUO3}xw05fuQw6ez|h zBpb<;w9*9l*y$I4LL?lz!niLiKB$#Hw`rLu%_h^ub<8&-q(316p2g~!!0HDLoVU1O zoI}Xau1>-zv)7ea5YnK`k1k?)$s$Kmp>~Z)IN7RaAwZ=T{EMILPR_PGtJ81+QrFO7 z<@#8`CU_S*HaSz$d?trSyv&{=M4hrHpDC??@8?rZC%VniDUJ?9RxWqmVgbC=kBD$9 z&sTY3DSRow#@y|rSJ+HS8g-?gq$j6A2+`6($ST`YR@svnB`Zw(*;7}7o;@Rs4zcP? z6AbdO7$e~{+x zhm_gSIH4vQSzuBlx|1)CfzhWX)UGipm4bF(Q9(PF{s%wRv$Tt>@@M{d=EmMX_d2TA z@0OF5r1DBzz13mmTCgb>lB%9ypA1|;Ax?&_udicqw98YX8i<>eK@uqTB#0iekYnVS zlv|D|WL-*b-Paza&e}{;|F4sEp*r7%td4}mO2Ux}$vz}}33YZqeZ-OQ z>eNj_zP#X)!W^xuMYJ|=8l~9Z)r*RAvsQvHHp?1ngG;hx10t)(8nEn2L5QgybG8Ur z+!%R<#IDe;qiN?V0KyObLu<@gaTf=5;;bAdihG7mR~c z&%NcVSAht-L{kcuP&z$6;c z8MvofaOXS17>S!ynIjagF&EBIn(tdM@vp!6lqpM6w#)hwkYR{mszn_|l5}501?%EA zsB-|=Nk&4oX;Pu!D2EuZU2#Xu8N}8>kgqBx|j_4R$&EPs$qID?_@NWqh zq~&icz*=#Wup}Y$b7lYvDW3=z!*c?3y9J%=zTpoaTsJob>^MJBoJElvZ}9pbVW6|j zy^7GFzwDlOP|Rgqoun$FN>4$%SSxbwmwBGR0)uIwRV9>RjxniOFa-)Zvmg5BGx|TW z2a1r6P=~A>(reV&oL2xdwJ+uQhg9K%Si1IUDHSUtp}6akojbNvD;YJShn?!7nl&D5 zJSun$xphh6+=t3}RzXxVVAU^h3bcCjir?&qvFKsXkp6G>tCWbBjJkg~s2c{rwtX0* zKUM=@Nh=ve@v$I`h_~;=y%=bOgGo#GNvt|b3F4|_E7qHR=+jV_Sk)NCBHgAKYt7_S zNeaWUv`CI8He_N96QH7)C12CD5EC?A55`K(netO>a*< zM9>evgZAq3vYI8F%3fS29Ftt;RSJgBXik_gQ+e6(odiQ^Fw={84ncW5XTDG}unU8j zTd=V%HYMkzP8#TLLyx!vo(gd}qu?g~M4QFZ!plo~JC?&RnVVOY2)mSi=3P#j34jxU4@Bu!?SLqu$Y1+gb#kIVj=I?9$@_PEZ? zS;Pzh(N7Lf8&UF{cmTugs=K?-7TezM775sbkdw|X;%btlS_y%DVNR(EH3@%;P}CtK zY<5UGB;ze3tepBdk}*NBSapgJVNger)Hg)aI!S}LmXnsOB^tsR9FI9U&t=BEV z1z#FUsiryTDum6NaUc($puYx z`NEf$!-uT;ZRx8y-80Li2q#T|(Wf%O5Wjs)iyw6+8iF0-j{un1bcYN*xsz&in|vnJ zbR8KwDM9|7qjja99OJD#zLCJQxdjQXI4O!|Ns1jMiUoxO>44=VKc*-~6MD`Er6VRg zwX0_$Qouy0z;dSZP;`iN4RQ9krp}IO(QQXnx=_B$;Fz?fU24K66JT9p7oxC&viV8X z%}xHIE0hJalw$x7{R zx+!ZJK_v=Wv78Ax7Z~pT$zuY68q!K6Ww#_VaF!CXJ&4?@o~gS?Q0haNSO?^oaXFKa z&vJ~N_a%)ya|0R|gq6F4{Fv^Rt&HR-2sbeel= zL=t6nq>ipcLl^Wy)m-YIfbvQpg<8)fkB+7prSPs&S_(T!{g_EOUe`4j>WWc2)x4CE zZo0Co8qjgdKwPS)=n|Rfdh90+BQ}W)`i56<%uO^vKM6DGfN`)iK<+ZC z|G|ppX@W7;0)yN_ywNomXLCnR=;Za8lbnzwfMBq^)_@0>r!~!7T9!xz7E=HgrovUw zqyi+}OHDO&v}URSJ1n~vpaO*gYN{`3QYX=rcFBH9l`x&Ko!9tF5~;_&7^*o0E4&zk z#ZRg2<&~w3FM5wwrNs%8h?1)pk+C|3DI)y;@;XS;lglxKSOHC-9vHwx#)amch8&z% z5}e;L1l6LFY=U!8$M&>_A;4ZgRdUIpej6>o~%8Q%BhB z^CEeK?Gshh|2kZ~34%V+bKKy%`vnp}#}`P@(EkUh7nwv#*h`C{Ja>ED=CfU|z}w;g zf0GY$@<+qfbKt!(Bm~^Js2UfP!1d#%-LA9}3$IvB!TbW49;TPOgQ6B96;gc+=^pI^ zO?JSt|JysuL8nc0!hmSgGhNNm&p)WBhiMbKO~cE4G@oVs6=H!Ffdw5!j1_Z&PRt2r zIcSYo02&955_AGgYH~1JsVJ)$z0hC$IK=0O(c=X*xPhC5CC+r4P?wYGT7?Nv0tD!; zVRn(te<+fn9ewLM7qG**64RKmNt#J^Qh98pXqpc-NQT)Pu(G0p882JGlX^pT_? z4M~?|m|D;I%3@~so1y4}b+QPOuVpHh&rLbq{aFg96%A*~*&xZiMs|vz)wfw-tYJ(Q2w@}6s<@)IZ zE{KTXSo*LYao^ zb8wx@<$S=N)HyO-3WJyR8laDx9IO$*ZF6k*`xDH5q@^3$0mT=2&N1MIHiK{@%0zO~ zD0KRffp%Z(O=Dm22q_9hD&Vt?_5L@AQsGHbvYB%sII=g~o0Dm75JI_Vyps3k zoV%bBU>s|9P1&D>Ky|wYTicwYpmV#3nzP|9KqQ_4&}I#@>clGkIy7g#-x;fZ*_n9B z(Kf=ro`R3Oa+4HsNw~WrmqxK!EAE9!K(env&>{(ylhjU9mD=&~oZQgy6S)XB=KQY; z5}ohgc8(9Q1pyjkI)^CP@J_Xkq^`9Xh=?r9IK^@*L41q99Lz5KFd6^)@Wo@a5=2jp zf;;$nBenv%C;HJNPV@_HXwPj)I&)Imd|fS~9zVSy!}JvH*4TOuPQC5EYw&3BY@rmB z(97#Q@TwpLk_V@6ban-9%eMpG=xmIgU+V5@KtOoYKEzTRwV00vx5|8`V6NLa<;N-( z_RY_!B?!5jZgVt2C|F=F=+l0>sMwYgmp^ks@K~0B%QRAEeW6!~i&--CB3f(k{EGGy ztponLwR#hre6qzIPuz@|q(~gHCc#RA1qx8XV@ku_KOaOdTjibW<=9`5uHxm`^Gy+z zimK=I7>ATIfL&gX>4$TAY!5A@C8q>as>y2tlsMEN>43Ie4?sC}_-ngznnPlkLR4BJ zzzN;SWvMyIFqlk6AVkRpo93NkT{pF)$IFq|f#9a<4Y=vLl3@?gV#Y`3sX{6eCjU#V z&}frAB^@a&T?N(p!eGn>VlNctwQWJ@15<>>1GbqkTKO0d#3l_0|R5Ps3;mFhq!YWW{_r-ti%F{cPY2(tYRqI@RV2xr8* z=JaKZ^VfLe_FFD?>inIX3g)g5hW}Ay=^Aq0z@Oa!h8v2Y$fEokJ8X%)Q4x@`6Y-)f z5SG`7xyz;A`bjQ5;*{4gi9GYXYGW#g5H>tx%M74iEn&X>%7!2qJ+iByuwQ)Hq+IS91t&1PXO~s4v3q}tTIiM z!e=pBL`e}znMBzUx4aOUyOnazW6%NIr6?ryR`pm8M7>9-^{>sIQN zV1i#e0CHVUj1N1#0Rh+bd2rm|`Ue)wf8?gp4^-ce71T71l$gXV_%0-0Sdocla#bI| zcL$^fzp5fwDEJ)=8M;g^lg7fdT4i-nP*hVIO7;w+MWUyNMT-|2ZBh`NRHh2c$o9mW z&v->?$3~3I62f{REn(Gqpc{6>yk|?8B0+8Y1{oPRN~~IA9vXW+}K11vy${gy3zk2p|q? z^ozF$epar`eIoPlMw}xfR&P8Mchg+|fe=^< zcJ)$sNrVpgKx0<0~i!M%!X&zB^ z64_!cuSkt$O?}VQ*?(B=NX9R+T$$zwUwHBrdI~`p^`mDQ0VDm!1dw9w>sVIdZS6tP zN&P#+8!o(pbbGXpTsZmZ3>InbA(2er5B|behydjri2pJoF#ppSI4|ng0=!%pqW0GttZ@KKQZwq9-z3c-Kvl3 zjjL>TN>N)uIn7DI?y(F8A--NkCHOi<)5^5sE!|1u_hJ+61md4JV-9d>BGTB0bd=!N z6KgU{gftH;UV6vWnphVVb5S9jkcxy0=NMgyrDWt1HcB{%iz$m7ov;%QTS>U5&Sp8w z2a}oGBvE8bc$!{|GAnK++b67Bp2$-1^Bu=@uSNkki1v()6>dvL9GT zu>Ow5Qo>e~ZiklNm*Wj#{X7pd9psdZ)Q~-o(8&KnHor%ZLH4lk57n?^|vQ9 zr{LjStq=;RYc?7O;B#fjl#W`}4`z-)5kvg&QP`1=_xrOP5_GHDp}H3T-YIP$y+r`^ z6I5FcLRPV0VGF0xJpBEa>D?z)J{Ioife)iF1pYPM07n8`^KIBsLdwmTQ)Ri{SVtZ6R^QQ2UK9L{V;2)r8 zZMD-Zq$%ahM%sSheGBOuh&a+VE|Vi%p5`zxyuO;nSme3S3^Zfoq{GUf-YOovjRQy7T}3Y z8Z_gNYIg=}2!Zp!8gpW`Lze$AzbnJREcPHt(Jn9d^zlKv5)~SkROngZuAyS9naNW? zV^;l=1z@UEe6{AYhg$99o_@Ne&zoKEd;6FPEBvtBv}JEg`En&G z?f?Y7SR84z5a_D$B%I&`$fk(j2T~$dLtm@gHBjOYT_yNAl=i11raYIu{ma$`THQ5Y zY9_VhQ91)c6knGhgzL1B6(iUx@IP5W-JkvN)6r=Y{I|;vhbN zLxV1xl9(;}a20u0nRD~HNXkKqS!g^4h;ubo(#xH|yMnx^vLMvR^WKGnj`AS4CSgqa zJ3_~ryV)Gfj)Dkf*0Z5x*9i;lGybK*ttNmhmx5YDznXrVvRjg)jtk|UNOZ!Y>$Ec7 z&S0;q2}1@Xi3ifd8xi1hCR;)_#d?eVNow45dP_!GsbQ;xp!xTP4n}>nwR#TpH}rx8 zZY08v9FtYIMoEP~zFNH0Ad+5d%wdW5Dp-q6OkK?)bdCZ5v&j;&PB60sa)zw);*J&q+|=4KXiW!I!Ll+Y?+!_b>RuW{fBr?%Y_9=SB65v#Q#<>n zh?L|&K$dDhAcZ#>g zW_K}yL6|b*rP9hL40+$PIP!$g^cT>wb)x-Fl=-g$z(mjOG*5OJ6TtrJi2FnUu-}4z zp>!61I_CiCEdCG?df=v#mBb<&lLi3Gg$*KMG@!LRp#ucwhYCckg>W$6uaJ2NFvMx6 zb-Uou&`dX}r)E0eMoi|yBf~{SL5}$Z7G&?=R@KrL&~2nr2y+QY<_vbREA29{V1BM_ z8Q$QZngrvxsnE)hitNf@J4n+#xr@dG1ChEG~oc2u)E<}(iF8{k}_FB-#8&c9-r?Y!co;h$5YQ0}d! zb*9)kVNbp40?evVqON?2uKHXPmhq&QmhMgt%>GI~aPC|nUUcb~t_YM6TqZ0ELKFvz zu+KMFKhX{O!i@y1pUQAOP)eKvN12!xaq_QYQc643UqRw%>x0w`zkRAoV8(aa9 zk?-$^<8@CupojmV6S}E*>b~2I=k{)M_fHa_!QRV6ts0JC-wK%AAs}2+Fa_of`Fp;S zj4rrox^y=b&;=U`=+XvE3$oL2+HV-G|s3fOxNO-3BqkkFA!+OU0pA3jfH( zk1+Pt2I<931>Bd-QjpY%tBgdLDpGa3T%hTeiluGlz7kFc$PQ!{(mRy&ef7-qehMx- zx;a9d`K)hn_S2P+(3M~wLnJ^Hb4il?baLBK-o&3RVB)E|1PmeJ1@fn<{$wm}qzG}I z8p^q?0w)}Zqs=6ovtBxBhDlu&usSG#ia|$ajN!f-q0qEfsZCrj`JxPdw>t(CDe~=9 zHbK%Rk!?u$GTVxF#Y+(q`s~ZekRn46uR5pMVSsj;eWu`cy16<<`Z&{HG{a3{&px%G z+muDl@F^)!s88~E#kyo6-H*rtaq|ti%#kjJYPP%x=kiv1q$SqQ!F&L{?|pGv(S} ze#KiYn0W+E%w-G=4n1W-&Iw70H2qwTfaq%@1M$f`DRZ)ziJq^CvP&kC^GJ8LurbLz?+Y(Jq7?buCs7537YsKb+)!Ga} z-VsFA0a(uv7WHnx+UZRkI6nrYX(^S%MI~OJ-rI0S> zZ}k>VwdjX@Q_jsddDKw>%SjLWh55iiB&!4_3}~qrOnQcdrTl3PKoCC3%f~_>>C$Qt zad{QSTU#t!nUZ3d!m=2!Si8j_eq0IJ_sQ^!VS^FtsE>^TZ| z$fbY5DMJC9T7P%nQo?h*rBt!s7eCx?VBsSc1I2zY9WSlQ-n^MnBN^mqsMcnytD3E> zkXx?v?>R)7CZS1iX;HY<2~kw>I~J~6QK}(<70S(yo@`+$AqlIa)Dsa!9tG+&M11C8 zO~pbWHZeGl&tQe7X7$!p5`hrdY(i#p%1FKAwqEEUR$@;_l)$;_tqo@t3uadt1nj03 zl|?~SE5zSy;G~>{v_rO@VXcl@sAC>}*HtJ&tsm-FZ}pQD6Ld<1gm9f|XLGxGG8&o# zD>=iYs9G%{Ri3YQG5Xge1=6~rAhpYy1R5fReT3XC15YqC+WHNa>_-UQ3nya7(W}-BO^%RO5dv20d_70Tcg$=4*(P-)XJdMN7169xyjr zSVF`C1(O$I&n_1$o+MQOgX88rFR>6e7^%88rmKB5cwyC^Ic)VXtW{yb%lA-QUC0L_ zXtf%XG(n7yNi!1Bs(nsK3uh~ge@I4DRKCyhwXJc#MOqsm)3PdDoCN` zOf{R=o2#!dEuU%24>#cCOhwPvTdS|2ma{EVi`Oh zJ_$%GTz0I3cV9;hA6N!)k6tqv8FQR!?UP`7Hus#M3%>V*ji%-PiUPegQTCWB8)OI0^1C>g}9 zIONHz!05+C5qo+`)`;(&BxsR}EfD?DK#}TyN2H7(V*h{(#DV#hpedQU=$7<%KqGZW z{-%fe>7y{sNuaUstPMf`R31mrhr5VhDJdVA`-^fha(yy94b)pW~TWE zWqCg_gf6y0(%nQr12z!=u>0L!+aH+#>XX|~xaZrDT$=y_AZx5;)QgY z6p@<#XwSrM1`v*AM!WY1wF++_7i4&KJoMskN<8VnGjDAM#{ob*tOv`6FC2_uAz;Fn zR~$^1L73olfO*G8UY)_%zQ(+;Y;YW>7HUU0^sP)Rod01ykE{OI4l^PMGr|N?N?l6V zzC41~|95w!oRE_w|9w|9Gj_x*-`CvtEQUn2QhmgmB$ldmho+n4DJ1`Rvp_7rO2rBYBL+ZL*Er|f|7iUl6IRiOo?j)%o z=LE(lg+SyWlr$pJ!}!N50Bq_^>_~_39WrTlm!VdiN_35I z8vdk$!Y+xeUr&@;N~;AJWH$NzhqV8C7&+rylvU`hRnZ}egi_24GJd}3wkFE##~PM@ z%O5uHiz_hphk+Jd#Uy!7J>J4XI7N<-q;z;mYEznewy2-Z;asaDZwfj=BtD8wW13aJ zP;~I5(Fl(8PS_faB1QUHVN_+~PJK}=)#Ce<62Hin#AahxFF*MTH$D_ZL}5fgbD zyDTqRhpi%I`2RE*e_=cY1l#CayJ6Qweem<{Yq!o|2|9%j%tj4EKJXPQEy^`ruz9Ci zu!*kpbp(!`Wn-}&qnMzdw;!t!BCYQVEd9T~dLnh4$UUE9HSXT3>Nhr(D^0*doumJO zn~=?NFe@&l;{Gf3wm`PE#4;LVA!25XBLlTfLa+ zXmGeJ_~f5(^ly0zh5~-H>+e-#nZ~Hf*OTl6NS@Rnnl_Y!w9FLdo2#i_1DAOMDVHVCCLsV}Tls&{qHb zywH$9^9zCgcAxLDNYF`fxnhL;zWRfKqCu_vVJjA^(h4Bjr??2aUh5Us$dtW-QnnJT zuQwouwm`eM3Ee%XEv`q&V5rWv$eo|6- z6iSzSd#`M`|G6F0>&=N5))ev9F0uYt}% z&I9tVJ9el*P=ZXw4rJuZeYohit5@OC_9we6{Srj2)peyI7~K>Qk{n4_Kj`RZ2=bY0 zighmT7R(5CgP?Uj)AFEK1 zq7}Yil2L7lQg+tX`Q-&rWv7vn!we^UCaG_uAgc^yRP9 zG8}S98dSgKOIf?&JM@3Ykz+^0<6PpCuhf}lcVtm zKhLfmPIj*CoE`76IUZlXd2|2P-uUMAkN*1c=;K>A3F%*jl8x!{>G=4R1Wk@!PESq; z<6rP#Z?JzdJsLc{^7Gm3^aFeJ^vdn0$KGjZWJa&Gpu6s~H{Kte9iDz|3}jd5NL`;E zkAD$X?>yK&9L;8fyDk?eW;O_Xzdb!33}&aJ)5-2&ay&WRVE2{x2YNmjT)Q?H0^V$L zd@wkDJ|4I<4eILPXf!!KJRj^&PX?#s+3AeH2Ix4Mt-U;%o=#8CUyj!T)n|beTwBL$ zf3|-Ik1%3@|BnWTliBHDx<42l9u7vYN0Y6N{c(ZLW3J$ZU% zb+CVSyi41mcm}_}U)UJ@`C2dIPW5Mle>$5`Kfwc5{a|ze`JbH5J%!QqJTqF_@zd8L zuzh$q9=#qn07iRz;CpFTf3+Bt?|n%?7+lPP7CBlm`@GZk>TG;A z4rFE2zlu3`-1n!V@ozbB0CQ&F9!LKvRrn~Z1l{*XhqJLp{BB;hi|~7Ta<+RqJy{ta zt`0nYm7p^_dpSN?p??tx=l%(qCe)}JA89l=PC0>NZ|u)^4eKqYAvDn9!RJ`Uz&ZiOKaiKW+IZ@PO% zve%%ClkY27eZg=H8YYk&f`d zqcI}o=#*h+S@YV-7~OWqh5l<#pC14D+Cib@=@tA>=AQVV#BDn8c(4N_o*^ID$GkS) zTOBY-L#6?@XKO^C0kQ@NlGAE&oQ5dmLA&Ekk5%-dKNVF?W_Jw7!?Tyn&&GQz(9drn z?vwH9*~xLsVxV0kA;tdav2{%NyGwNK?Boza`nzjl?O=Smeu_Y}a|Yo(y)shf^7P8! z>=<*#Y)}vTj|J=qVvoneUt6RSLLXv;gFxKt`xbU8V3kNtpLZk6SJT1c2VV{_%e;o8 zA$%Z$D@<;J5z+{uH;+LZ%}gE6R(2-nj8a%AVc;4c+GW25SLstgJQ|-qpY9>c zSe8X~JGT-v5NoH?$1jmYZj5H*l1LUIGV550=o%9X;^pucB!qC3h~SLSu-oXlhVlS% zwy%&3Rq}&fJQJ1W!}dQG3k`&9`jKdKu$b4MgB)0M*;-$W{W1XK$~d(1iffP#eT`)LM?N{ zs?Mb}U<@VXDyN|yJedh0(p#Ex?zN*|q~R`VJO+IWmokI&_V$n>V3+OuR;r&0_= zvo-vpY66${cxLe_puN9#GR1;Mk~3hRPrnG?-PHXL+;gl)LY+98zz?<{hJ;E02&W4JA-G+{|zzl?ggE9U?0 z!$1R1idyuwU!_I!GF zxc5G1$g`JTF3v(xS>ppzAeE(r1F`3ut9|hgH@Xm1!hYsODk%vjQSY%GU_vgT2w|Xu(n`#9U7$ zYuYjR5~|<(zW9~ zONs*epky*@yD0RWMkTMAqn`b3Z}QsqBR)fU{nrm-yh^2e!M|czCTj! zT)COD%i}3F5yuMuPp_Pgb`TFH$0`jo!cWGBQ6(pUK5L&d)e%Y)d*fd$6o2rc8EZ-k zL?}BPpK_@=c(!M&JOrR)5c2fOGo**RBjksJ*%WhuS0+&#nsO2`@gt03Z^L(6Nf>}4 zxcS^L1D(j5xmd*rhtHByQFlKdr{|cPUr%OU7J(Z-y<%3Won_+Te@g~)qnI0{8ampU zO%G9gyzJo9=}V2fe%S$D4S#y&(j%UaCkM|NMc-n~o5>z3d-Fpgr>GWB&AilDrioE8 zyexV<%c#CC&5CNRo+A5{P}_Z9`x+J+LvEyVZs)!iruALygmZRYou622=j}J8Y%{Et zy|86;mMN*47HlqJfS%1yX=XcI`kQqAo_Cw{OTo>E%h0I6cYfZ(+jzA#ktoEG%06FscdkDHL@1lzIcQMe| z0#^bNcmNR4vs5r^BZ5pasmMZ2cFvTdqk9hLee zG90idUE2u%&+`0VVeGB6b!NksJJm@6w`~DGdx>;-{D>z8Y=QTUpC~}FuZTRzczVSd zr4j?E5r#w!O+*V`pAC_9t0}b*J4bHke)2c4IK687(B%4K(eJn+0*z?b2 zpGW@WD#o|O{1)cTIXkXB-b1nVveo@t8P@e`J&?V-tLKYHG)wrVd(cuDil)3rJT-KT z!w;D8R8>Lhk7Flbea5|A%z<5TVHI(R>L<3v4i32QKicOhqGutGDv|eE2OQ-Q_J*cs zrz@6u*BWbdfq8y)a6Qbj#H8w&5LQ#%RrEC#BOA+jv5Fk5)OA0qV7$ha+oO}w@eFLO zF$d0C3x5$Xr~ z&A2li1?xk%#(ZU^EPzlEV6cBZIvGsB=Jnh7=Wm1FfwulZhpSf`72AZ;H{_p_fB7m| zVub7wqHG5h_0tlkix#R2@25Jpcg#I;PEE&CgoKxfaGuHZD+sdR*4{CqDvK`2Bk9#M zN!4<-HzS-&fox~UY(j<@hQL&y!%m?D>yET@d;&$IXov#N0Q-qJ)a4TnhVdktHWc?T z9x)kZ(Fx8zmaL8z^QXqRU{E2JA`uo}rY|c7tI5u6ji#Yi~aLR3PRn z>OKa>Y**jmq!u^xZ6Be~<;$hi1UTN%nqTu?a>DWq(Eb^M`YkR7kqv)p39IME zRnjFkXE=wDL$E0aDWg1fa{8(Kv0ZA@=bWE943sepr{jzO?4AcFc*mZQ+xTP=^v3p} zzak%wUWi;EFNK^31sCCl#IZU;Ou|HiL>|ikq-Zc-8J=w0PMq#yU;b!}dNwkeW1h(y z?2L+`8l3?3{PgtYr`N7Qmb)*Ab^j3g58~`K1WjzRArxNw@UI`=xOMZR>o~MKI`{y! zw-0FA9}v|CHiyqX;Gx+M4C4oZZ}veS!bd0P40tEwS7#GW0ifJX8AW!SmO4g74w65H zhvP)+;q(N7|HBUlD-SmwY=86U*2f=z^fAuBZ~+YBswhT|7#7C+yK(T$n8aKMl#TVU zf&E~Sov1b5-^c#I`XQt+-s@=fcdR~7cb~)Hc!CNZ=gtslI-n?|p}-A3t4){PQTv0i zv4&;oLzJNA`t-`-=TC9DJAHZX2Z#eN|9v-uq{1&{k2*}V$RHQETAXXW z$knDV7Xf|?rYP*LANKk5-XdHJn6R_G%UB?mR4+VA*$yl`((3_|7%XOwr*E*0V{kqW@o-Dh z04Z3`mpzdm3~_94Wu@EHmN;t(mY8p6@+#-^`2MMtMyg|<7e#y_C*!YATfAgYEPl-+ z?vyN!GM$YM5fH5u9^36+;*JT&S5A>++EN$GG59|sONy4zIpwxb26GH(#c1=5EAl`8 zvpWXFWB1?$S-L#`g5GzXfjB6*t%Hkmgdmm`u$2@^H~*`VT&nbM!}!|?uT7F+y#%~d zYCz2tRWD>4w7bpe36JtfFM8gJq!U8JhT7z?ou0#P@igY$DtR| zE^{X+55pKJki!9>o3%ge{L-Q@4`QA=$FXiS?cwfZdX7bg8?_L+ua^u<4{c3~xkS0| zicSpplv3MMp9tgp4~h?c&DDkg&Whr-moXNTwy6!J1!b=Ku6FWt%v)?G^ihG?ljUq@ z$u(J@mU3S&XK1~rE2CI9S1>#sJzK*$nhDN^_Oz%}`}Mw^u3W`#fMB`0medMD7R(Iv z`axSvaEeOnopWgWA@VfvcD=XJ8_cXYj^`$QlNN1~6Bpt6v@%1gz3M+-eJeE>CRePx z^}?$(3>~vXl5}51%8s#XmYA*W1VhdYy*5V-I=$6WdKTa85gb@u`SAMn!JjK=l-v7* zYt<76)m?4$!vnbJ9}`mTwpM-dbr!Y&mcC2UgP}x5wMk$-kH~}Rwy`h-gmMrU{xdpK zd5n9}D7uZZHgIa&7Tl>&Hyj*18DPQAeSQ==_!gACbfAeHP}i$|$J|q<1ppw`j~rsU zqmyGOlrTLwAMBhX2R%fZ$hW-Et`#W2%01wXM>{A$kp7=wgWm+9E62rRXn`zHglR=E zOs0HO+c)aDV*kwq(k^S}1_DW_uX9|>wfL;FUt3WA{%-|?hpYf@MqCce{>R|iKmYBw zf;n#83xE?L}S&11@id2q|7MiX2Y+tMCJC?5UdK=K@&5F?-^%kgoym zM#0UaT{l+rz&MK2>%F=h<{tHzA9h z?6tt`oIb^V1^T%7sneBlr$;p}^c-ECcd+jGRIPa;sgPu55A_BU;J?>BT@k8!dgb%? zD%v!kgnRMCMDY0t@0C=PG~h8yJp0?rzVjCKXq>iq`FZ1rJZuF01(gD0diA3mG+r!% zX};K3_4v?+uIumrjvg5y8V2U#!+Wvi4{&k$^vZklNz(6wYoGtEp=EZqgVH^4;jO4M zl4F^|pCCX#JpwUyhJN&@NTze{XkaI@=ZD*KK!6;GCy&ttUn(IVHT#~%est(2 z0Eh)FVcF431scW$Cs6M0C(QA}n7tW;NCD4BmA@>FgMAr92oxRO?X;CoJPY6$HLR30 z=4X!!lSYxxcG5_`PNmyV-5=zS^MRK#2)B(zDgu*&<~eF!*bR<&NmM1QK4K)aOaW*f ztEpeEqAk1l^pYs=`Cmyy{UWQ+g_iIn5cE$R)0w=cvM_VPUY}n1R~6W}&k;0vT=qLNGV&R%tzV0P#HksSzJaVp+_zbu?9%!Ri(^uZRjnr5LT1onD3NgnEbdwT~K z8w0GHa(lRxSvazPulTpdDrLT9lpWf11%By=4WR0Llf*aE90+wmW5GMlc!vqnDK8ka zrRYKhd(zj1yk@2RMkWR^NCM0SgKSHgwJPGW|BMbRG1bq@op{n%QwVX4o%c*Pq_#kbI?6%dB?QIG`(frI?n|A8v) zk&>ND_;1nb1HB|t0j)u0N`d37e#NNch(e3M^zC<~w2LLe(Qwn4Vj?dX(}uiXK+3n~yYN zxN|hzIMJ6FEW@(JNaHPd2Tt|7;Jz*@1>TyL!pzX8tG5&kqQXT|@p(zq_eNULlivQI ztfr1p(!$c6QxVb`L~cn1=h`W+xL%pzK?#fuvQ~*6?>$5V!eZ1$>ZZr2V4?{}qN^Pt zCYb~__#CGkLVy-!&(L3QB%yqQA)Fu&{NE%0_l5t9e{x@-itQ7Tq9X!=<|VB8GXbQN zJ~y-nkM{ehkF33%zOe~5veuBy9URVI9o!szFqp8o^dSY2!9KbD zY+wK@o*A$^Vw7Zo4v^a)Mz3oaNRtg{f*V>;{&YKYCu?;`E#tKWWph3EdddhXl3MT_Rko{ zyMK9MCCwU#i%^w9P0Pa`BiS>a;2-^>4dK}b5COkr^30C#+g7wPTiCyqrmS3h-%o!( zu>PIz8BwpH<%ZyLXgqT3e91xmkg%<{@0-ODrO!KW{01aLQ<)8MUjU0mvR<+(FtMbt z6OO-(lG2nn#o)e^iy>NMxp2|g*DUcr^nc$Mp+GJwh1$3LdO~#N}lT{CnJ9)933BV z4TS$6k2#CtWp<^b+rtk(G*}Er5;fvY$y!UsT1B;%0lqL-PRVwIoZ584se6hbT9Vzu z5wkh2=_Y*BkfpZ6z43`3c@0Zd_0f+AiFNB0Up}FrYq}~alg;0FNbJZ?0=L|h$V3R% z39n7-B2dTuKd=95&5pQk!J%fuW1gXKm#gq;tLzb!6O}+O0AlwW`h4jT%gJBmaXUQkc z6;~+5lPkTdQF~Z)Ex_BK@NM029=g4(4XM=%rX~SZxkzH!!*Nfu^&@^P21R`%FkS)f z+Mvx*i!3i#@nG6rA5-jotK-5sDIw>s^50Agw0IUKu=#XyUc9thm%u$nFLcZ1crRZ5 z6flIl-a$A;ov14fkP_O22Cq$K^r22OSH4{T+q%0^nNV>C);QouzawDx)*Aj@oB`t} zwa({|K+WsgS*edqBM!hIu`#h1<2V~g;}LA` z>|};*`$J_A3v8nThL6xZFBVECM;j7XOx($C+1wT5cjp96Ge@E#6N@^hBhJoht% zS!(kM#`%7zI+rMz%eK#UBbT~<QLJtz2gj(D-YYNM^21VngNRPvzlL2P+n`^$&Qm5jrG*!ybE`SEi*aXz@bZ+=H?S|L3|r*1wBN7&+i!)WvbUYX0*TGd;oTh3#vozsKB}UT z$$B!o8(vdPJaI{$3min_S8J*bBKPxte>R7>7K!_C;6bo|kUpt14z)F716FS`A%oOs z5+mExZm~`0HE=-FigR*;37@A_NES`F)9K-O{HYE=&u{{I57oQFDZWLtb~ODJ+yA4r z>B+&h@$mWEnP--&?H_LCUFoS zAlNs2vGaha8OKaS88!;_sQ_+S2^+XiQ7P&rjkr~g^-vkCHMs73H&oKn9v zD7jqa3muu=FgS&7nkW*50v6RWe#k++(6+GqpJ9GCZlbKie++o#W71Ke>>PcG!px)T z^v*;d1PNb3;Py`_UinR7f<*j|{n=G3YgsWV$z#n7H1MCb8#k?{biK;{27?A-#jOEd z#9RSUY}6KGl;fZ7`WX)ddb~+8$@fD$Td0km>b*e8ra?`K_%}OCFZROQ*Ed(*FK6?xF`_R? ze>%8co*_a#^!M@^2y~*)U!%kf0XOwU!J2NEpRn5wzD9n0jG9CUje$;O7(XvQ!P^=* zB*k(Q3QQalz_4mO<@{l3t}`L#u0GNSb}a;!W0y76?8d3l-*lQg7gk1tuKLph z@hL}ase+Xwd*2NQpAZe}_X$R*fAiEk>kR+%|NeiN09TCS$feI~D(g=L;cI8CfL)BeATMm!S4NH)7>~ zq_=fh?5=#v?|@hH4Lh1BO+=fZt4N29{0}FiP+$rAYHo?L5EvJN_tUbHzRSlC>t~ko zJX0 zSQv;2O?`CaKY+OT%-gzsQmdFzuPWV~<~8c+AZ)4U{b%1))+mHjzV=M*;+;|0sJs?2 zj_F}&)8*4GtImDmx6D~juRLO+N8#|WsC|V%{)g8M{beU4kUVJ_M?Lk4K&K2PJLvNb zS|fj~mRePMprtE?j8A3!fJDj(Dg!ej2V5nDv(k@RWVz(Oa_^n)!1AN#;qpA7%%7cf=a)A{T&>kBMmzxfP$p%s-q({EU#0v_{ zn{Z$pIoA|k&G%ecs)wBEnD$^3cW)74%a;kOxy-aWcZ?(ri}s>UM9tiSi&%aiA|IL* z$&keiwYad2&^^)Z;tna704>N-7vq-jyrCNj1t!y|+@P)E8U*>EI!RUkc;F^36$-~HBEPoE}%a{HQ_;8R~~Grb;GFB6HJBt;6zlhkEq zE_TBpHHW?kqgYDCHDQLnHTkfUQ|MmP%^sve27XL+*y82<0mlG4`nDvNm@{O2_N56e zEygF<+FrAr>r(T;T*^kg(8s?Zh4K1)1pa`MzU~1O3v+a&?ME80dZd%BF{x3XZn2xf(O{<0)O0MVOJSS(zN>$3H%_3BdNC z+8-k}dx$^grZ1Ju?Ow@rU2Ja2J_0NwQkFSf%Dby?F!E1*APo_3T=O~{I)0@3MxcbWx{=iz{IjlE?5e3Jl1H@g&h=z|| zjYVuJZtGejHu+aaeLOCMtg!MS=`$D_c-YQ+kKg&g?5Go4xqxkSp8bQNcoJ;nwne4m z6Kp)L&mxwvp|M3ya!1qM7n^8!mY)sN=jEXxzU)`t3c{ZQq{8i2-us*0Ci`^o9xH9{ zal`0W6x=?%@zKqXaSntL1Cl}Wdp4VwvCo2qXOIqxGe~L6wD?@#hOg%V%>nV98_b+4 zh}j21{RB6;*ge7LdEg`n9tl)f%4Z#}WCm&h<8hu0ym7%Uu}#d`bR-ZRc|+l(^Lkgg*0j~W<` ze2wD!R{S$**qGkX_qhgG1k5mj#^yA@VOzTFO5>>a^Rpd&kZXK=J}rMY_u5OG8n|}j z#w`;S?HQp2#=Q88-bcuK=rHMo6-$L381K;m4ziTU1(?;H+ijVEKyE8M9m0h?__;>~ z#`7btfV6{LzIdc9drrwR^(u`p+By(Fv#0u7A{+RFQ218y-a~!_d8IJBgFjvMK3@Er zgLj4BALLOfexFROb?WyYwg3(I1Dwxnai_Q-ltsA-h0m;o=^n#L7>=Sz+^qN~OX!pg zfJ`P}6v`;=_1|(d3fU~G$)$zsOe-(flW(OkEF%_RPsRp<$F~+a@2)_{D1O8rW61a0 zHHG4*n{JXA4#ta)s-N&wQmwWt-D7hZnTx3us6p)tPHUC~vKx9e`N@YNQktZ$-TX+V zI+$a754$NUV<)P{{CyjHXXw|&CTp>6&019KR0Sr()jX(!3-Qb?PWh+~GzmUkkbOv? zEw4aaF=xx?{ADJ7{aMS`tQ?h*r@vsBFVCPJ9G5@Ed;A!21Ak_=#pJz0q$!oP)02ZI zT*p_!_0C1S|Es&VQIGOS@_cWlU}gs)qY~hcwprUfSco<=U}ywmd%vRZ>dlYH$cV^@$jFFp>u=55*+H~O zy4g)09}#KruC7`-uS{^?Mu1*2qE_brIUj^Rzzvo0Ob2PBJbev73&5a8-Zbqo=QG3M z6vV0Mf^c zAl>-<`v3iZjVRJBZ=F)9UmU0o3M)re0DaVz2gIC>AKmM>SOViGi!kbq#*D?j7ik35 zy%#9Q8c17fM5e>M1foyh1JUTC(HGYfg_ezP5r=__>*G&})>(oO5x|E-_t_$JUo>0# zcfwN%65Ot}M0vsO{L>b!8-Klb%FoRI>z~4amd#`ks``dk?qn&fYY3 zz6q($Nu`s%rS?Yd&QErJNCyRPRr+7r&=t+w{r=<9oEAHjRjYFbS+=HhIq78Uwsn#eq76k>G zS{Y%i#!A#UhJp9)ThS+0VX7lamcLr(%Uz639>vE6VAFX<>;3=*$Hwn64OvA(jz^25 zo%F0qvSmvW%I38)0F!g4_+)zg6Y&ZgcSE!;x_Gs#=i-!Wy>gNN42T*xiw?XfM%Fd_$zGD%}k zCs_yi*%W~t->7UbY8M+AT zANZxZew9s0nQ6`Bj>EKR858GmslU1N21j z%3z`EzHhj>TUvU0X#`ifXf9mdbz|1KGIS%iAkZ8>0rY^9o^~l)*baw(v<_Ueoq1Hl zd|`%mLws=O3t=N#2Q6JOyUBFYX9*|`1P#^(LaJDP$GUR|BNTqSEM z*SZ2y?kdvqa3iVgnwE(r<%=CB^tcy~waJE$BL<c=B_O4tBorB z7ZFgRFPi=e4r%_Zv6zxd&4&VCg)UcE#y8obes&DF4=kZTyOFD|@q;yM3f=?Q@#MwP zNsaO{$FN4EMaG6UK%EPG%Sw)ak|=X$(e$sV>4JVCR_#iGoS|jaW~RciWkqqm2vx}- zOXjmKkNP*o;q2-%y&6>)l3(dSci=Al0F zhDw;Y|2F)oHfFF%tT2G}#`Y-ytJ1qGDB9K4HuDHT@5s^iv$n3T$2Rz9vu@!hdjSv! zEH6;Y&mmd5UfYFT&zB1g222QVygECy`i@9nh14K@Rc}KwQ3{^2&Dw>*wu70v;kFV; zP>1JNYAGZ`*mxEwhm=L5W<+}x`18-`hClyoWL?|p@anC>PJfkdVzIF*l3x^o<#K1P zd>9VQ*cJtZU)5oIS7W*C=9!TQx2yIt-_Eokq94A}1JWO|eC>y;6U5vB+2Ve?^4%h| z_C&>|*&xY~(lMEHYiBxZ;{#ZLm9Hu|@Cg+M)~F=5E=^chUZ)P))IvoEMpTPf>r=uL z#`lA`D)<&9$2n`$%`fGRl}7gCSm&vIlxrlIj$t@et*X=NstCjmdF(1D3uLd;1@yJL z3Tg0JAjXT*x*%rg5?x+sC5;+k3N6XSwQs6MAUT)c(9s{EJ@r9zIN`>tvxnUzSVrV6 zbxIGjEH_=)?AmSm9XA9v7>&63>Bbw!jfD8~o~onLraPDI!CfUL&@LP@mZc?-UNiuP zF(#-IlSh#P6;fz?Sp=iF)wJ0AneDNG@ssHWMKkD7k?5kfY|I&bXsA+uvb#oc2U9p+ z>Kg>Y#s;bJOhLiQ?oB`v5%v+t?*J_Ft`o}QZei~+TvOSrZU$Er{Y^Ev+ZJW(*@9*^ zsjfpT*$|rVA(dun^PZ*Bu_K<9izx4K1XS0qx&{T;3ic(nuBFJoWRr z+b3`s8jnhr`s?-4pSRQ?JeKQ8CQnPWrBL8@R&}9T#`4B1hI8fm*e&*k&!cS_+!v zPTi{iyk>${_BVG@9JpB_4+VoXDP63CBHr#bFF1=u(gOs2YvCcMuT{hHJYODI=THQT zl`@d>eoC0DY&xU}fyfY);&3AdSKYFFsSnjhqY*gI({$&2M>pTX6P*97Ec>T=gdr|E zq}=X7Iw3Z+eNSyXNZaLr#c>`J!@*;_A#sX?L1KEb&+s+0IJE5@FrK!aZftCBZFN90 z5w?M^(4Vww6*a}44YW9NSt)ZSLk7LwmQIu?-8(DmRN^wNaaNFGzy-FhoxV_$GeviZR659v7jUWLT>;5$ZWqgn_ zWnEi~fMOBKB^#wJ+gwbnepCi?ojsiH((w55)rK0Zl&fOj!iba!KvUI+rk5R(+ODCFyM zD)~gW{%d4CzfxUV_a54vyo)n)D(#Uf%Jp0G=OLT~humpKS3&RmT)5=#Br4HyU1}?_ zOyJq}ND36;(=jy%+m9tutW){aNvEQUO##N7)74ex@DyRv$c00t$o%IKJsWqdOQb6X!3T9>>Qo#XKueK{%c+U zVDmNVo!e%VnxWwFA(aAVyDApwc(vWOe`4VKB!Eo(cYw%0-?Czq%kcM~B^dNBas{9$?w%=}MI+F;sb)njNH>nORHyfIS z9Wk6(jeD?j>UhJrh#^f%s@TQFtKB|3*}uS0v^r-T0Oi7HdI%%%xOMlM289{8&8kKj zB(v2fOYt)4QBqx-@^;uynAkSI>nJ8U(35nxyJCVL+b?(El=Klqj>(hj#xhd{ubeUc)Iq4 zt3yf@faD_Ln}@BTnGDu| zu$^M__F^{vY?MG#sc!FT&E~!S*SHa~s3SB1 zUKAzr7uGC;_@HY7Yf_%}%_JBmq#{)VChstUcPnHSoaOiTi+$}LKkb3e1*pz}#r6w7 zExyTcE3YH4LcQz#);+p3pKaFSRaDkiE?Q$zWqo52RPvT3CN)wes$%`;^nm`E0>!i!sFQMOddHhGH`o4A@%ovQT$t01TGMA#r1IXNN- zt%srLXN(Yq1y?}KHLuQypP=0eH7>`C{V|Yg!QfajUU#r&sPfMuKy9)2;TV}u$pE|iBaOQG(#?yf6EKgNW@%nl51&anWY;m(4P9Xe+vupf^{}Ep*x$r z;zsnnFu3qpn$-xkQk4a$H}=mC<~Uj=mYB#47dz|P9KseGiouK7vp>40LX9E-W5&?# zM|aO~=_xzXixYIpa0=LV0*{45AmD0gts(j_0$oBH%Q4u`lxm*Oh3FX>2USyCxMwvd zpRS8K!6^;FiQzx`NVqL);oxl{E;yG^E@kAOo&H+N!iYu%d@H~0D#a}8})i`GgK_#+VCHCGp`sjMCdcCeewpKdoHq;$LLz1k7< zZ<6}lC-mxMgPY!thH2;AJ>Ntdr0Dh@Bw=YbEZhb^9U4DJA-Y0wymb^r>+ef8&9Hc_ zEpJbY5k5=jBIg)J=~xz57iB@??$&M*-@Ea|pG`Y%xFc>+T2=S%e%K-(@zj0x zffw?Dy-ycbv?~dY#u&&id+q+vhcd0(W z!b;03;~(}v{Fhh@sX!`lPg)k)Sv>Yn7E|%SwE2<=8b&tIM!;+ zaV^8wJk$-9T5D+3W@yH9y3FRH4YkNCH@gh)TqJeBm!#GgY7<9MXYe|62dI=aO4uX^ z46Xr#g_Lz@BHLwNa%wCFXesEAW_4&AjX}^dp$TqKxZTN%qJ}ouT`LapU&xC~h>LC; z=D*I4nSRz`efB^|iau!nq|7HRQ?j+yjJfBh_<)y=~wSX5NNH7?xpiSH3uE(ah;c|>cj*mgEFnPpWg zxv0&lyD|rxR>E0$pj4;n9cb-91xp`wg;{~6Oi*^N54PiRX@C2?v~xxC(g8}7W)P@H zU^MDx!|qd^q)JxjT+dzFj#5GHaZYlWCdXTJ1-Efda+3plf#9iZH8A5j4(M}*$ZG{u z6s{k{U>AV}v3^7+RT?%L0;%$9=!7`;d=L)O6#A2QchSuQB_ullTz99#0VYp`NmbZcV`mUi(5Aum!F7iPm>Bdu;8Q*SMrWuiXo5JUP9X)=u zu@=n9{NhX{RotBL2^QKZyKv`~xoh!Dg#Ml1Y*2C|{_$INp^VcK|wfr4T z)RGt3t$1ft>SE}O(bav!rk%l`U&bs_y`_<+sneQR&zP&rP47OF7n1OU_9AwTpsxgZ zY2_wLD)kYB-5^S`nKgfXIr{i|Cr^M+wHTgYv~8z*6JVXB+w<^uc)=B-e5lpIVd0l( zlV+TWi>Ib2cFv9geM9W#I!D9$br+IA+uNc=HNeNs+4Jr{38D$|DB{<4Dz@k63nD9t zu!EhyTT=9KXfhlXk8QSPg---&0v{M++xy1%Xmb_2g-Qjz&0!<*P~fAF$gr?%s{1pF zGvMC^XVMqfOFtxyMGta(wzqGoGU7;`7W1%fNro@%r?cM9O}`S zuJ#?LVY`$&At|xlaFcc#HbLDVKHB_l^Ugp`nGAPLapLfZ(mFUCjE?AV(>bz6YdhC+ z8KCuy^B^LnN1b+S)X+{(05%MovNx$YMS_rgbi85R|m=6C}jg2f?(^zX5Iu5B#H^)Bk@>NPW3#Y(jqO ztY!)~6x{z&V%mKC_~GM0qOjR>*Lt%KcKBaHMFzzJ4SWbV3!VS>5s;3o+0G~{L?)m3 zNsXWHP5fs~|GV~y{_Cy&OMm8nsO4Nv!8mQ!pS^ke(|XO4mvKud9fckw7|aHf@5tWN zax1%gbU?@|RlYvsN~D+a?l&5e`pmAobe%$aJ>rR0PDcMSy8edP1=_#)yzG0PMx)UtV|F$_C7K`SalITCR63?s?Z{WPBOz2!S-nug@=k{pGrb`nth%ViC|hfRzQJ z_LWyd`CS;|njj|7JCkzZX@Nm-?w)Z;njccQP=8|Z~N^p-mK?aFH=X>LM4W2(| z@<(Jzj5IEbxm8JwsFJ)yf9EIqvg(b`FLQsBsDn`Sj%EQX<04H^_g+A;N|WW!MUVoz z@xjQG3W%8S@)aVlsC!ige>IU7Pg|ZSsHKD!&nBRn@#v|-fi2M7N#5K)JfmW7#_V~h<__q$*GAvHob=$aWq;Tp5!~pdHqLNvU07{eKBwyE|%x5 zgo^c*|Nft&s|n}IKl8`>ScMXRVQlhQ5hPU{c~A4ZpgDWx%7qTMT4t$66+5Oib!<(v&FRPS%W%gY<3@zbgsKRSQ(Hr|gA8glOLaCjy0l{Y?dk*K$$z=Y@v^(24s-p3;jj zA@(PXaWL5#9r-!%n!5myJ34+PB`!+0XeacVY(kkS4y`G#Ct!pKlhdh*46Pxw(rAqs zt{h$wSqnsVhS_Y4@hbMk4z8A?`K$l@KBjx5>8_4fW5Vap*KgchpW%L%R%J`uc!l6b z>Gy!W#0hF&?4TmEk|}sb5G&ns+60kHPOP2Dv3NI{)5;R1x_A-GI{P|S#`oAFw{7Fo<9X<&KO%V$M?-Ekgjt)&EBjB)}q0UkvhiNyF z_$k{cV6xDgG-^^k}*2GX0sYxajP6b}{n)0sqRN70_ zEv{FI<0aV0vdWLpkZXjyU#YexoKcn}WMg(MQu}$J$8pr0fx#9@WIW^x5a1UcdRL&rEewTbHaF z$!Jj{ONr10x4SBU9l`y=OISa?H>OzKOf_h(!BNj{*sV%{GoR{FhMpF22uVC2$R3cV z3;A|vDZDkbel0@>GPk}R{*=%+vFPhWTjwj(#hnwmd zf8&?cvA)R*)+Jq{`LO`(1L^?3G9_;lNVfyzOy)*TkQtgOM;>rJq~vXD4z)B zC6rY=ax(n|-3Quazc8!(`a}_Kq84lsiB!3}z12M$rB$LYCCjvW>w^tr`eLWc*iuY) z8fpD@icVhatnsM&=e<|6(c0G|{=74N`IlF-1SVY_f(H7@>G@~zDy~0!{(SA{pH`kf ze|;6FB9W)M&Nq1MU))MhPC)vNtGN1}9-}sR=zW2~)oZC6sUv%WFQ?b$6z?2hKvX?N z-ZXY!w25UwgK}tgdKSaO=!}-cJMcjF+b0k1)5nLhPqF1{u|vwn-S40t-C*&t?C%ql zI@3aWo)vyOoX?OY)MTP0Cq6-*Nn%%M+a-q40dhDE9A2Mni;tu0PEf6gPH>}14cI0~T=daQRGxhjf4EZb8txO5X_HdG$O z(J-(L2>o!Vl)a##n8RF|98D&1`}<%Pi5N{MNGG_+PL}kow1zstLNSwD#Zn{X-`(_I zA>aVd*Q$YSPsA1(fmFb#gR#aYg`o8a^{7Kv0Blzu%LuEppk@t4M0KbQe;Dx2D_>Q3 zd~rB>0y%w%==NT!G+=1x2xbJ~xuH!h##T+N#pqH&D{nUUPLb?E;{Qtt7M);#T%C+{ z__rMV3ND=JrWBe)Z$g ziQfP1<1#OnKgP-QfN*eug29!)PA8m&Lh=6`MJ2~)29)OVLKKQ2} z#!X0of&~;ofH_mni0I$px&$7417y{o$`eY zqGx{3o(;?(aP8^VIxI6^mk?VI)?T;wRR5$R*=xRl25GaoO>d@pE3RJRm8eM5=M*Nw*QG>6 z`=Q9j?tyyG)N8#2;r}1{rNFVYy0TIPc&*$wh^MrQq{nJ6}q8Y8gS})VVu7 zJ0Xh^8n3y+_P`pf9bLe+bGiF0ZDO zm`ra_-j9{4+mtqC(>p$Qb;$>;CF5PZDA&Pbi)M8x$^C(m2PC4_V^uT)%j=q`E)1{D zRh@+an$KR%goQl6j1)hM1`K|evq~q%KryGWp28r5;BKE9I!ite(G-azV@O3ZFr3E{ zK#T1ubekN_kDhGa0fb!7*n#Q-TC!prtYs)$PwDvR@k3>NzW3c<+Tlu9t5C)1F#$mh z4l>N&M&=zOWrP9`Wnha-vhNXx1aReJM8MhSc}Bb$^y@guA=7Wp_L{1cqt8q=_!A$t zh$Y#HOo1FzY~jwYx&VDiIS;E@4g&3Dov+`x@x{$Au7B~xx?(myjgpx}V@zHfN3U7L z$r^Po*Jekuw8YBh-_t{qJGCdack(|v<~ zm0%Q8DejOCgwPPAiQH*cv3Ab;(D^HQhW$~c3mA4-G{gvyhShDy@FM|Eww4eoV_?g= zS!ke={IuPbAj_j@fwBQEO!5otlTVr zTk(IyYPWo`?ZHo##$abPpS^|(RJiewr0!G^tYwz%>#Oe9QU}@(_nQlaX@b6mh)xrguR|60~yq9H{M-Q zK_$~c)n;yj%H$Tu3lhMLlB=-!Z(K_jg7JE~tf4U93Pb`uP(*h$=O1%2P|Z0z=Dbti zVB^Q0F}N|4rCp5~isd|GxR-&s$F( z*Xl~oFW>%VLw zis%{w?$yZ+ek~yaHfs5FbNQ!_7sq1yWn=Ma*;stiSVIu->6682X8e>-YeS@1cHqQ0 z64MuDM&mOQu}OePeApMkG5kef419@Y*`SDsn`N+A)C$iUK;plQKE68o@=Lui{7*gZ zIk`Ea^(W2`nmZP1&2Q5D#;4Z)X14!W?VAYMSUn?sOzY1+F7rzM%;w)szOz|cE2B&j zeLwr8bZQL!()Z(qzCw4~De;!%lYftrpgyX4@Sqzg6iTkX~CT0r3{)ShPx%y0&%pM5Pw34A!h9)egs6kyIu6cvu~gKJJdkLRdzhDa>p-OP<{&*2V7_DoMRJ zKJQZR;OXNBSCN{3Y@*M)6B#PVx>5C@P%Yl&aUk;3JrW2TT*A$tuKXOcfRD#TZb4HoEeYrN z`SZj7(7oC~V=c3{#48_Nxi-48e&w3(IInzlh2EQ z>B9^v$IdeBbkCe&;fLBJ6}w{`Id)p_&&GoOdjs7UwD`4 zv0&rF*Cav}bnBfdxk~t;=1jkK|K7&tcUzn4nKu#tN(chMk9tjjh>pUS=4kuZmsFZN zJG2+9?I(%hK)5d+nlJ4X(Lf^b!=PTZRkCL_p*T^!8b9T|0jx`XDBEdor(je1k2CnD zd^$NIg@(EF%eROzC{2`a+gtFjO{(Ob-dEr|(R>7}+MQkJM`G};5{;D;urJ|Y6C@l} z=Z)nj+0byfSGl0<564rJ^M(shl&slSBgIp6PM?a_45D+*#p4X(3g2>?$d@=pCLivR zUP@Q5;Esa(T`~dyB;K7FC79o@5pSXHb04he8mFL`pE##7mI*s|Dl4ks zgnJL(Nw!ETV|F6bL_Cnq7Tm1l*_ZdHFL{EI5dO}UiKn?Ly`@{8J|S2G{cJ^(TpN8F z7dJxK5WZpw!T>X5?3tUtW-o)WaDdj)i`Ulswokkj>J% z(>j?BbOBD^hQd!j|GalLIobXBXRlzw)o`eie*B-S7FV zPUXhz^UDbuiU4w=5JTc6(bb34*{W+>MxUKh$$$zz z+T>ClOTiN(DASLkXgy+W@?ysO4pKVmj+=FDQ}k@*Dj~RsbuhjuEKzkc8IZrG;-;K6#+U*3Tb8>Un`Wqzy^^z?f=Ac!uom*h5XA`8VIc=A~~gd^i%cS>nP z%Jc2K)#I3bgeXRK&3j?oskj0G71+qo#kjc&5KLmTirXA@3d+|?Vs)XGM6kO)XxBi8 zHEIsz$mR2M#xWL`ZSxC4*YZk8Ofa3l1F%T$`SFCR*iwL`bUOr2OD5<|6R!h3v&nxd zw6idGG(d(ILlK(Lw8JC0){JryhgA|Iu-Gp~P}~oIuUzKtlJ2$`}cdjGd6`qG6(Jd@_(le7T+s+Tu{ z_LluO)v_HinK7mSzhvj?=r)>*J}FhRnukDpVik2ny68WV` z;@#0&Y#5U+b+IFM&1qiEu>fA4_ojzaoP+G}<(74&q4Ctc z%@O5I<8?>kh^@@%n)k-pem{M&&J)M=27vb8Ii%F2>2IMsd!~;@sbCMA{;9EOuj%8q zR>ep|33YRF9yA22);5mqXrepgL*1CgZ@x7-R-!F6Eddk6Z_**S9Be%{G3=DLR1l6; zSOHT8d8I^r`7i^nLKfRfG%=(3IU%Q%3pflz`;5S*B~M60>f3;a5tzrQoe^U!?^s9d z520qf_em*L?4`J~9FR$HmF-_vO*aBe}ti0wz$dkj}vMG!P z4v8xIG`vaw(t43qmdxu2wTOBxeFW#s`u zK|p}v-$e$NGQ?vSc<1(z`Yj%I@C0E-MI=%ec#~-Of5%(C)taU7|QOUd4WpugKgdtpe7#Zp-I^c9=4q9 z^Pn~!G6o!S;^>1{ctkSl?~0fWU{i)lv+Geek4D>AmuHx-+v2%W*^i_f=dUDyyvTYM z;C9=9TUaZ^y8YY7;~O`}*S8auwghh@j|#zvfVZ%c??Z-SSxZ0H#{KYZ6eVqOA?%`X zW;N?u?oL=3?g{;~%Ck#r8xM3_ps)GO514WmrJpPGpNv0gfY;d|kie{&MsPegqdXSL z!IAIXavO#5;_Ltd^i7uOP7R;Yd*abj4JyicjciZ zh{@%HrOP`S#FNj|;=@J&-ODfm%WY>H#29Aep`~St3?m#CyuoJcgD_WD+0T==q~0-3 zh~zsa6|E)>6m6TQU6)W4IeAMWh&22QUaY-#v~KZJpz>f!nh8ybnx`%}u%hm;H;qyK zbWwyy9s{0rTJOjt4u7jd0jXqvj$P>1P45A?Az`0%< z#7*?*!R#Al9)JSbNF*lp5ABd|Btkn^CkrW&7=sh(4V`vJ^k8gY_Lt8>m=}V@Tz6bA z7kVTG)prk{Y_6`}(s3vORpfFA-O;x1Z3?;V6#EU490tb}_0kwdS7xxu_OqY1B{>9@ zAZ(Xq0LpHb`XG>p)Q3E!UY#AhIMjxlV6wodvPqyVOS*d%wjg`l%BNEcyL(c)hj*Z_ zaNT25z8Q}oy*S4J$1pm5vqSMH`5oD+eP#AHCgkq`$a!5BW(!8UPPVVie^=q{#)&ts zFKnZTQ`(60c|2!`EwvRFxnc(ZXhk^hD0C9O@9HNBojsr7#_{IjY@*J&h=${KyDY~# zY@4a8Vt5{+0Ze$;6-cSle;CEF+z5SZ7h4AMr#Zt@OFxC$DxlWe~?$s&HuBtY5@TR|iX{AG+YM5}QY2+Cd9Yh@4@gS3D#ZdrQ)JsC& zw36&Gy)QDF5?n}XRTn~th{0|#1CZ;X-pPzdm4^m9xQbyQ0O>m<2Skg8^X$Q6InEli zEK$Iv=yb5xQmA)N@)W-k`TQLs?6j)!; z0~Y#(>#ilZ6fRW3QWqRSKpjl*TJQqs{;Q90Yjl15`2xECh&XT}V%z8LF zBgGo5EVC`f8vQzZF*Aiv*M|Ae7;AdE!!<~Z!EnS09O}ubQXd^gB1$r9Ml$7Xo6E*> zIl6tLjP6-!R!#2P&t%*}%jBH+G5ilbxNR`=RS0rtXDgs>Rd5473$BB%TJDq{AiU`P z1c%4<>x%~$yrlCd_$l?^qQBV)j=-XlxO)#$r7s*ChdP947KC=k9k<(@)z;rzOi5p! zj48YsYtlIVW|`r}MF7L(CfdWZ?cKkvG2WUDxP~%9GF}Gcp?9V&k+c+k!}_OuYGGBo?q61=$-uroGYN;gF5W|jDeQ`x8+*35FWlki`5n+9G&JP zI??9-IiR?0IaIh*;!+ICm7%--%N%R>%Qcg3;hvBYVn4&QT!PJWA2x*YHAPPm0s=@! zy!z%B^$r(Q==qrC%x@nErAyLOqSb6O(?_H@^YvPA$Rlhtw4bdFY=d*fTFSFB!Z8SZ%Z<+btgd^d1~IIrSNBfnGZtl|RD7%(FzwPb(L`0zE&~P|~1Tm)sMb zq}#dKeKuduYtzr@u-Hy#7LM5ELG5sL_0ANv8F4h-y;SZpo}vJBdNT>}CzB2#WrNhY zAf&-5K(6~nf>`qqLV_350pUMRpiSr9QXn@9`~EW{S0n9I}ti}N#9V=@y}iC049 zVkSHgD(7I)VCB$CF3F^gf*!YVDcGXYwes`+RoEa3s4Lmh-TQ1h=vT-6Sw7e~z2>5Z z*o=-(I9504cOOu!`vt3(h>QL%cXqdk{boyj%Xwn(HjmHTMkM$Z@Z$cP42$xmO-0LA zyNnPit|ibey1qF@5<(=xSW=s~F3VET|K*W6X|NI~Sr=85^ z+R>~*O+|F(1xXz2pja@D({YiB_qHYYHa&*Nycc#R7t-{^l8(I`F}#??t+$<2wU*Fv z8kw>>KZ=0_e||J~O0im`q7nz+C7x_5B@3_0l$iTLiMFN7wlHd(no>fzabO}M2NOP# zM?n9&bK?RiI$a+5we!-wd7^pvKP@FOp?}8-;Nt7$ObM%3cm|`?Dvt6-!;seG_mzQ{ z#GGJD1x4h_*(=O*P+u)-mODR9QpZ_+Fxz{T&KT(!b|bIbAk+{`-6Dz0u5-_hOU|MK zHPM`FQNR=Ma$8B)Py0Q*#5!R#)M3PZYerZps_?D<}wWqs{j+%QC?9EPc z-+#3GcEIFCa@j7UQUm@mnR>!kk_T0}&kyX;L8*&RCYY&5gl|g!w_HPxv-z*HV_Rhx zqvqt>d3A*P7~Sh|2Q&HQRF>cm4=J?PVd~I8Didvb@^_8w>(vG;a`lLH?HFQZDFNfr=yv3ilr%$IByDvRI1iv}5B8a%!OY1_ZsDp}64}2u#&~nj z(JGtDACt4)*%3Lm_yd9X{IWr+zteH$`nB)y63%YbAv~E@O$ld=yyq@_2lSx&S7^{^WNzX^nz>wyJRFp=olWcr*Qygr3_DHrio^A~_v` zT5+fb-`1?8s5+1f419MJDyP`)nG)pNKn^v;?X1f-&(%Vy zT+jAi#XR0f>BSAJsp8n)R7@_xBAgfU*09ClFNZ=ARpw@t$1!B4u3WWDDT2bJ9$cEd zaeT(Ay2cH6GBfht7?u>t>185p(WV$6_ho}B)ES*Sh9Ke@vB_E$`N4yW>QtGz{;39- zW@rF9co6#sT-(~!tAiEe$nRqS!YfhZ)r1fUvz4s1xJ_)Kccaa+>p^X$Vw>y$PAbbt z4$*`AevZ55p|lP30VSP%!2ThaLAHMtiD1sjFM9AWr-LgV+S9*aWTxNyMR0e zT%ip^K>+6-$$4{-YzT$2fyDtfA#OUUG>1B!!RdcrRAhnqYA3*;IxFo!HVmiL8DOXs zRFTWt=BL)wXVg2|=a>DL(tZg^eK;=AqKm~C+P4Yq>QjYXCZ2R;Dx9jpuU?|x|oE-ojhiWkqr)i~cM@wtfUyBy9 zg>ZhVNs!Q^(-$I#C*ME?qdoigU+mup_U{Mw?_cfT|8D=bf46?NyN!X#Kf|#kDEcFN0>lUh(lF z_XF2FWVe5VZI{m1GIC;qVjqzU=_{&wc^VeB58A42+h94JsLE~!v0blN+V}`eL%cdw z(8!|WbZwfCHFVn{!#>V+!ClN5MLUS=Jg`VCtrE^OpfFJEWpsNYq8Tn{km{Q0)*>2i zEeal(|lC^d;v?i9oB%9kGoi?XOr;~l#Zc}KQQKg1;n%X!0imQ|@Eak54cd=ZjwGC{a zb|`Ipnh`Z2{cSz6St3d=?h`=@bL&&&pkW^DY`+&O`o*J&-rAywrNMVK1^x(e<6hg_WtlFjU(96`J@P`PlWk^|vg|j@&NnolO zE{t%EAgwfcSN-SUa*Nt-{&hef$L*%2*&$@Y%(d>ASve!DO(@?Q2S=nGmRey^dtzN~ zNf)nzHS-G@~h+OQHOE`54Kn|Ei&A9k)k}pkn_ca?Ik@*+Y6$T1XqTjOc$HLZ2 zs0bAE1DFWRwG^aFzSF`v4EuG0LGfbBkIrYISawc-6-X^E6kD5wlDk*6T%+c}p`Z@O zhkOWyPMj51ZBzAmfTsM7$JjsV0eF$9viv;s+LgTOhKOBMOIE?DLD2b(^y`|!7binh zL?iMN9$NwCi+CEYCcFq43OBSD=WfCl*JinHNEsX`k{{m-nT%gZj>_}O|JoIzjy;p9 z%6XY|W}G8V!TwMjq9Ms8Y+iU21+HrbvsK(Vqu4kTfCO_l>P+I_;Vqi%^Ef{A5=TrE z1gsZ9$q(`V!RQ$qXmS|T&Khtb!>`L6GJjFza_|ig1N?YNj|K2H z{)*!EFa>eRsi`Z4KznjPdmUini!(FUHZgmug*cr86d;cSiD#5gggF_188vP~hV|du z{F4H(+WO`pJ~sUtCuFpV^6+)kO5;2uq`=tlx8FJ2GC|QANLVYrA0;|9@J*AnXN*=X zFD>M8&I7Xs6!U=^;JLh!)bcEiPCSzf%(ghXjb5SdrXTDsR}UjqxG$EimzcJbna#ngk2C`U&kD-T^ z8W|wFEt}$MogGzUJo;WJQE1YR>c?jN`O{bq1l<7Xs_Bv!9c!AAA%}jQMv+J%Zdgeo zP`zspoLI_k$9woPmz8;x3vT&LwaJIfkY2&NsIM!L-EPq?X+;v^ z65$jf_!7V+{2f~_!@fg)7*JM6oT>0x>Wq|q@p`s<`YK#~uco>u+$MdYV(+7Zv3obK z>WnC-qr`Xjr6~jv;ePlybQO!_jbOf*nJNw2^OK#3nf(|0BjdR<>2#4BDMNW-R zPxfkK{y4WWBmb~X@;goOBP+-tL===TV77TX+JM4<-hqF-uS0Zu@=7;>mU+jW@$C~$ z^LJtJZ+FWWl!%bHE|K;gr?p}J8s2#!J+pUv+<&2YahqOO!fo#i3iwA$C6c))>soQ| zZ^Ijh8hbqUX`0TC$M_nv`{zs=71>cwcCvm$9f+C>_J{X_x4b7(lAL!nzNewfN{Qlp zJ27z*&$s}0d)?%L0m-9u^8+crk&mCh6nv2DS@a4zgq1N%x1|;y&u-=Ow}##L-bjGX zgagCJK&!&GVPSEIoNGZ$<%fWEePN6SYY)nWRlG*wlE=Nv{uss4n~Q!hIej%gm>rU= z3@qRhXpxYzy-Z(P`!BWmw}uq8_u)llutDy&&qh{|#GSX2;OtCDWfpHr?wb7IL-WNu zH<*P)?%CS~v=y!#EOQJ(#Fb_|;z%-NhEL^(1V6$p&JmWdARogtqsDQPr22JPN2d*~ z0#gAW>D$B`WraGI{6E?7`yQP|M-1OURG~SHT)YiPhIa|PM(U4KS*Yn)n-#da{niJk z%Xu1l9>SFiV$R+cGPWTwdL<-vQ4TJOOUD{Kn1s^f5iNfRCEon2 z)8!41BSz3N! z-_yuRv6s&h+q zHo{^eB^kFbOIk0JmR;JZ<05z5j@&1{(;@VnW-@b3y{*(U8M|8`$Rg;$Fgx0?WGH&R z1AP#l!ms;&4euwI{M}9TiDlccaK#uUc)-pJS&`+|f%M_qr^h@1PMBGf z5qqZLVPX{%2MJ>2T#}l^k_gGIMSPLxnQBL(JwuvfaQ#GGR|3aR-fq!dPa#&W{1fwE zDSEm$F)K_6@SgtPrcX!2W~K>Jwl#}`i4e{Fo%N`bsyQ;EtMMrgbV0GFRE-vqdq9}S zZ-_NXQLRdesR;GZbKqFCzva?4+F)vBmz7k*pzfpc6h`pj4rF)s^5uB+kf5g5CtMn_ zNi;to6iFJMc?)b7_ix#7q9Wb-)sL@ zoEKAksk0;UdIYhlDz#0VRHr*LQC+>|@*6Z?Ha8{(Tj0YZRO?loTYxs6=)-|%0hCxz zIbzN9R9^o;EAeenjFUobcqqbSMUsmg;gr;1BzGV)p(uK1%59bKeuoGltKwy%LzHO67!wUiqD{h!c`JqCrWn_;0vQ|KamM zX48`kkIL@6A9O9~A3Ngy6i57phkQSZg;0Ezr#@y8+@$`5yKs-o<0{v=HXE`KX%O%$ zaZD}*vMIxqMhE38nCo%fj+dL0pseye;?X(X3o}W3fM;SPaXEL%7E$A#cTT(MX?3>_ z`Etw&w?I`!IVwY2Nh-i;R)+xAa^ys3PyI$flx?qRqWNPqGa{3&Xh>-Rc9JEKSUl=o4IJXe_dK`2SR#!NNcH3yJls){s#&+^9ILu!Swu$nguHFJ#GmOVW)0b;7~r3vu?C+b8?5IfwQ<$h1(^mncShb>fb5@6P@0E9wyNQ!RmTt4SSw*{aP7<=+15xEiVSy>sed-esM?f4M&S z+QU4A>rq{4mj;907YU|WRPEbfNgf*qMAL0bO=0np&0l?8S(}8a##wy5)D{IfcPLq=4ZGhVx}w2E_P#MN4nTfTirj@-Ad1oO|DW(@lq zdFy~xSq&5)d*`cQGH+HmpzeFD$NuLWy`rAJK9WC{jem>w7tdGYh~8-x7gaj+20o9u zHGu)YlZ0Qq(mKCG=&A2LNn*XNcJlL?m4(T`!pENfVMB7SADYooxKK&zEz&ErBMZFf zB)CFZ?>?sbBnEv|E<8lzdBzBH#C|tO{`2tDT1T7MkKqMUn@)N<%g{IVCn3we$&he5w_a zUs8Gu(Nx7;QS8h?)Znd=MK^NDWU2RZQbuze?dpDLACLdEb38!>5=u<)>6Q~@|SzKpGR0ZL?*eaZ#6w`uoE%^LdqFzsqcUK$iJ z@lvwWG(Ej9y7Xb|Y^RSMaWpb@h9zd&Dt3L0>n9`Iwk$udn`p9QMmtJ~uX{eMI5$;- z97LCXaay|LfIgV+>aAcr2wkKab&mFUP%b2qo9((FFVqQI0a8e?RmWQODtOU=8aIu` z3)*k1YP8x;GFUlyJ6lu1$|su3_a`moCXQ?m>y<>py6^YXzz?`Z91{n?RMvcZw1V4` z+F_?WB%>fAIgs3Kziq+Z1dg5h3qVGBa-_jIFK|97ij~{jgBRHAh*ysv=O6m0O^D24 zwjWadjsM;Al~acx$Uli8Rw_}=ST?lm$ns-D=8S~?-_LYi=+0+5&GsGkRoqiPdi?M& zk2klrs)8ed@Mkx)#$LSVE0ML~JY4i@GNRCxS!3wtZ#gdPqKE^5P^@hI`+pg{(t?7J z;K6E*kD<_oZ;>ymOg%^)+1su@w6RYuOv)I&pY3Yq)!%pT`*@ettkG%)=-_ck9YB14E>P*TPuRZMmSR(yTmYJ&(_ zBs+xV7r~SHM|TCSR%}uI>zMZZpq^Q9v$b z2?^xqA^h^bN|4O+O;yV%`7JWlwV%u#n&Y+~V8`jMjhMf>)!M6P6}LhUJq-)kp(+Jp z;SBleEma(XSpFN6otGcq_+saiKizmax&ATXpO=5Sc3Ez-`Q=;B_$SV2<;1#t>*H&d VGWhbXQjKVQ@XLJ63!2Nn|GzjA^2-1K literal 0 HcmV?d00001 diff --git a/demo/dist/libs/fslightbox/LICENSE b/demo/dist/libs/fslightbox/LICENSE new file mode 100644 index 000000000..855d498d0 --- /dev/null +++ b/demo/dist/libs/fslightbox/LICENSE @@ -0,0 +1,21 @@ +## The MIT License (MIT) ## + +Copyright (c) Piotr Zdziarski + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/demo/dist/libs/fslightbox/README.md b/demo/dist/libs/fslightbox/README.md new file mode 100644 index 000000000..58f7b0a86 --- /dev/null +++ b/demo/dist/libs/fslightbox/README.md @@ -0,0 +1,62 @@ +# Fullscreen Lightbox Basic + +## Description +Modern and easy plugin for displaying images and videos in clean overlaying box. +Display single source or create beautiful gallery with powerful lightbox. + +Website: https://fslightbox.com + +### No jQuery and other dependencies. + +## Basic usage + +### Installation + +``` +npm install fslightbox +``` + +### Example + +In your application .js file: +```javascript +require('fslightbox'); +``` + +In HTML file +```html + + Open first slide (image) + + + Open second slide (YouTube) + + + Open third slide (HTML video) + + + Open fourth slide (custom source) + +'; + } + }; + const getFlashHtml = data => { + let html = ''; + if (data.poster) { + html += ''; + } + html += ''; + return html; + }; + const getAudioHtml = (data, audioTemplateCallback) => { + if (audioTemplateCallback) { + return audioTemplateCallback(data); + } else { + return ''; + } + }; + const getVideoHtml = (data, videoTemplateCallback) => { + if (videoTemplateCallback) { + return videoTemplateCallback(data); + } else { + return ''; + } + }; + const getScriptHtml = data => { + return ''; + }; + const dataToHtml = (editor, dataIn) => { + const data = global$5.extend({}, dataIn); + if (!data.source) { + global$5.extend(data, htmlToData(data.embed, editor.schema)); + if (!data.source) { + return ''; + } + } + if (!data.altsource) { + data.altsource = ''; + } + if (!data.poster) { + data.poster = ''; + } + data.source = editor.convertURL(data.source, 'source'); + data.altsource = editor.convertURL(data.altsource, 'source'); + data.sourcemime = guess(data.source); + data.altsourcemime = guess(data.altsource); + data.poster = editor.convertURL(data.poster, 'poster'); + const pattern = matchPattern(data.source); + if (pattern) { + data.source = pattern.url; + data.type = pattern.type; + data.allowfullscreen = pattern.allowFullscreen; + data.width = data.width || String(pattern.w); + data.height = data.height || String(pattern.h); + } + if (data.embed) { + return updateHtml(data.embed, data, true, editor.schema); + } else { + const audioTemplateCallback = getAudioTemplateCallback(editor); + const videoTemplateCallback = getVideoTemplateCallback(editor); + const iframeTemplateCallback = getIframeTemplateCallback(editor); + data.width = data.width || '300'; + data.height = data.height || '150'; + global$5.each(data, (value, key) => { + data[key] = editor.dom.encode('' + value); + }); + if (data.type === 'iframe') { + return getIframeHtml(data, iframeTemplateCallback); + } else if (data.sourcemime === 'application/x-shockwave-flash') { + return getFlashHtml(data); + } else if (data.sourcemime.indexOf('audio') !== -1) { + return getAudioHtml(data, audioTemplateCallback); + } else if (data.type === 'script') { + return getScriptHtml(data); + } else { + return getVideoHtml(data, videoTemplateCallback); + } + } + }; + + const isMediaElement = element => element.hasAttribute('data-mce-object') || element.hasAttribute('data-ephox-embed-iri'); + const setup$2 = editor => { + editor.on('click keyup touchend', () => { + const selectedNode = editor.selection.getNode(); + if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) { + if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) { + selectedNode.setAttribute('data-mce-selected', '2'); + } + } + }); + editor.on('ObjectSelected', e => { + const objectType = e.target.getAttribute('data-mce-object'); + if (objectType === 'script') { + e.preventDefault(); + } + }); + editor.on('ObjectResized', e => { + const target = e.target; + if (target.getAttribute('data-mce-object')) { + let html = target.getAttribute('data-mce-html'); + if (html) { + html = unescape(html); + target.setAttribute('data-mce-html', escape(updateHtml(html, { + width: String(e.width), + height: String(e.height) + }, false, editor.schema))); + } + } + }); + }; + + const cache = {}; + const embedPromise = (data, dataToHtml, handler) => { + return new Promise((res, rej) => { + const wrappedResolve = response => { + if (response.html) { + cache[data.source] = response; + } + return res({ + url: data.source, + html: response.html ? response.html : dataToHtml(data) + }); + }; + if (cache[data.source]) { + wrappedResolve(cache[data.source]); + } else { + handler({ url: data.source }, wrappedResolve, rej); + } + }); + }; + const defaultPromise = (data, dataToHtml) => Promise.resolve({ + html: dataToHtml(data), + url: data.source + }); + const loadedData = editor => data => dataToHtml(editor, data); + const getEmbedHtml = (editor, data) => { + const embedHandler = getUrlResolver(editor); + return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor)); + }; + const isCached = url => has(cache, url); + + const extractMeta = (sourceInput, data) => get$1(data, sourceInput).bind(mainData => get$1(mainData, 'meta')); + const getValue = (data, metaData, sourceInput) => prop => { + const getFromData = () => get$1(data, prop); + const getFromMetaData = () => get$1(metaData, prop); + const getNonEmptyValue = c => get$1(c, 'value').bind(v => v.length > 0 ? Optional.some(v) : Optional.none()); + const getFromValueFirst = () => getFromData().bind(child => isObject(child) ? getNonEmptyValue(child).orThunk(getFromMetaData) : getFromMetaData().orThunk(() => Optional.from(child))); + const getFromMetaFirst = () => getFromMetaData().orThunk(() => getFromData().bind(child => isObject(child) ? getNonEmptyValue(child) : Optional.from(child))); + return { [prop]: (prop === sourceInput ? getFromValueFirst() : getFromMetaFirst()).getOr('') }; + }; + const getDimensions = (data, metaData) => { + const dimensions = {}; + get$1(data, 'dimensions').each(dims => { + each$1([ + 'width', + 'height' + ], prop => { + get$1(metaData, prop).orThunk(() => get$1(dims, prop)).each(value => dimensions[prop] = value); + }); + }); + return dimensions; + }; + const unwrap = (data, sourceInput) => { + const metaData = sourceInput ? extractMeta(sourceInput, data).getOr({}) : {}; + const get = getValue(data, metaData, sourceInput); + return { + ...get('source'), + ...get('altsource'), + ...get('poster'), + ...get('embed'), + ...getDimensions(data, metaData) + }; + }; + const wrap = data => { + const wrapped = { + ...data, + source: { value: get$1(data, 'source').getOr('') }, + altsource: { value: get$1(data, 'altsource').getOr('') }, + poster: { value: get$1(data, 'poster').getOr('') } + }; + each$1([ + 'width', + 'height' + ], prop => { + get$1(data, prop).each(value => { + const dimensions = wrapped.dimensions || {}; + dimensions[prop] = value; + wrapped.dimensions = dimensions; + }); + }); + return wrapped; + }; + const handleError = editor => error => { + const errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.'; + editor.notificationManager.open({ + type: 'error', + text: errorMessage + }); + }; + const getEditorData = editor => { + const element = editor.selection.getNode(); + const snippet = isMediaElement(element) ? editor.serializer.serialize(element, { selection: true }) : ''; + return { + embed: snippet, + ...htmlToData(snippet, editor.schema) + }; + }; + const addEmbedHtml = (api, editor) => response => { + if (isString(response.url) && response.url.trim().length > 0) { + const html = response.html; + const snippetData = htmlToData(html, editor.schema); + const nuData = { + ...snippetData, + source: response.url, + embed: html + }; + api.setData(wrap(nuData)); + } + }; + const selectPlaceholder = (editor, beforeObjects) => { + const afterObjects = editor.dom.select('*[data-mce-object]'); + for (let i = 0; i < beforeObjects.length; i++) { + for (let y = afterObjects.length - 1; y >= 0; y--) { + if (beforeObjects[i] === afterObjects[y]) { + afterObjects.splice(y, 1); + } + } + } + editor.selection.select(afterObjects[0]); + }; + const handleInsert = (editor, html) => { + const beforeObjects = editor.dom.select('*[data-mce-object]'); + editor.insertContent(html); + selectPlaceholder(editor, beforeObjects); + editor.nodeChanged(); + }; + const submitForm = (prevData, newData, editor) => { + newData.embed = updateHtml(newData.embed, newData, false, editor.schema); + if (newData.embed && (prevData.source === newData.source || isCached(newData.source))) { + handleInsert(editor, newData.embed); + } else { + getEmbedHtml(editor, newData).then(response => { + handleInsert(editor, response.html); + }).catch(handleError(editor)); + } + }; + const showDialog = editor => { + const editorData = getEditorData(editor); + const currentData = Cell(editorData); + const initialData = wrap(editorData); + const handleSource = (prevData, api) => { + const serviceData = unwrap(api.getData(), 'source'); + if (prevData.source !== serviceData.source) { + addEmbedHtml(win, editor)({ + url: serviceData.source, + html: '' + }); + getEmbedHtml(editor, serviceData).then(addEmbedHtml(win, editor)).catch(handleError(editor)); + } + }; + const handleEmbed = api => { + const data = unwrap(api.getData()); + const dataFromEmbed = htmlToData(data.embed, editor.schema); + api.setData(wrap(dataFromEmbed)); + }; + const handleUpdate = (api, sourceInput) => { + const data = unwrap(api.getData(), sourceInput); + const embed = dataToHtml(editor, data); + api.setData(wrap({ + ...data, + embed + })); + }; + const mediaInput = [{ + name: 'source', + type: 'urlinput', + filetype: 'media', + label: 'Source' + }]; + const sizeInput = !hasDimensions(editor) ? [] : [{ + type: 'sizeinput', + name: 'dimensions', + label: 'Constrain proportions', + constrain: true + }]; + const generalTab = { + title: 'General', + name: 'general', + items: flatten([ + mediaInput, + sizeInput + ]) + }; + const embedTextarea = { + type: 'textarea', + name: 'embed', + label: 'Paste your embed code below:' + }; + const embedTab = { + title: 'Embed', + items: [embedTextarea] + }; + const advancedFormItems = []; + if (hasAltSource(editor)) { + advancedFormItems.push({ + name: 'altsource', + type: 'urlinput', + filetype: 'media', + label: 'Alternative source URL' + }); + } + if (hasPoster(editor)) { + advancedFormItems.push({ + name: 'poster', + type: 'urlinput', + filetype: 'image', + label: 'Media poster (Image URL)' + }); + } + const advancedTab = { + title: 'Advanced', + name: 'advanced', + items: advancedFormItems + }; + const tabs = [ + generalTab, + embedTab + ]; + if (advancedFormItems.length > 0) { + tabs.push(advancedTab); + } + const body = { + type: 'tabpanel', + tabs + }; + const win = editor.windowManager.open({ + title: 'Insert/Edit Media', + size: 'normal', + body, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + onSubmit: api => { + const serviceData = unwrap(api.getData()); + submitForm(currentData.get(), serviceData, editor); + api.close(); + }, + onChange: (api, detail) => { + switch (detail.name) { + case 'source': + handleSource(currentData.get(), api); + break; + case 'embed': + handleEmbed(api); + break; + case 'dimensions': + case 'altsource': + case 'poster': + handleUpdate(api, detail.name); + break; + } + currentData.set(unwrap(api.getData())); + }, + initialData + }); + }; + + const get = editor => { + const showDialog$1 = () => { + showDialog(editor); + }; + return { showDialog: showDialog$1 }; + }; + + const register$1 = editor => { + const showDialog$1 = () => { + showDialog(editor); + }; + editor.addCommand('mceMedia', showDialog$1); + }; + + const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr; + const startsWith = (str, prefix) => { + return checkRange(str, prefix, 0); + }; + + var global = tinymce.util.Tools.resolve('tinymce.Env'); + + const isLiveEmbedNode = node => { + const name = node.name; + return name === 'iframe' || name === 'video' || name === 'audio'; + }; + const getDimension = (node, styles, dimension, defaultValue = null) => { + const value = node.attr(dimension); + if (isNonNullable(value)) { + return value; + } else if (!has(styles, dimension)) { + return defaultValue; + } else { + return null; + } + }; + const setDimensions = (node, previewNode, styles) => { + const useDefaults = previewNode.name === 'img' || node.name === 'video'; + const defaultWidth = useDefaults ? '300' : null; + const fallbackHeight = node.name === 'audio' ? '30' : '150'; + const defaultHeight = useDefaults ? fallbackHeight : null; + previewNode.attr({ + width: getDimension(node, styles, 'width', defaultWidth), + height: getDimension(node, styles, 'height', defaultHeight) + }); + }; + const appendNodeContent = (editor, nodeName, previewNode, html) => { + const newNode = Parser(editor.schema).parse(html, { context: nodeName }); + while (newNode.firstChild) { + previewNode.append(newNode.firstChild); + } + }; + const createPlaceholderNode = (editor, node) => { + const name = node.name; + const placeHolder = new global$2('img', 1); + retainAttributesAndInnerHtml(editor, node, placeHolder); + setDimensions(node, placeHolder, {}); + placeHolder.attr({ + 'style': node.attr('style'), + 'src': global.transparentSrc, + 'data-mce-object': name, + 'class': 'mce-object mce-object-' + name + }); + return placeHolder; + }; + const createPreviewNode = (editor, node) => { + const name = node.name; + const previewWrapper = new global$2('span', 1); + previewWrapper.attr({ + 'contentEditable': 'false', + 'style': node.attr('style'), + 'data-mce-object': name, + 'class': 'mce-preview-object mce-object-' + name + }); + retainAttributesAndInnerHtml(editor, node, previewWrapper); + const styles = editor.dom.parseStyle(node.attr('style')); + const previewNode = new global$2(name, 1); + setDimensions(node, previewNode, styles); + previewNode.attr({ + src: node.attr('src'), + style: node.attr('style'), + class: node.attr('class') + }); + if (name === 'iframe') { + previewNode.attr({ + allowfullscreen: node.attr('allowfullscreen'), + frameborder: '0' + }); + } else { + const attrs = [ + 'controls', + 'crossorigin', + 'currentTime', + 'loop', + 'muted', + 'poster', + 'preload' + ]; + each$1(attrs, attrName => { + previewNode.attr(attrName, node.attr(attrName)); + }); + const sanitizedHtml = previewWrapper.attr('data-mce-html'); + if (isNonNullable(sanitizedHtml)) { + appendNodeContent(editor, name, previewNode, unescape(sanitizedHtml)); + } + } + const shimNode = new global$2('span', 1); + shimNode.attr('class', 'mce-shim'); + previewWrapper.append(previewNode); + previewWrapper.append(shimNode); + return previewWrapper; + }; + const retainAttributesAndInnerHtml = (editor, sourceNode, targetNode) => { + const attribs = sourceNode.attributes; + let ai = attribs.length; + while (ai--) { + const attrName = attribs[ai].name; + let attrValue = attribs[ai].value; + if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style' && !startsWith(attrName, 'data-mce-')) { + if (attrName === 'data' || attrName === 'src') { + attrValue = editor.convertURL(attrValue, attrName); + } + targetNode.attr('data-mce-p-' + attrName, attrValue); + } + } + const serializer = global$1({ inner: true }, editor.schema); + const tempNode = new global$2('div', 1); + each$1(sourceNode.children(), child => tempNode.append(child)); + const innerHtml = serializer.serialize(tempNode); + if (innerHtml) { + targetNode.attr('data-mce-html', escape(innerHtml)); + targetNode.empty(); + } + }; + const isPageEmbedWrapper = node => { + const nodeClass = node.attr('class'); + return nodeClass && /\btiny-pageembed\b/.test(nodeClass); + }; + const isWithinEmbedWrapper = node => { + while (node = node.parent) { + if (node.attr('data-ephox-embed-iri') || isPageEmbedWrapper(node)) { + return true; + } + } + return false; + }; + const placeHolderConverter = editor => nodes => { + let i = nodes.length; + let node; + while (i--) { + node = nodes[i]; + if (!node.parent) { + continue; + } + if (node.parent.attr('data-mce-object')) { + continue; + } + if (isLiveEmbedNode(node) && hasLiveEmbeds(editor)) { + if (!isWithinEmbedWrapper(node)) { + node.replace(createPreviewNode(editor, node)); + } + } else { + if (!isWithinEmbedWrapper(node)) { + node.replace(createPlaceholderNode(editor, node)); + } + } + } + }; + + const parseAndSanitize = (editor, context, html) => { + const validate = shouldFilterHtml(editor); + return Parser(editor.schema, { validate }).parse(html, { context }); + }; + + const setup$1 = editor => { + editor.on('PreInit', () => { + const {schema, serializer, parser} = editor; + const boolAttrs = schema.getBoolAttrs(); + each$1('webkitallowfullscreen mozallowfullscreen'.split(' '), name => { + boolAttrs[name] = {}; + }); + each({ embed: ['wmode'] }, (attrs, name) => { + const rule = schema.getElementRule(name); + each$1(attrs, attr => { + rule.attributes[attr] = {}; + rule.attributesOrder.push(attr); + }); + }); + parser.addNodeFilter('iframe,video,audio,object,embed,script', placeHolderConverter(editor)); + serializer.addAttributeFilter('data-mce-object', (nodes, name) => { + let i = nodes.length; + while (i--) { + const node = nodes[i]; + if (!node.parent) { + continue; + } + const realElmName = node.attr(name); + const realElm = new global$2(realElmName, 1); + if (realElmName !== 'audio' && realElmName !== 'script') { + const className = node.attr('class'); + if (className && className.indexOf('mce-preview-object') !== -1) { + realElm.attr({ + width: node.firstChild.attr('width'), + height: node.firstChild.attr('height') + }); + } else { + realElm.attr({ + width: node.attr('width'), + height: node.attr('height') + }); + } + } + realElm.attr({ style: node.attr('style') }); + const attribs = node.attributes; + let ai = attribs.length; + while (ai--) { + const attrName = attribs[ai].name; + if (attrName.indexOf('data-mce-p-') === 0) { + realElm.attr(attrName.substr(11), attribs[ai].value); + } + } + if (realElmName === 'script') { + realElm.attr('type', 'text/javascript'); + } + const innerHtml = node.attr('data-mce-html'); + if (innerHtml) { + const fragment = parseAndSanitize(editor, realElmName, unescape(innerHtml)); + each$1(fragment.children(), child => realElm.append(child)); + } + node.replace(realElm); + } + }); + }); + editor.on('SetContent', () => { + const dom = editor.dom; + each$1(dom.select('span.mce-preview-object'), elm => { + if (dom.select('span.mce-shim', elm).length === 0) { + dom.add(elm, 'span', { class: 'mce-shim' }); + } + }); + }); + }; + + const setup = editor => { + editor.on('ResolveName', e => { + let name; + if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) { + e.name = name; + } + }); + }; + + const register = editor => { + const onAction = () => editor.execCommand('mceMedia'); + editor.ui.registry.addToggleButton('media', { + tooltip: 'Insert/edit media', + icon: 'embed', + onAction, + onSetup: buttonApi => { + const selection = editor.selection; + buttonApi.setActive(isMediaElement(selection.getNode())); + return selection.selectorChangedWithUnbind('img[data-mce-object],span[data-mce-object],div[data-ephox-embed-iri]', buttonApi.setActive).unbind; + } + }); + editor.ui.registry.addMenuItem('media', { + icon: 'embed', + text: 'Media...', + onAction + }); + }; + + var Plugin = () => { + global$6.add('media', editor => { + register$2(editor); + register$1(editor); + register(editor); + setup(editor); + setup$1(editor); + setup$2(editor); + return get(editor); + }); + }; + + Plugin(); + +})(); diff --git a/demo/dist/libs/tinymce/plugins/media/plugin.min.js b/demo/dist/libs/tinymce/plugins/media/plugin.min.js new file mode 100644 index 000000000..ac8f73232 --- /dev/null +++ b/demo/dist/libs/tinymce/plugins/media/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.1.2 (2022-07-29) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(r=a=e,(o=String).prototype.isPrototypeOf(r)||(null===(s=a.constructor)||void 0===s?void 0:s.name)===o.name)?"string":t;var r,a,o,s})(t)===e,r=t("string"),a=t("object"),o=t("array"),s=e=>!(e=>null==e)(e);class i{constructor(e,t){this.tag=e,this.value=t}static some(e){return new i(!0,e)}static none(){return i.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?i.some(e(this.value)):i.none()}bind(e){return this.tag?e(this.value):i.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:i.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return s(e)?i.some(e):i.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}i.singletonNone=new i(!1);const c=Array.prototype.push,n=(e,t)=>{for(let r=0,a=e.length;r{const t=[];for(let r=0,a=e.length;rh(e,t)?i.from(e[t]):i.none(),h=(e,t)=>u.call(e,t),p=e=>t=>t.options.get(e),g=p("audio_template_callback"),b=p("video_template_callback"),w=p("iframe_template_callback"),y=p("media_live_embeds"),f=p("media_filter_html"),v=p("media_url_resolver"),x=p("media_alt_source"),_=p("media_poster"),j=p("media_dimensions");var k=tinymce.util.Tools.resolve("tinymce.util.Tools"),O=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),A=tinymce.util.Tools.resolve("tinymce.html.DomParser");const S=O.DOM,D=e=>e.replace(/px$/,""),T=e=>{const t=e.attr("style"),r=t?S.parseStyle(t):{};return{type:"ephox-embed-iri",source:e.attr("data-ephox-embed-iri"),altsource:"",poster:"",width:d(r,"max-width").map(D).getOr(""),height:d(r,"max-height").map(D).getOr("")}},C=(e,t)=>{let r={};for(let a=A({validate:!1,forced_root_block:!1},t).parse(e);a;a=a.walk())if(1===a.type){const e=a.name;if(a.attr("data-ephox-embed-iri")){r=T(a);break}r.source||"param"!==e||(r.source=a.attr("movie")),"iframe"!==e&&"object"!==e&&"embed"!==e&&"video"!==e&&"audio"!==e||(r.type||(r.type=e),r=k.extend(a.attributes.map,r)),"script"===e&&(r={type:"script",source:a.attr("src")}),"source"===e&&(r.source?r.altsource||(r.altsource=a.attr("src")):r.source=a.attr("src")),"img"!==e||r.poster||(r.poster=a.attr("src"))}return r.source=r.source||r.src||r.data,r.altsource=r.altsource||"",r.poster=r.poster||"",r},$=e=>({mp3:"audio/mpeg",m4a:"audio/x-m4a",wav:"audio/wav",mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",swf:"application/x-shockwave-flash"}[e.toLowerCase().split(".").pop()]||"");var z=tinymce.util.Tools.resolve("tinymce.html.Node"),M=tinymce.util.Tools.resolve("tinymce.html.Serializer");const F=(e,t={})=>A({forced_root_block:!1,validate:!1,allow_conditional_comments:!0,...t},e),N=O.DOM,R=e=>/^[0-9.]+$/.test(e)?e+"px":e,U=(e,t)=>{const r=t.attr("style"),a=r?N.parseStyle(r):{};a["max-width"]=R(e.width),a["max-height"]=R(e.height),t.attr("style",N.serializeStyle(a))},P=["source","altsource"],E=(e,t,r,a)=>{let o=0,s=0;const i=F(a);i.addNodeFilter("source",(e=>o=e.length));const c=i.parse(e);for(let e=c;e;e=e.walk())if(1===e.type){const a=e.name;if(e.attr("data-ephox-embed-iri")){U(t,e);break}switch(a){case"video":case"object":case"embed":case"img":case"iframe":void 0!==t.height&&void 0!==t.width&&(e.attr("width",t.width),e.attr("height",t.height))}if(r)switch(a){case"video":e.attr("poster",t.poster),e.attr("src",null);for(let r=o;r<2;r++)if(t[P[r]]){const a=new z("source",1);a.attr("src",t[P[r]]),a.attr("type",t[P[r]+"mime"]||null),e.append(a)}break;case"iframe":e.attr("src",t.source);break;case"object":const r=e.getAll("img").length>0;if(t.poster&&!r){e.attr("src",t.poster);const r=new z("img",1);r.attr("src",t.poster),r.attr("width",t.width),r.attr("height",t.height),e.append(r)}break;case"source":if(s<2&&(e.attr("src",t[P[s]]),e.attr("type",t[P[s]+"mime"]||null),!t[P[s]])){e.remove();continue}s++;break;case"img":t.poster||e.remove()}}return M({},a).serialize(c)},L=[{regex:/youtu\.be\/([\w\-_\?&=.]+)/i,type:"iframe",w:560,h:314,url:"www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i,type:"iframe",w:560,h:314,url:"www.youtube.com/embed/$2?$4",allowFullscreen:!0},{regex:/youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i,type:"iframe",w:560,h:314,url:"www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc",allowFullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"player.vimeo.com/video/$2?title=0&byline=0",allowFullscreen:!0},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'maps.google.com/maps/ms?msid=$2&output=embed"',allowFullscreen:!1},{regex:/dailymotion\.com\/video\/([^_]+)/,type:"iframe",w:480,h:270,url:"www.dailymotion.com/embed/video/$1",allowFullscreen:!0},{regex:/dai\.ly\/([^_]+)/,type:"iframe",w:480,h:270,url:"www.dailymotion.com/embed/video/$1",allowFullscreen:!0}],I=(e,t)=>{const r=(e=>{const t=e.match(/^(https?:\/\/|www\.)(.+)$/i);return t&&t.length>1?"www."===t[1]?"https://":t[1]:"https://"})(t),a=e.regex.exec(t);let o=r+e.url;for(let e=0;ea[e]?a[e]:""));return o.replace(/\?$/,"")},B=(e,t)=>{const r=k.extend({},t);if(!r.source&&(k.extend(r,C(r.embed,e.schema)),!r.source))return"";r.altsource||(r.altsource=""),r.poster||(r.poster=""),r.source=e.convertURL(r.source,"source"),r.altsource=e.convertURL(r.altsource,"source"),r.sourcemime=$(r.source),r.altsourcemime=$(r.altsource),r.poster=e.convertURL(r.poster,"poster");const a=(e=>{const t=L.filter((t=>t.regex.test(e)));return t.length>0?k.extend({},t[0],{url:I(t[0],e)}):null})(r.source);if(a&&(r.source=a.url,r.type=a.type,r.allowfullscreen=a.allowFullscreen,r.width=r.width||String(a.w),r.height=r.height||String(a.h)),r.embed)return E(r.embed,r,!0,e.schema);{const t=g(e),a=b(e),o=w(e);return r.width=r.width||"300",r.height=r.height||"150",k.each(r,((t,a)=>{r[a]=e.dom.encode(""+t)})),"iframe"===r.type?((e,t)=>{if(t)return t(e);{const t=e.allowfullscreen?' allowFullscreen="1"':"";return'"}})(r,o):"application/x-shockwave-flash"===r.sourcemime?(e=>{let t='';return e.poster&&(t+=''),t+="",t})(r):-1!==r.sourcemime.indexOf("audio")?((e,t)=>t?t(e):'")(r,t):"script"===r.type?(e=>' '; + const directionality = editor.getBody().dir; + const dirAttr = directionality ? ' dir="' + encode(directionality) + '"' : ''; + const previewHtml = '' + '' + '' + headHtml + '' + '' + editor.getContent() + preventClicksOnLinksScript + '' + ''; + return previewHtml; + }; + + const open = editor => { + const content = getPreviewHtml(editor); + const dataApi = editor.windowManager.open({ + title: 'Preview', + size: 'large', + body: { + type: 'panel', + items: [{ + name: 'preview', + type: 'iframe', + sandboxed: true, + transparent: false + }] + }, + buttons: [{ + type: 'cancel', + name: 'close', + text: 'Close', + primary: true + }], + initialData: { preview: content } + }); + dataApi.focus('close'); + }; + + const register$1 = editor => { + editor.addCommand('mcePreview', () => { + open(editor); + }); + }; + + const register = editor => { + const onAction = () => editor.execCommand('mcePreview'); + editor.ui.registry.addButton('preview', { + icon: 'preview', + tooltip: 'Preview', + onAction + }); + editor.ui.registry.addMenuItem('preview', { + icon: 'preview', + text: 'Preview', + onAction + }); + }; + + var Plugin = () => { + global$2.add('preview', editor => { + register$1(editor); + register(editor); + }); + }; + + Plugin(); + +})(); diff --git a/demo/dist/libs/tinymce/plugins/preview/plugin.min.js b/demo/dist/libs/tinymce/plugins/preview/plugin.min.js new file mode 100644 index 000000000..3a35b1b29 --- /dev/null +++ b/demo/dist/libs/tinymce/plugins/preview/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.1.2 (2022-07-29) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),o=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=e=>t=>t.options.get(e),i=n("content_style"),s=n("content_css_cors"),c=n("body_class"),r=n("body_id");e.add("preview",(e=>{(e=>{e.addCommand("mcePreview",(()=>{(e=>{const n=(e=>{var n;let l="";const a=e.dom.encode,d=null!==(n=i(e))&&void 0!==n?n:"";l+='';const m=s(e)?' crossorigin="anonymous"':"";o.each(e.contentCSS,(t=>{l+='"})),d&&(l+='");const y=r(e),u=c(e),v=' '; + const directionality = editor.getBody().dir; + const dirAttr = directionality ? ' dir="' + encode(directionality) + '"' : ''; + html = '' + '' + '' + '' + contentCssEntries + preventClicksOnLinksScript + '' + '' + html + '' + ''; + } + return replaceTemplateValues(html, getPreviewReplaceValues(editor)); + }; + const open = (editor, templateList) => { + const createTemplates = () => { + if (!templateList || templateList.length === 0) { + const message = editor.translate('No templates defined.'); + editor.notificationManager.open({ + text: message, + type: 'info' + }); + return Optional.none(); + } + return Optional.from(global$1.map(templateList, (template, index) => { + const isUrlTemplate = t => t.url !== undefined; + return { + selected: index === 0, + text: template.title, + value: { + url: isUrlTemplate(template) ? Optional.from(template.url) : Optional.none(), + content: !isUrlTemplate(template) ? Optional.from(template.content) : Optional.none(), + description: template.description + } + }; + })); + }; + const createSelectBoxItems = templates => map(templates, t => ({ + text: t.text, + value: t.text + })); + const findTemplate = (templates, templateTitle) => find(templates, t => t.text === templateTitle); + const loadFailedAlert = api => { + editor.windowManager.alert('Could not load the specified template.', () => api.focus('template')); + }; + const getTemplateContent = t => t.value.url.fold(() => Promise.resolve(t.value.content.getOr('')), url => fetch(url).then(res => res.ok ? res.text() : Promise.reject())); + const onChange = (templates, updateDialog) => (api, change) => { + if (change.name === 'template') { + const newTemplateTitle = api.getData().template; + findTemplate(templates, newTemplateTitle).each(t => { + api.block('Loading...'); + getTemplateContent(t).then(previewHtml => { + updateDialog(api, t, previewHtml); + }).catch(() => { + updateDialog(api, t, ''); + api.setEnabled('save', false); + loadFailedAlert(api); + }); + }); + } + }; + const onSubmit = templates => api => { + const data = api.getData(); + findTemplate(templates, data.template).each(t => { + getTemplateContent(t).then(previewHtml => { + editor.execCommand('mceInsertTemplate', false, previewHtml); + api.close(); + }).catch(() => { + api.setEnabled('save', false); + loadFailedAlert(api); + }); + }); + }; + const openDialog = templates => { + const selectBoxItems = createSelectBoxItems(templates); + const buildDialogSpec = (bodyItems, initialData) => ({ + title: 'Insert Template', + size: 'large', + body: { + type: 'panel', + items: bodyItems + }, + initialData, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + onSubmit: onSubmit(templates), + onChange: onChange(templates, updateDialog) + }); + const updateDialog = (dialogApi, template, previewHtml) => { + const content = getPreviewContent(editor, previewHtml); + const bodyItems = [ + { + type: 'selectbox', + name: 'template', + label: 'Templates', + items: selectBoxItems + }, + { + type: 'htmlpanel', + html: `

    ${ htmlEscape(template.value.description) }

    ` + }, + { + label: 'Preview', + type: 'iframe', + name: 'preview', + sandboxed: false, + transparent: false + } + ]; + const initialData = { + template: template.text, + preview: content + }; + dialogApi.unblock(); + dialogApi.redial(buildDialogSpec(bodyItems, initialData)); + dialogApi.focus('template'); + }; + const dialogApi = editor.windowManager.open(buildDialogSpec([], { + template: '', + preview: '' + })); + dialogApi.block('Loading...'); + getTemplateContent(templates[0]).then(previewHtml => { + updateDialog(dialogApi, templates[0], previewHtml); + }).catch(() => { + updateDialog(dialogApi, templates[0], ''); + dialogApi.setEnabled('save', false); + loadFailedAlert(dialogApi); + }); + }; + const optTemplates = createTemplates(); + optTemplates.each(openDialog); + }; + + const showDialog = editor => templates => { + open(editor, templates); + }; + const register$1 = editor => { + editor.addCommand('mceInsertTemplate', curry(insertTemplate, editor)); + editor.addCommand('mceTemplate', createTemplateList(editor, showDialog(editor))); + }; + + const setup = editor => { + editor.on('PreProcess', o => { + const dom = editor.dom, dateFormat = getMdateFormat(editor); + global$1.each(dom.select('div', o.node), e => { + if (dom.hasClass(e, 'mceTmpl')) { + global$1.each(dom.select('*', e), e => { + if (hasAnyClasses(dom, e, getModificationDateClasses(editor))) { + e.innerHTML = getDateTime(editor, dateFormat); + } + }); + replaceVals(editor, e); + } + }); + }); + }; + + const register = editor => { + const onAction = () => editor.execCommand('mceTemplate'); + editor.ui.registry.addButton('template', { + icon: 'template', + tooltip: 'Insert template', + onAction + }); + editor.ui.registry.addMenuItem('template', { + icon: 'template', + text: 'Insert template...', + onAction + }); + }; + + var Plugin = () => { + global$2.add('template', editor => { + register$2(editor); + register(editor); + register$1(editor); + setup(editor); + }); + }; + + Plugin(); + +})(); diff --git a/demo/dist/libs/tinymce/plugins/template/plugin.min.js b/demo/dist/libs/tinymce/plugins/template/plugin.min.js new file mode 100644 index 000000000..d297d2a54 --- /dev/null +++ b/demo/dist/libs/tinymce/plugins/template/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.1.2 (2022-07-29) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(a=n=e,(r=String).prototype.isPrototypeOf(a)||(null===(s=n.constructor)||void 0===s?void 0:s.name)===r.name)?"string":t;var a,n,r,s})(t)===e,a=t("string"),n=t("object"),r=t("array"),s=("function",e=>"function"==typeof e);const l=(!1,()=>false);var o=tinymce.util.Tools.resolve("tinymce.util.Tools");const c=e=>t=>t.options.get(e),i=c("template_cdate_classes"),u=c("template_mdate_classes"),m=c("template_selected_content_classes"),p=c("template_preview_replace_values"),d=c("template_replace_values"),h=c("templates"),g=c("template_cdate_format"),v=c("template_mdate_format"),f=c("content_style"),y=c("content_css_cors"),_=c("body_class"),b=(e,t)=>{if((e=""+e).length{const n="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),r="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),s="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),l="January February March April May June July August September October November December".split(" ");return(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+a.getFullYear())).replace("%y",""+a.getYear())).replace("%m",b(a.getMonth()+1,2))).replace("%d",b(a.getDate(),2))).replace("%H",""+b(a.getHours(),2))).replace("%M",""+b(a.getMinutes(),2))).replace("%S",""+b(a.getSeconds(),2))).replace("%I",""+((a.getHours()+11)%12+1))).replace("%p",a.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(l[a.getMonth()]))).replace("%b",""+e.translate(s[a.getMonth()]))).replace("%A",""+e.translate(r[a.getDay()]))).replace("%a",""+e.translate(n[a.getDay()]))).replace("%%","%")};class T{constructor(e,t){this.tag=e,this.value=t}static some(e){return new T(!0,e)}static none(){return T.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?T.some(e(this.value)):T.none()}bind(e){return this.tag?e(this.value):T.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:T.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return null==e?T.none():T.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}T.singletonNone=new T(!1);const x=Object.hasOwnProperty,S={'"':""","<":"<",">":">","&":"&","'":"'"},w=e=>e.replace(/["'<>&]/g,(e=>{return(t=S,a=e,((e,t)=>x.call(e,t))(t,a)?T.from(t[a]):T.none()).getOr(e);var t,a})),C=(e,t,a)=>((a,n)=>{for(let n=0,s=a.length;n(o.each(t,((t,a)=>{s(t)&&(t=t(a)),e=e.replace(new RegExp("\\{\\$"+a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\}","g"),t)})),e),A=(e,t)=>{const a=e.dom,n=d(e);o.each(a.select("*",t),(e=>{o.each(n,((t,n)=>{a.hasClass(e,n)&&s(t)&&t(e)}))}))},D=(e,t,a)=>{const n=e.dom,r=e.selection.getContent();a=O(a,d(e));let s=n.create("div",null,a);const l=n.select(".mceTmpl",s);l&&l.length>0&&(s=n.create("div",null),s.appendChild(l[0].cloneNode(!0))),o.each(n.select("*",s),(t=>{C(n,t,i(e))&&(t.innerHTML=M(e,g(e))),C(n,t,u(e))&&(t.innerHTML=M(e,v(e))),C(n,t,m(e))&&(t.innerHTML=r)})),A(e,s),e.execCommand("mceInsertContent",!1,s.innerHTML),e.addVisual()};var I=tinymce.util.Tools.resolve("tinymce.Env");const N=(e,t)=>{const a=(e,t)=>((e,t,a)=>{for(let n=0,r=e.length;ne.text===t),l),n=t=>{e.windowManager.alert("Could not load the specified template.",(()=>t.focus("template")))},r=e=>e.value.url.fold((()=>Promise.resolve(e.value.content.getOr(""))),(e=>fetch(e).then((e=>e.ok?e.text():Promise.reject())))),s=(e,t)=>(s,l)=>{if("template"===l.name){const l=s.getData().template;a(e,l).each((e=>{s.block("Loading..."),r(e).then((a=>{t(s,e,a)})).catch((()=>{t(s,e,""),s.setEnabled("save",!1),n(s)}))}))}},c=t=>s=>{const l=s.getData();a(t,l.template).each((t=>{r(t).then((t=>{e.execCommand("mceInsertTemplate",!1,t),s.close()})).catch((()=>{s.setEnabled("save",!1),n(s)}))}))};(()=>{if(!t||0===t.length){const t=e.translate("No templates defined.");return e.notificationManager.open({text:t,type:"info"}),T.none()}return T.from(o.map(t,((e,t)=>{const a=e=>void 0!==e.url;return{selected:0===t,text:e.title,value:{url:a(e)?T.from(e.url):T.none(),content:a(e)?T.none():T.from(e.content),description:e.description}}})))})().each((t=>{const a=(e=>((e,t)=>{const a=e.length,n=new Array(a);for(let t=0;t({title:"Insert Template",size:"large",body:{type:"panel",items:e},initialData:a,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:c(t),onChange:s(t,i)}),i=(t,n,r)=>{const s=((e,t)=>{var a;if(-1===t.indexOf("")){let n="";const r=null!==(a=f(e))&&void 0!==a?a:"",s=y(e)?' crossorigin="anonymous"':"";o.each(e.contentCSS,(t=>{n+='"})),r&&(n+='");const l=_(e),c=e.dom.encode,i=' + + + \ No newline at end of file diff --git a/demo/docs/divider.html b/demo/docs/divider.html index 25a2c00ed..7dc4dd360 100644 --- a/demo/docs/divider.html +++ b/demo/docs/divider.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -973,7 +1025,7 @@
  • - + Sponsor
  • @@ -988,7 +1040,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/download.html b/demo/docs/download.html index 4cea26556..7b15c6f0d 100644 --- a/demo/docs/download.html +++ b/demo/docs/download.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -838,21 +890,21 @@

    Download Tabler to get the compiled CSS and JavaScript, source code, or include it with your favorite package managers like npm, yarn and more.

    -

    CDN via jsDelivr

    +

    CDN via jsDelivr

    All files included in @tabler/core npm package are available over a jsDelivr CDN. Use it to deliver cached version of Tabler’s compiled CSS and JS to your project.

    -
    <script src="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta10/dist/js/tabler.min.js"></script>
    -<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta10/dist/css/tabler.min.css">
    +                          
    <script src="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta11/dist/js/tabler.min.js"></script>
    +<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta11/dist/css/tabler.min.css">
     

    You can also include additional Tabler plugins:

    -
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta10/dist/css/tabler-flags.min.css">
    -<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta10/dist/css/tabler-payments.min.css">
    -<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta10/dist/css/tabler-vendors.min.css">
    +                          
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta11/dist/css/tabler-flags.min.css">
    +<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta11/dist/css/tabler-payments.min.css">
    +<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta11/dist/css/tabler-vendors.min.css">
     
    @@ -896,7 +948,7 @@
  • - + Sponsor
  • @@ -911,7 +963,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/dropdowns.html b/demo/docs/dropdowns.html index 7e276b60d..8fe663554 100644 --- a/demo/docs/dropdowns.html +++ b/demo/docs/dropdowns.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -1178,7 +1230,7 @@
    @@ -1241,7 +1293,7 @@
  • - + Sponsor
  • @@ -1256,7 +1308,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/dropzone.html b/demo/docs/dropzone.html new file mode 100644 index 000000000..28752bb8e --- /dev/null +++ b/demo/docs/dropzone.html @@ -0,0 +1,1041 @@ + + + + + + + + Dropzone - Tabler - Premium and Open Source dashboard template with responsive and high quality UI. + + + + + + + + + +
    + + +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +

    Dropzone

    +
    +

    Dropzone is a simple JavaScript library that helps you add file drag and drop functionality to your web forms. It is one of the most popular drag and drop library on the web and is used by millions of people.

    +
    +

    Default Dropzone

    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    <form class="dropzone" id="dropzone-default" action=".">
    +  <div class="fallback">
    +    <input name="file" type="file"  />
    +  </div>
    +</form>
    +<script>
    +  document.addEventListener("DOMContentLoaded", function() {
    +    new Dropzone("#dropzone-default")
    +  })
    +</script>
    +
    +
    +

    Add multiple files

    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    <form class="dropzone" id="dropzone-mulitple" action=".">
    +  <div class="fallback">
    +    <input name="file" type="file"  multiple  />
    +  </div>
    +</form>
    +<script>
    +  document.addEventListener("DOMContentLoaded", function() {
    +    new Dropzone("#dropzone-mulitple")
    +  })
    +</script>
    +
    +
    +

    Custom Dropzone

    +
    +
    +
    +
    + +
    +
    +

    Your text here

    + Your custom description here +
    +
    +
    +
    +
    +
    +
    <form class="dropzone" id="dropzone-custom" action=".">
    +  <div class="fallback">
    +    <input name="file" type="file"  />
    +  </div>
    +  <div class="dz-message">
    +    <h3 class="dropzone-msg-title">Your text here</h3>
    +    <span class="dropzone-msg-desc">Your custom description here</span>
    +  </div>
    +</form>
    +<script>
    +  document.addEventListener("DOMContentLoaded", function() {
    +    new Dropzone("#dropzone-custom")
    +  })
    +</script>
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/demo/docs/empty.html b/demo/docs/empty.html index 7d2e517d9..549b10e75 100644 --- a/demo/docs/empty.html +++ b/demo/docs/empty.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -976,7 +1028,7 @@
  • - + Sponsor
  • @@ -991,7 +1043,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/flags.html b/demo/docs/flags.html index d3bb49b19..97f2c4c57 100644 --- a/demo/docs/flags.html +++ b/demo/docs/flags.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -842,7 +894,7 @@

    This part of Tabler is distributed as plugin. To enable it you should include tabler-flags.css or tabler-flags.min.css file to your page.

    You can also include plugin via CDN:

    -
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta10/dist/css/tabler-flags.min.css">
    +
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta11/dist/css/tabler-flags.min.css">
    @@ -2410,7 +2462,7 @@
  • - + Sponsor
  • @@ -2425,7 +2477,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/form-color-check.html b/demo/docs/form-color-check.html index 8b48121d8..e0fe14083 100644 --- a/demo/docs/form-color-check.html +++ b/demo/docs/form-color-check.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -1174,7 +1226,7 @@
  • - + Sponsor
  • @@ -1189,7 +1241,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/form-elements.html b/demo/docs/form-elements.html index f125ef216..4fc6ce000 100644 --- a/demo/docs/form-elements.html +++ b/demo/docs/form-elements.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -1696,7 +1748,7 @@
  • - + Sponsor
  • @@ -1711,7 +1763,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • @@ -1772,16 +1824,18 @@ // @formatter:on diff --git a/demo/docs/form-fieldset.html b/demo/docs/form-fieldset.html index 8829c78bb..9ce1e13a4 100644 --- a/demo/docs/form-fieldset.html +++ b/demo/docs/form-fieldset.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -908,7 +960,7 @@
  • - + Sponsor
  • @@ -923,7 +975,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/form-helpers.html b/demo/docs/form-helpers.html index 9d586a08d..6f8996bdf 100644 --- a/demo/docs/form-helpers.html +++ b/demo/docs/form-helpers.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -870,7 +922,7 @@
  • - + Sponsor
  • @@ -885,7 +937,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/form-image-check.html b/demo/docs/form-image-check.html index 64180659f..8da44982f 100644 --- a/demo/docs/form-image-check.html +++ b/demo/docs/form-image-check.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -1218,7 +1270,7 @@
  • - + Sponsor
  • @@ -1233,7 +1285,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/form-selectboxes.html b/demo/docs/form-selectboxes.html index 624d893c8..616d0dd89 100644 --- a/demo/docs/form-selectboxes.html +++ b/demo/docs/form-selectboxes.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -885,7 +937,7 @@
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -896,7 +948,7 @@
  • - + Sponsor
  • @@ -911,7 +963,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/getting-started.html b/demo/docs/getting-started.html index 3a1b4763f..c2847d03e 100644 --- a/demo/docs/getting-started.html +++ b/demo/docs/getting-started.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -880,7 +932,7 @@
  • - + Sponsor
  • @@ -895,7 +947,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/icons.html b/demo/docs/icons.html index 3d7a93dee..65dc2d496 100644 --- a/demo/docs/icons.html +++ b/demo/docs/icons.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -843,7 +895,7 @@
    All icons come from the Tabler Icons set and are MIT-licensed. Visit tabler-icons.io, - download any of the 1960 icons in SVG, PNG or React and use them in your favourite design tools. + download any of the 2160 icons in SVG, PNG or React and use them in your favourite design tools.
    Download icons @@ -865,7 +917,7 @@
    - + @@ -890,7 +942,7 @@
    - + @@ -916,7 +968,7 @@
    - + @@ -970,7 +1022,7 @@
  • - + Sponsor
  • @@ -985,7 +1037,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/index.html b/demo/docs/index.html index e8a247a41..8dce7ec00 100644 --- a/demo/docs/index.html +++ b/demo/docs/index.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -929,6 +981,9 @@
  • - Carousel
  • +
  • + - Data grid +
  • - Dropdowns
  • @@ -983,6 +1038,9 @@
  • - Tooltips
  • +
  • + - Popover +
  • @@ -1017,6 +1075,15 @@
  • - Charts
  • +
  • + - Dropzone +
  • +
  • + - Inline player +
  • +
  • + - TinyMCE +
  • @@ -1039,7 +1106,7 @@
  • - + Sponsor
  • @@ -1054,7 +1121,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/inline-player.html b/demo/docs/inline-player.html new file mode 100644 index 000000000..2b2a9d05c --- /dev/null +++ b/demo/docs/inline-player.html @@ -0,0 +1,989 @@ + + + + + + + + Inline player - Tabler - Premium and Open Source dashboard template with responsive and high quality UI. + + + + + + + + + +
    + + +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +

    Inline player

    +
    +

    A simple, lightweight, accessible and customizable HTML5, YouTube and Vimeo media player that supports modern browsers.

    +
    +

    Sample demo

    +
    +
    +
    +
    +
    +
    +
    +
    <div id="player-youtube" data-plyr-provider="youtube" data-plyr-embed-id="dQw4w9WgXcQ"></div>
    +<script>
    +  document.addEventListener("DOMContentLoaded", function () {
    +    window.Plyr && (new Plyr('#player-youtube'));
    +  });
    +</script>
    +
    +
    +

    Vimeo file

    +
    +
    +
    +
    +
    +
    +
    +
    <div id="player-vimeo" data-plyr-provider="vimeo" data-plyr-embed-id="515937365"></div>
    +<script>
    +  document.addEventListener("DOMContentLoaded", function () {
    +    window.Plyr && (new Plyr('#player-vimeo'));
    +  });
    +</script>
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/demo/docs/input-mask.html b/demo/docs/input-mask.html index 60c6093e5..d977a86f9 100644 --- a/demo/docs/input-mask.html +++ b/demo/docs/input-mask.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -871,7 +923,7 @@
  • - + Sponsor
  • @@ -886,7 +938,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/interactions.html b/demo/docs/interactions.html index ea5b23e29..08cedbd48 100644 --- a/demo/docs/interactions.html +++ b/demo/docs/interactions.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -886,7 +938,7 @@
  • - + Sponsor
  • @@ -901,7 +953,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/modals.html b/demo/docs/modals.html index fcfe9767c..fc675cbb3 100644 --- a/demo/docs/modals.html +++ b/demo/docs/modals.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -842,18 +894,20 @@
    - @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -1045,7 +1097,7 @@
  • - + Sponsor
  • @@ -1060,7 +1112,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/switch-icon.html b/demo/docs/switch-icon.html index fff7628b1..f18ae148b 100644 --- a/demo/docs/switch-icon.html +++ b/demo/docs/switch-icon.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -843,7 +895,7 @@
    All icons come from the Tabler Icons set and are MIT-licensed. Visit tabler-icons.io, - download any of the 1960 icons in SVG, PNG or React and use them in your favourite design tools. + download any of the 2160 icons in SVG, PNG or React and use them in your favourite design tools.
    Download icons @@ -911,11 +963,11 @@
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -1348,7 +1400,7 @@
  • - + Sponsor
  • @@ -1363,7 +1415,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/tabs.html b/demo/docs/tabs.html index 36a8b2602..ed0eba1d5 100644 --- a/demo/docs/tabs.html +++ b/demo/docs/tabs.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -1293,7 +1345,7 @@
  • - + Sponsor
  • @@ -1308,7 +1360,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/timelines.html b/demo/docs/timelines.html index d158a69fc..3c9ff32a4 100644 --- a/demo/docs/timelines.html +++ b/demo/docs/timelines.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation -
    - +
    @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project!
    @@ -672,6 +699,11 @@ Carousel + + + + + @@ -1280,7 +1332,7 @@
  • - + Sponsor
  • @@ -1295,7 +1347,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/tinymce.html b/demo/docs/tinymce.html new file mode 100644 index 000000000..92263b600 --- /dev/null +++ b/demo/docs/tinymce.html @@ -0,0 +1,1001 @@ + + + + + + + + TinyMCE - Tabler - Premium and Open Source dashboard template with responsive and high quality UI. + + + + + + + + +
    + + +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +

    TinyMCE

    +
    +

    The WYSIWYG editor that is flexible, customizable, and designed with the user in mind. TinyMCE can handle any challenge, from the most simple implementation through to the most complex use case.

    +
    +

    TinyMCE documentation.

    +

    Default text editor

    +

    Initialize TinyMCE 6 on any element (or elements) on the web page by passing an object containing a selector value to tinymce.init(). The selector value can be any valid CSS selector.

    +
    +
    +
    + +
    +
    +
    +
    +
    +
    <form method="post">
    +  <textarea id="tinymce-default">Hello, <b>Tabler</b>!</textarea>
    +</form>
    +<script>
    +  document.addEventListener("DOMContentLoaded", function () {
    +    tinyMCE.init({
    +      selector: '#tinymce-default',
    +      height: 300,
    +      menubar: false,
    +      statusbar: false,
    +      plugins: [
    +        'advlist autolink lists link image charmap print preview anchor',
    +        'searchreplace visualblocks code fullscreen',
    +        'insertdatetime media table paste code help wordcount'
    +      ],
    +      toolbar: 'undo redo | formatselect | ' +
    +        'bold italic backcolor | alignleft aligncenter ' +
    +        'alignright alignjustify | bullist numlist outdent indent | ' +
    +        'removeformat',
    +      content_style: 'body { font-family: -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif; font-size: 14px; -webkit-font-smoothing: antialiased; }'
    +    });
    +  })
    +</script>
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + + + + + + + \ No newline at end of file diff --git a/demo/docs/toasts.html b/demo/docs/toasts.html index a28c16fcd..6d6f2389e 100644 --- a/demo/docs/toasts.html +++ b/demo/docs/toasts.html @@ -1,7 +1,7 @@ - + Sponsor
    @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -672,6 +699,11 @@ Carousel + + + + + @@ -985,7 +1037,7 @@
  • - + Sponsor
  • @@ -1000,7 +1052,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/tooltips.html b/demo/docs/tooltips.html index 817c389da..75e2825ee 100644 --- a/demo/docs/tooltips.html +++ b/demo/docs/tooltips.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -672,6 +699,11 @@ Carousel + + + + + @@ -913,7 +965,7 @@ Tooltip with HTML
  • - + Sponsor
  • @@ -928,7 +980,7 @@ Tooltip with HTML
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/docs/typography.html b/demo/docs/typography.html index 24b56525a..02b457420 100644 --- a/demo/docs/typography.html +++ b/demo/docs/typography.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -672,6 +699,11 @@ Carousel + + + + + @@ -1164,7 +1216,7 @@ Text <sup>Superscripted</sup&g
  • - + Sponsor
  • @@ -1179,7 +1231,7 @@ Text <sup>Superscripted</sup&g
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/dropdowns.html b/demo/dropdowns.html index d20399a30..d067bfe31 100644 --- a/demo/dropdowns.html +++ b/demo/dropdowns.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@
    - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -767,7 +794,7 @@
  • - + Sponsor
  • @@ -782,7 +809,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/dropzone.html b/demo/dropzone.html new file mode 100644 index 000000000..8d42a601c --- /dev/null +++ b/demo/dropzone.html @@ -0,0 +1,651 @@ + + + + + + + + Dropzone - Tabler - Premium and Open Source dashboard template with responsive and high quality UI. + + + + + + + + + +
    + + +
    +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Basic Usage

    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Multiple File Upload

    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Custom Dropzone

    +
    +
    + +
    +
    +

    Your text here

    + Your custom description here +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/demo/empty.html b/demo/empty.html index f85149808..4b00e99d5 100644 --- a/demo/empty.html +++ b/demo/empty.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@
    - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -530,7 +557,7 @@
  • - + Sponsor
  • @@ -545,7 +572,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/error-404.html b/demo/error-404.html index 1334afd89..06f7fa94d 100644 --- a/demo/error-404.html +++ b/demo/error-404.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -690,7 +717,7 @@
  • - + Sponsor
  • @@ -705,7 +732,7 @@
  • - v1.0.0-beta10 + v1.0.0-beta11
  • diff --git a/demo/features.html b/demo/features.html index e25737040..401b8938a 100644 --- a/demo/features.html +++ b/demo/features.html @@ -1,7 +1,7 @@ - + Sponsor @@ -221,6 +221,10 @@ Colors + + Data grid + New + Datatables New @@ -244,11 +248,11 @@ Navigation - - + @@ -455,7 +482,7 @@ - 1960 icons + 2160 icons @@ -480,7 +507,7 @@ - + Sponsor project! @@ -1101,7 +1128,7 @@